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

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

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

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

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

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

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

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

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

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

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

1 — Choisir topK selon l'usage

  • Assistance immédiate (chat) : topK = 3–5.
  • Recherche documentaire approfondie : topK = 8–15.
  • Automatisation massive : testez progressivement.
2

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

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

4 — Ordonnancer les extraits

Ordre recommandé : pertinence descendante, puis diversité (éviter deux extraits issus du même paragraphe).

5

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

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

1 — Réception du message utilisateur

L’utilisateur pose une question dans le chat. Enregistrez l’historique pour conserver le contexte conversationnel.

2

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

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

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

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

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

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.

Cas typique : agent périodique qui récupère extraits pour résumé ou génération de contenu long. TopK peut être plus élevé, mais appliquer ensuite déduplication et résumé avant génération finale.

Scénario : exécuter plusieurs requêtes en batch pour indexation ou audit. Optimisez en regroupant requêtes, en limitant topK par requête et en traitant les résultats de façon asynchrone pour réduire latence et coûts.

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

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

2 — Configurer des filtres raisonnables

Restreignez par projet, type ou dossier pour limiter le périmètre de recherche.

3

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

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

5 — Tests manuels et automatiques

Créez scénarios tests couvrant questions fréquentes, requêtes ambiguës et cas sans résultat.

6

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.