Dev.to · 5 min read

Tutoriel n8n : un agent IA qui répond à partir de votre FAQ (RAG simple avec un vector store)

Tutoriel n8n : un agent IA qui répond à partir de votre FAQ (RAG simple avec un vector store)

Un agent IA branché directement sur un LLM répond avec assurance… y compris quand il ne sait pas. Pour une entreprise, c'est le principal risque : une réponse inventée sur un délai, un tarif ou une procédure. La parade la plus simple s'appelle le RAG (Retrieval-Augmented Generation) : avant de répondre, l'agent va chercher les passages pertinents dans vos propres documents, et il s'appuie sur eux. Ce tutoriel montre comment monter un RAG minimal dans n8n, avec une FAQ interne comme source. Les noms de nœuds peuvent varier légèrement selon votre version de n8n ; l'idée reste la même. Ce qu'on va construire Deux workflows : Ingestion : on découpe la FAQ en morceaux, on calcule leurs embeddings et on les range dans un vector store. Conversation : un agent IA reçoit une question, interroge le vector store comme un outil, et répond uniquement à partir de ce qu'il trouve. Prérequis Une instance n8n (cloud ou auto-hébergée) avec les nœuds IA (LangChain) disponibles. Une clé API pour un modèle de chat et un modèle d'embeddings (OpenAI, Mistral, etc.). Votre FAQ dans un format texte simple : Google Doc, fichier Markdown ou PDF propre. Étape 1 — Préparer la source C'est l'étape la plus sous-estimée. Un RAG ne vaut que ce que vaut le document : une question par section, avec un titre clair ; des réponses courtes, datées si l'information change (horaires, conditions) ; pas de doublons contradictoires entre deux versions du même document. Si vous servez des clients en français et en arabe, gardez une seule langue de référence dans la source : le modèle sait répondre dans la langue de la question. Étape 2 — Workflow d'ingestion Chaîne de nœuds : Manual Trigger (ou un Schedule Trigger si la FAQ change souvent). Un nœud qui récupère le document (Google Drive, HTTP Request, Read Binary File…). Un nœud Vector Store en mode Insert Documents. Pour tester, le Simple Vector Store (en mémoire) suffit ; en production, préférez une base persistante comme Postgres avec pgvector, Qdrant ou Supabase. Sous ce nœud, branchez : un Default Data Loader (type texte ou binaire selon la source) ; un Recursive Character Text Splitter : commencez autour de 800 à 1 000 caractères par morceau avec un léger chevauchement, puis ajustez en testant ; un nœud Embeddings (le même modèle devra être utilisé à la lecture). Exécutez une fois : vos morceaux de FAQ sont indexés. Piège classique : changer de modèle d'embeddings sans réindexer. Les vecteurs ne sont plus comparables, et la recherche renvoie n'importe quoi. Étape 3 — Workflow de conversation Chat Trigger (pour tester dans l'interface n8n) ou un Webhook branché sur votre canal (site, WhatsApp via un fournisseur, e-mail). AI Agent avec : un Chat Model ; une mémoire courte (par exemple Simple Memory avec une fenêtre de quelques échanges), clé de session = identifiant de la conversation ; un outil : le même Vector Store, cette fois en mode Retrieve Documents (As Tool for AI Agent), avec le même nœud Embeddings et une description explicite, par exemple : « Base de la FAQ interne. À utiliser pour toute question sur les services, délais, horaires et procédures. » La description de l'outil compte : c'est elle qui aide l'agent à décider quand chercher. Étape 4 — Le prompt système qui limite les inventions Exemple de base, à adapter : Tu es l'assistant de [Entreprise]. Pour toute question factuelle, consulte d'abord l'outil FAQ. Réponds uniquement à partir des passages trouvés. Si la FAQ ne contient pas la réponse, dis-le simplement et propose de transmettre la demande à un membre de l'équipe. Ne donne jamais de prix, de délai ou d'engagement absent de la FAQ. Réponds dans la langue du client, en 3 à 5 phrases maximum. Étape 5 — Tester avant d'ouvrir au public Préparez une petite liste de questions : des questions dont la réponse est dans la FAQ (formulées autrement que dans le texte) ; des questions hors sujet ; des questions pièges (« vous faites -50 % aujourd'hui ? »). Pour chacune, vérifiez dans le journal d'exécution que l'outil a bien été appelé et que la réponse correspond aux passages récupérés. Si l'agent répond sans appeler l'outil, renforcez la consigne dans le prompt et la description de l'outil. Si les passages récupérés sont mauvais, retravaillez le découpage ou la source, pas le prompt. Étape 6 — Prévoir l'escalade Quand l'agent dit « je ne sais pas », il faut que quelqu'un le sache. Ajoutez une branche qui, sur ce cas (par exemple via une sortie structurée { "escalade": true }), crée une tâche ou envoie une notification à l'équipe avec la question et l'historique. Ces questions sans réponse sont aussi la meilleure liste d'amélioration de votre FAQ. Récapitulatif Le RAG ne rend pas l'agent infaillible, il le rend vérifiable : on sait d'où vient chaque réponse. La qualité de la source et du découpage pèse plus que le choix du modèle. Même modèle d'embeddings à l'écriture et à la lecture, et réindexation à chaque changement. Toujours une sortie vers un humain. Nous construisons ce type d'agents pour des PME au Maroc chez Flux Intelligent ; si vous montez le vôtre et bloquez sur une étape, les questions en commentaire sont les bienvenues.

This is a summary aggregated from Dev.to. Read the complete article on the original site:

Read full article at Dev.to

More AI & Machine Learning News