Un nouvel assistant RAG (retrieval-augmented generation) basé sur WhatsApp a cessé d'halluciner en exigeant que chaque réponse soit étayée par une citation encodée en JSON. Lorsque le modèle ne pouvait pas pointer vers un segment (chunk) spécifique, il renvoyait « Je n'ai pas assez d'informations pour répondre à cela », transformant un menteur sûr de lui en un système fiable capable de dire « Je ne sais pas ».
Pourquoi la confiance est cruciale dans le RAG
La plupart des tutoriels sur le RAG se focalisent sur la récupération (retrieval) : le choix des embeddings, le découpage des documents en segments (chunks), le re-classement (re-ranking) des résultats. Ils négligent ce qui se passe une fois le texte pertinent trouvé. Les utilisateurs perdent confiance lorsque l'assistant propose une réponse définitive que le contexte récupéré ne soutient pas réellement.
Le fossé de la confiance
Dans un prototype construit avec PostgreSQL et l'extension pgvector, le pipeline de récupération était simple. Le véritable défi est apparu en production : le modèle de langage paraissait sûr de lui, même lorsque l'extrait récupéré manquait des informations nécessaires. Une démo pouvait masquer le problème, mais les utilisateurs réels ont mis en évidence l'écart entre l'assurance de la réponse et son exactitude.
Imposer des citations avec JSON
Au lieu de tenter de convaincre le modèle avec des prompts tels que « réponds uniquement si tu as le contexte », l'auteur a modifié le format de sortie. Le système exige désormais un objet JSON dans lequel chaque affirmation inclut une référence au segment exact qui la soutient. Si le modèle ne peut pas joindre de citation, la réponse est rejetée et l'utilisateur voit un message clair : « Je ne sais pas ».
L'application de la règle est passée d'instructions en langage naturel à une validation de schéma. Le modèle génère toujours du texte, mais le code environnant vérifie que le JSON correspond à la structure requise avant qu'il n'atteigne l'utilisateur.
Ce qui a changé
- Le découpage (chunking) est devenu plus conservateur. Les segments vagues ou trop larges génèrent désormais des affirmations sans citations, déclenchant le mode de repli « Je ne sais pas ».
- Le prompt système a été réduit. Le prompt contraignant qui tentait de réguler le comportement du modèle a été remplacé par un ensemble d'instructions courtes, laissant le schéma faire le plus gros du travail.
- Les échecs sont visibles. Lorsque la récupération renvoie du contenu non pertinent, l'assistant ne masque plus l'erreur par une réponse assurée mais erronée ; il admet ouvertement son incertitude.
À retenir : Pour les assistants RAG, garantir que chaque affirmation est traçable jusqu'à une source récupérée renforce la confiance des utilisateurs de manière plus fiable que le simple perfectionnement de l'étape de récupération. En transformant l'absence de citations en un « Je ne sais pas » explicite, les développeurs permettent au système d'admettre ses limites au lieu de fabriquer des réponses.
