Définir le périmètre des sources avant le retrieval
Je commence par un registre des sources. Pour chacune, il décrit le propriétaire, le niveau d'autorité, l'audience, la politique d'accès, la fréquence de rafraîchissement, la rétention et le statut courant. Cela évite qu'un document archivé ou non officiel entre en concurrence avec la source approuvée. La résolution du périmètre doit précéder la recherche. L'identité de l'utilisateur, le contexte métier, le statut du document, la langue et la date d'effet peuvent déterminer le corpus valide. Appliquer ces contraintes après la recherche sémantique risque d'exposer une information ou d'ancrer la réponse dans la mauvaise version. Le pipeline d'ingestion doit ensuite rendre chaque étape observable :- collecter la source approuvée en préservant son identité ;
- extraire texte, tableaux, structure et pièces jointes ;
- normaliser métadonnées et attributs d'accès ;
- découper le contenu selon la structure du document ;
- produire les représentations de recherche ;
- publier un index versionné et un rapport d'ingestion.
Concevoir le retrieval comme un système de classement mesurable
J'évalue le retrieval avant la génération. Si les preuves manquent, un modèle plus puissant produit souvent une réponse non sourcée simplement plus convaincante. Un stack de retrieval peut combiner :- filtres de métadonnées et de permissions ;
- recherche lexicale pour les identifiants et termes métier exacts ;
- recherche vectorielle pour la proximité sémantique ;
- réécriture des requêtes ambiguës ou conversationnelles ;
- reranking du jeu de candidats ;
- diversification ou remontée au document parent lorsque les fragments manquent de contexte.
Contraindre la génération par les preuves
La couche de réponse doit recevoir des preuves traçables et des règles explicites. Je définis la manière de citer les sources, traiter les documents contradictoires, exprimer l'incertitude et refuser lorsque les éléments sont insuffisants. Le refus est un résultat valide lorsque l'alternative serait une affirmation non sourcée. Je distingue la qualité de réponse de la qualité des preuves. Une réponse fluide avec une citation invalide reste un échec. Une information correcte appuyée par un document obsolète aussi. Le contrôle des citations doit donc vérifier que le passage existe, que l'utilisateur peut y accéder et qu'il soutient réellement l'affirmation. Le système doit proposer des fallbacks sûrs : préciser la requête, poser une question de clarification, suggérer une source approuvée ou router vers un owner humain. Il ne doit pas répondre silencieusement depuis la mémoire du modèle lorsque le produit promet un comportement fondé sur les sources.Observer le pipeline et qualifier les échecs
Les traces relient la demande utilisateur au périmètre, à la transformation de requête, aux éléments récupérés, au reranking, aux appels de modèle, aux guardrails, aux citations, à la latence et au coût. Elles permettent de qualifier l'échec :- source : le contenu requis manque, est obsolète ou non autorisé ;
- parsing : la structure, les tableaux ou le texte sont dégradés ;
- retrieval : une preuve valide existe mais n'est pas sélectionnée ;
- synthèse : le modèle interprète mal des preuves suffisantes ;
- politique : le système répond, refuse ou escalade au mauvais moment ;
- runtime : latence, timeout ou intégration brisent le parcours.