Un retriever reçoit une requête non structurée et retourne une liste de documents pertinents. Cette interface découple la recherche de la génération : le même pipeline peut interroger un vector store, un moteur lexical ou une base documentaire existante sans changer le contrat principal.
Retriever, vector store et RAG
Un vector store conserve des embeddings et exécute une recherche par similarité. Un retriever est une abstraction plus large : il peut encapsuler ce vector store, appliquer un filtre, fusionner plusieurs résultats ou appeler un moteur externe. Dans un RAG en deux étapes, la recherche précède toujours l’appel au modèle, ce qui rend la latence et le coût plus prévisibles.
Créer et appeler le retriever
Après l’indexation, la plupart des vector stores exposent as_retriever. Configurez explicitement k, les filtres de métadonnées et, si disponible, la stratégie de recherche. Appelez ensuite retriever.invoke(question) et inspectez les documents avant de construire le contexte. Ne transmettez pas automatiquement tous les résultats au modèle.
Construire le contexte
Conservez pour chaque extrait son identifiant, sa source et ses métadonnées. Formatez le contexte avec des séparateurs nets et demandez au modèle de signaler quand les documents ne suffisent pas. Limitez la taille totale et évitez de couper une information essentielle au milieu d’un bloc.
Évaluer séparément le retrieval
Mesurez la pertinence, la précision et le rappel du retrieval indépendamment de la réponse finale. Si les bons documents ne remontent pas, modifier le prompt de génération ne corrigera pas le problème. Testez aussi les requêtes ambiguës, les acronymes et les filtres d’accès.
Checklist avant mise en production
- Valider les entrées, les sorties et les permissions des outils.
- Tester les erreurs du fournisseur, les délais d’attente et les limites de coût.
- Ajouter des traces sans enregistrer de secrets ni de données personnelles inutiles.
- Mesurer la qualité sur un jeu de cas représentatifs avant chaque évolution.
Questions fréquentes
Un retriever utilise-t-il forcément des embeddings ?
Non. Il peut s’appuyer sur une recherche lexicale, une API, une base SQL ou une combinaison de méthodes.
Quand choisir un RAG agentique ?
Quand le modèle doit décider s’il faut rechercher, choisir entre plusieurs sources ou reformuler la requête. Pour une FAQ, un RAG en deux étapes est souvent plus simple.