Recherche · pgvector
Pipeline de questions-réponses documentaire
Un pipeline de génération augmentée par la recherche qui répond aux questions à partir d'un corpus de documents, grâce à la recherche vectorielle dans PostgreSQL. Preuve de concept : le travail n'a pas été poursuivi jusqu'au déploiement.
POCPreuve de concept. Non poursuivie jusqu'au déploiement.
Le problème
Les modèles de langage ne connaissent pas vos documents. Les réponses doivent s'appuyer sur les bons passages, récupérés rapidement et de manière fiable.
Contexte
Un prototype de questions-réponses documentaire : découper un corpus, stocker des vecteurs, retrouver les passages les plus proches, puis rédiger une réponse à partir de ces passages seulement.
Mon rôle
J'ai conçu et construit le pipeline de recherche : découpage, embeddings, stockage pgvector, recherche par similarité et réponse LLM ancrée. Le travail n'a pas été poursuivi jusqu'au déploiement.
Ce que j'ai construit
Fonctionnalités construites
- 01Découpage des documents
- 02Encodage et stockage vectoriel
- 03Recherche par similarité pour une question
- 04Réponse générée à partir des passages récupérés
Décisions de conception
- Découper les documents en fragments assez courts pour retrouver un passage précis.
- Stocker les embeddings dans PostgreSQL avec pgvector pour que la recherche par similarité reste à côté des données.
- Fonder la réponse du modèle de langage sur les fragments récupérés, plutôt que sur sa connaissance préalable.
- 01Les documents sont découpés en fragments adaptés à la recherche.
- 02Chaque fragment est encodé en vecteur et stocké avec pgvector dans PostgreSQL.
- 03Une requête récupère les fragments les plus similaires.
- 04Un LLM rédige la réponse à partir du contexte récupéré.
Résultat
Ce travail est resté au stade de preuve de concept et n'a pas été poursuivi jusqu'au déploiement.
Architecture
Comment Pipeline de questions-réponses documentaire s'articule.
Chaque étape, dans l'ordre. Sélectionnez un nœud pour voir son rôle.
Le corpus source à partir duquel le système répond.
Découpe les documents en passages assez courts pour être retrouvés avec précision.
Encode chaque fragment en un vecteur qui en capture le sens.
- Embedding model
Stocke les vecteurs dans PostgreSQL et permet la recherche par similarité.
- PostgreSQL
- pgvector
Trouve les fragments les plus proches de la question de l'utilisateur.
Génère une réponse fondée sur les fragments récupérés.
- LLM
Stack
- PostgreSQL
- pgvector
- Embeddings
- LLMs
Projet suivant
Simulateur de formation clinique
Un MVP de formation clinique en développement : les étudiants traitent des cas, guidés par une machine à états et évalués par un retour IA et une notation. Plusieurs modules sont fonctionnels ; la plateforme n'est pas entièrement livrée.