Recherche vectorielle depuis une requête texte
Recherche vectorielle depuis une requête texte
Guide pratique pour transformer une requête utilisateur en recherche sémantique et injecter le contexte pertinent dans vos agents/chat
Utilisez la puissance des embeddings pour retrouver les passages les plus pertinents et enrichir les réponses de vos agents.
Ce que couvre ce guide
Génération d'embeddings
Comment un agent ou le chat transforme une requête texte en vecteur sémantique.
Requête vectorielle (queryVectorFromString)
Obtenir rapidement les topK correspondances à partir d’une requête texte.
Injection de contexte dans l'agent
Assembler et insérer les extraits pertinents dans le prompt pour des réponses fiables.
Filtrage et réduction du bruit
Limiter la recherche par type/nom de fichier pour réduire le bruit et les coûts.
Stratégies de sélection topK
Choisir topK, appliquer seuils, dédupliquer et ordonner les extraits.
Bonnes pratiques et coûts
Conseils pour maîtriser la consommation d’embeddings et éviter les erreurs courantes.
Introduction
Ce guide détaille, pas à pas, comment transformer une requête texte en recherche vectorielle, récupérer les meilleurs résultats (topK) via queryVectorFromString, puis injecter ces extraits dans la conversation d’un agent ou d’un chat. Il s’adresse aux utilisateurs non techniques qui souhaitent configurer des flux RAG (Retrieval-Augmented Generation) pratiques et fiables.
Important : les recherches vectorielles consomment des embeddings et peuvent générer des coûts ou des opérations réseau. Planifiez et testez vos paramètres (topK, filtres, fréquence) avant de déployer à grande échelle.
Commencez petit
Pour évaluer coûts et pertinence, démarrez avec un topK faible (ex. 3) et activez des filtres (type ou nom de fichier). Vous pourrez augmenter topK après validation.
Flux principal : de la requête texte à la recherche vectorielle
1 — Rédiger la requête utilisateur
L’utilisateur saisit une question claire et concise. Exemple : “Comment déployer le script de migration ?” Précisez si possible le contexte (projet, répertoire) pour améliorer la recherche.
2 — Optionnel : enrichir la requête
Si besoin, reformulez la requête pour inclure mots-clés ou filtres (p. ex. mentionner le module ou le dossier). Les agents peuvent automatiquement générer mots-clés supplémentaires à partir du message initial.
3 — Construire l'embedding côté agent/chat
L’agent ou le chat transforme la requête en embedding (vecteur sémantique). Cette opération consomme crédit ou ressources — gardez-en trace.
4 — Lancer la recherche vectorielle (queryVectorFromString)
La recherche vectorielle utilise l’embedding et des paramètres optionnels (topK, filtres par type/nom) pour retrouver les extraits les plus proches. Indiquez topK selon l’objectif (3–10 en général).
5 — Récupérer et inspecter les topK matches
Recevez la liste des extraits avec un score de similarité et métadonnées (source, type). Triez par score, inspectez la qualité et repérez doublons ou extraits hors sujet.
6 — Filtrer et dédupliquer
Éliminez extraits très similaires ou répétitifs. Gardez des passages distincts et complémentaires pour maximiser l’information utile sans dépasser la fenêtre de contexte.
7 — Préparer l'injection de contexte
Formatez les extraits sélectionnés avant injection : incluez courte annotation (source/type), séparation claire (—), et limitez la taille cumulée pour tenir dans la fenêtre de contexte de l’agent.
8 — Injecter dans l'agent/chat et demander une réponse
Placez les extraits en tant que bloc de contexte au début de la requête envoyée à l’agent. Donnez une instruction explicite : “Réponds en te basant uniquement sur les extraits ci‑dessous. Si l’information n’y figure pas, dis-le.”
9 — Post-traitement et références
Ajoutez des références ou citations courtes dans la réponse (p. ex. “Source: fichier X, section Y”). Conservez l’historique pour réutiliser les extraits lors de follow-ups.
10 — Mesurer et ajuster
Mesurez pertinence, coût et latence. Ajustez topK, filtres, et stratégie de déduplication selon les retours.
Limiter la fenêtre de contexte
Regroupez les extraits par pertinence et taille : préférez 2–4 extraits bien ciblés plutôt que 10 longs passages. Cela réduit coûts et risque de confusion.
Coûts et quotas
Chaque recherche vectorielle implique la génération d’un embedding et une requête réseau. Surveillez l’usage (fréquence, topK) : multiplier les recherches peut entraîner des coûts significatifs.
Sélection avancée des topK et meilleure qualité des extraits
1 — Choisir topK selon l'usage
- Assistance immédiate (chat) : topK = 3–5.
- Recherche documentaire approfondie : topK = 8–15.
- Automatisation massive : testez progressivement.
2 — Appliquer un seuil de similarité
Définissez un seuil minimal de similarité pour ignorer résultats trop éloignés. Cela évite d’injecter du contenu non pertinent.
3 — Déduplication par contenu
Comparez les extraits par texte et éliminez ceux qui se recoupent à plus de 70–80% (ou selon vos règles internes).
4 — Ordonnancer les extraits
Ordre recommandé : pertinence descendante, puis diversité (éviter deux extraits issus du même paragraphe).
5 — Annoter pour la traçabilité
Ajoutez une mini‑métadonnée (source, type, score) avant chaque extrait pour pouvoir citer l’origine dans la réponse finale.
6 — Tronquer intelligemment
Si la somme des extraits dépasse la capacité, tronquez les plus faibles ou remplacez des extraits longs par leurs résumés.
Résumé plutôt que bloc brut
Pour les extraits longs, préférez un petit résumé extrait + lien vers l’original. Les résumés permettent d’économiser place et tokens tout en conservant l’essentiel.
Intégration dans un flux de chat (cas d'utilisation conversationnel)
1 — Réception du message utilisateur
L’utilisateur pose une question dans le chat. Enregistrez l’historique pour conserver le contexte conversationnel.
2 — Génération d'embedding pour la dernière demande
Le chat construit un embedding uniquement pour la dernière requête ou pour une requête enrichie (fusion historique + dernier message).
3 — Recherche et récupération topK
Exécutez la recherche vectorielle et récupérez les meilleurs extraits. Appliquez filtres si nécessaire (projet, langage, type de document).
4 — Construction du message système avec contexte
Créez un message système qui contient : instruction de contrainte (“utilise uniquement…”), liste d’extraits annotés, et format de sortie attendu (résumé, instruction pas-à-pas, code).
5 — Appel de l'agent et streaming de la réponse
L’agent produit la réponse en s’appuyant sur le contexte injecté. En production, prévoyez la possibilité d’un streaming pour UX fluide.
6 — Affichage des sources et options de follow-up
Affichez les sources utilisées et proposez des actions : “Montrer plus d’extraits”, “Chercher dans un fichier précis”, “Relancer la recherche avec mots‑clés”.
7 — Gestion des follow-ups
Pour les questions de suivi, réutilisez les extraits pertinents en cache et, si nécessaire, lancez une nouvelle recherche avec topK ajusté.
Cas typique : un utilisateur pose une question sur le projet. On préfère topK faible, injection de quelques extraits annotés et réponse concise avec citation des sources.
Quand utiliser topK faible
- Réponses rapides et contrôlées
- Coûts réduits
- Moins de risque de contradictions
Quand augmenter topK
- Recherche exhaustive ou génération longue
- Besoin de diversité d’information
- Phase d’exploration pour calibrer l’index
Risques de hallucination si contexte insuffisant
Si l’agent n’a pas d’extrait pertinent, demandez-lui explicitement de reconnaître l’absence d’information plutôt que d’inventer. Toujours présenter une option de « Je ne sais pas » ou proposer une recherche étendue.
Checklist avant déploiement en production
1 — Valider les coûts estimés
Simulez volume de requêtes et topK moyen pour estimer consommation d’embeddings et coût mensuel.
2 — Configurer des filtres raisonnables
Restreignez par projet, type ou dossier pour limiter le périmètre de recherche.
3 — Mettre en place des seuils et limites
Définissez topK max, seuils de similarité et quotas utilisateur pour protéger contre les usages abusifs.
4 — Logging et monitoring
Loggez requêtes, topK, latence et taux de réussite des résultats pertinents afin d’ajuster la stratégie.
5 — Tests manuels et automatiques
Créez scénarios tests couvrant questions fréquentes, requêtes ambiguës et cas sans résultat.
6 — Politique de mise à jour
Planifiez ré-indexation et rafraîchissement des extraits après changements significatifs du contenu source.
Frequently Asked Questions
Gardez la trace des sources utilisées
Pour la confiance et la traçabilité, conservez métadonnées (source, type, score) des extraits injectés et affichez-les avec la réponse.
Prêt à tester la recherche vectorielle ?
Commencez par un petit projet pilote : testez topK, filtres et stratégie de résumé avant d’étendre la solution.