Ce tutoriel construit un chatbot qui répond à partir d’un petit corpus documentaire. L’objectif n’est pas seulement d’obtenir une démonstration convaincante, mais de vérifier ce qui se passe lorsqu’une information manque.
1. Préparer un corpus testable
Rassemblez quelques documents courts, à jour et dont vous connaissez le contenu. Retirez les doublons et ajoutez un titre explicite. N’utilisez pas encore de données personnelles ou confidentielles.
Préparez dix questions : cinq dont la réponse figure clairement dans le corpus, deux reformulations, deux questions sans réponse et une question ambiguë. Notez le passage attendu pour chaque cas répondable.
2. Configurer les modèles
Dans les paramètres Dify, installez ou configurez un fournisseur. Le chatbot a besoin d’un modèle de génération ; la base de connaissances utilise aussi un modèle d’embeddings et peut employer un reranker.
Conservez le nom exact des modèles. Si vous les changez plus tard, rejouez le jeu de test. Un changement d’embeddings peut nécessiter une nouvelle indexation.
3. Créer la base de connaissances
Créez une base, importez les documents puis choisissez la stratégie de découpage. Commencez avec les séparations naturelles proposées. Inspectez plusieurs segments : chacun doit porter une idée compréhensible et conserver son titre ou origine.
Une taille élevée donne davantage de contexte mais mélange parfois plusieurs sujets. Une taille faible améliore la précision locale mais peut couper une explication. Il n’existe pas de valeur universelle.
4. Construire le Chatflow
Créez un Chatflow vide et reliez :
- l’entrée utilisateur ;
- un nœud de récupération de connaissances ;
- un nœud LLM ;
- la réponse.
Sélectionnez la base dans le nœud de récupération. Dans les instructions du modèle, demandez de s’appuyer uniquement sur les passages fournis, de signaler une information absente et de ne pas inventer de référence.
N’insérez pas tout le document dans le prompt. Le retriever doit sélectionner un petit nombre de passages pertinents.
5. Tester la récupération séparément
Pour chaque question, inspectez d’abord les passages remontés. Si le bon passage est absent, modifier le prompt du modèle ne résoudra pas le problème. Travaillez sur le découpage, la requête, les filtres, le nombre de résultats ou le reranking.
Mesurez au minimum la présence d’un passage pertinent dans les premiers résultats. Ensuite seulement, évaluez si la réponse finale reste fidèle au contexte et cite la bonne origine.
6. Traiter l’absence de réponse
Un chatbot fiable doit savoir s’arrêter. Testez les questions hors corpus et vérifiez qu’il indique l’absence d’information. Ajoutez si nécessaire une branche fondée sur le score, mais calibrez son seuil avec vos données : les scores ne sont pas comparables entre tous les modèles et métriques.
Évitez de demander au modèle de compléter depuis ses connaissances générales si l’usage exige une réponse strictement documentaire.
7. Publier prudemment
Avant d’exposer l’application :
- contrôlez les droits sur chaque document ;
- séparez les bases par périmètre si nécessaire ;
- activez une authentification pour l’API ;
- limitez débit, taille des fichiers et longueur des conversations ;
- masquez les secrets dans les logs ;
- définissez une procédure de suppression et réindexation.
Résultat
Vous disposez d’un chatbot RAG minimal et d’un jeu d’évaluation reproductible. L’étape suivante consiste à automatiser ces tests et à observer les questions réelles qui échouent, plutôt qu’à ajouter immédiatement davantage de nœuds.