J'étais heureux d'avoir contribué à divers référentiels pendant le Hacktoberfest, mais dès le Hacktoberfest, j'ai eu cette nouvelle et profonde excitation de contribuer à davantage de projets Open-Source. J'avais contribué à de nombreux projets qui avaient une pile technologique incluant à la fois le backend et le front-end, mais cette fois-ci, je voulais contribuer à un projet basé sur l'IA, en particulier quelque chose lié à RAG (Retrieval Augmented Generation) car je voulais approfondir dedans
En recherchant de nombreux dépôts basés sur RAG, je suis tombé sur un outil RAG open source parfait, ORAssistant, qui est encore une fois un chatbot qui répond aux questions ou demandes courantes pour un projet plus vaste.
L'architecture de cet outil est assez complexe, j'essaie encore de comprendre comment fonctionne l'architecture principale des requêtes, mais c'est la partie passionnante, apprendre au fur et à mesure que je contribue.
Pour mon premier numéro, j'ai choisi l'un des problèmes où la tâche consistait à automatiser la boucle de rétroaction. En termes de Leyman, cela implique qu'une application RAG dépend généralement des commentaires de l'utilisateur pour affiner davantage le réponse, la tâche consistait à obtenir ce retour de l'utilisateur, à le stocker dans une base de données et à le renvoyer au modèle lui-même
L'architecture ressemblerait à ceci
Actuellement, le système stocke les commentaires dans Google Sheets, ce qui, encore une fois, n'est pas une approche optimisée
Ce problème en lui-même prendrait environ 4 à 5 PR pour être résolu, mais pour l'objet de ce blog, je me limiterai au premier PR que j'ai fait.
Pour la première pull request, comme le montrent les discussions sur le problème, ma tâche consistait d'abord à configurer et à exécuter la conception de la base de données. Ce faisant, j'ai rencontré beaucoup de problèmes
La solution que j'avais proposée pour ce PR tournait autour de la discussion sur le choix de la bonne base de données, après une discussion approfondie avec le responsable, nous avons décidé qu'il était préférable d'utiliser MongoDB pour le projet, en pensant à l'évolutivité et à la flexibilité de les champs en raison de la nature sans schéma de MongoDB.
Après avoir réalisé la conception initiale, j'ai ouvert un PR, qui était lié à la configuration initiale de la conception pour le frontend
L'un des problèmes rencontrés lors du processus de fusion était qu'il ne réussissait pas un test dans le pipeline CI, ce qui n'était pas lié à une erreur dans mon code, mais au fait que certains secrets du référentiel n'étaient pas propagés. au fork du référentiel sur lequel je travaillais, le responsable a donc dû me donner un accès en écriture au référentiel pour fusionner mon PR
Ce PR servirait désormais de base à d'autres PR qui finiraient par résoudre l'ensemble du problème. Pour être honnête, c'est l'un des meilleurs projets sur lesquels j'ai travaillé depuis un moment, il me faut environ 6 à 7 PR pour résoudre un seul problème, cela montre à quel point le projet est complexe et développé.
J'apprécie vraiment la façon dont mon parcours Open Source se déroule.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!