Template n8n · Pack Assistant RAG
Exposer une API question-réponse sur ses documents avec n8n
Le chat n8n ne s'intègre pas partout — une API, si. Ce workflow expose un endpoint POST /ask : envoyez {"question": "…"} et recevez la réponse fondée sur vos documents en JSON structuré, prête à afficher dans votre site, votre CRM ou votre outil interne.
Par Clément Lacaille (Tech-Bharat) · mis à jour le 11 juillet 2026 · notre méthode
Pack Assistant RAG — 119 €
Ce workflow + 3 autres, JSON validés, guide en français, garantie 14 jours
{
"name": "FlowKit — API question-réponse sur vos documents",
"nodes": [
{"name": "POST /ask (Webhook)", "type": "n8n-nodes-base.webhook", "typeVersion": 2, "position": [-440,0]},
{"name": "Question valide ?", "type": "n8n-nodes-base.if", "typeVersion": 2.2, "position": [-220,0]},
{"name": "Répondre depuis les documents", "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa", "typeVersion": 1.4, "position": [0,0]},
{"name": "Modèle OpenAI", "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi", "typeVersion": 1.2, "position": [-120,200]},
{"name": "Retriever", "type": "@n8n/n8n-nodes-langchain.retrieverVectorStore", "typeVersion": 1, "position": [120,200]},
{"name": "Base vectorielle Supabase", "type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase", "typeVersion": 1.1, "position": [120,400]},
// … 4 autres nodes, connections, settings
]
}Extrait réel du fichier livré (structure seulement : paramètres des nodes et prompts font partie du pack payant).
Le problème que ça règle
Une fois le RAG en place, chaque équipe veut l'appeler depuis son propre outil : le widget du site, le back-office, un canal support. Multiplier les chatbots serait absurde ; il faut une interface programmatique unique devant la même base vectorielle.
Ce template est cette interface : validation d'entrée, erreur 400 explicite, réponse JSON horodatée. C'est aussi le point de départ naturel pour brancher un frontend maison sur votre assistant.
Comment le workflow fonctionne, node par node
- 01
POST /ask (Webhook)
WebhookEndpoint HTTP POST (chemin flowkit-ask) attendant un corps JSON {"question": "…"}. Le mode responseNode laisse le workflow contrôler entièrement la réponse HTTP.
- 02
Question valide ?
IF (condition)Rejette les requêtes sans question exploitable avant de dépenser le moindre token — hygiène de base d'une API.
- 03
Répondre depuis les documents
Chaîne RAG (Q&R)Même chaîne RAG que le chatbot du pack : passages récupérés injectés dans le prompt, réponse contrainte au contexte, citations des sources.
- 04
Modèle OpenAI
Modèle OpenAISous-node ai_languageModel (gpt-4o-mini) — même modèle que le chat pour des réponses cohérentes entre canaux.
- 05
Retriever
RetrieverRecherche les 4 passages les plus pertinents dans la base vectorielle avant génération.
- 06
Base vectorielle Supabase
Base vectorielle SupabaseMode retrieve sur la table documents — la même que celle alimentée par les workflows d'ingestion du pack.
- 07
Embeddings OpenAI
Embeddings OpenAIVectorise la question entrante dans le même espace que le corpus indexé.
- 08
Formater la réponse
Set (champs)Construit l'objet de sortie : réponse, modèle utilisé, horodatage — un contrat d'API stable pour vos intégrations.
- 09
Réponse JSON
Réponse webhookRenvoie le JSON final avec un statut 200.
- 10
Erreur 400
Réponse webhookBranche d'échec de la validation : {"error": "question manquante"} — l'appelant sait immédiatement corriger son appel.
Ce qu'il faut pour le faire tourner
- n8n ≥ 1.60 avec les nodes LangChain
- Une base Supabase pgvector alimentée (ingestion PDF ou Notion du pack)
- Une clé API OpenAI
- Recommandé : une authentification sur le webhook (header API key) avant exposition publique
Pistes de personnalisation
- Ajouter l'authentification par en-tête dans les options du webhook avant toute exposition sur internet
- Renvoyer aussi les sources utilisées en interrogeant les métadonnées des passages récupérés
- Tracer les questions/réponses dans une table Supabase pour analyser ce que cherchent vos utilisateurs
FAQ
Questions fréquentes
Comment importer ce template dans n8n ?
Importez api-question-reponse-rag.json via « Import from File », associez OpenAI et Supabase, activez, puis testez : curl -X POST https://votre-n8n/webhook/flowkit-ask -H 'Content-Type: application/json' -d '{"question":"…"}'.
Quel temps de réponse attendre ?
De 2 à 5 secondes typiquement : recherche vectorielle (rapide) plus génération LLM (le gros du délai). Pour un widget web, affichez un indicateur d'attente ; le modèle mini maintient la latence basse.
Puis-je appeler cette API depuis un site public ?
Techniquement oui, mais ajoutez d'abord une authentification et une limitation de débit (reverse proxy ou node de comptage) : un endpoint LLM ouvert, c'est votre facture OpenAI ouverte.