Comment créer un RAG avec N8N

N8N devient de plus en plus populaire pour créer des agents IA d’une façon très simple et sans codage.

Aujourd’hui, je vais vous montrer un exemple de création d’un RAG (source) avec N8N.

Pour la création de ce RAG, j’ai utilisé :

  • Ollama (source) avec le modèle qwen3:4b, un modèle très léger, ainsi que mxbai-embed-large pour la partie embedding.

  • Mon choix de base de données a été Supabase Vector, facile à manipuler et aussi gratuit.

La data ingestion

Pour cette partie, il faut faire en sorte que l’on puisse importer notre fichier souhaité afin de donner du contexte à notre agent.

  1. Upload your file here :
    C’est un type de nœud File Upload, son rôle est de créer un point d’entrée du workflow. Le fichier est ensuite transmis au nœud suivant.

  2. Supabase Vector Store :
    C’est un nœud de stockage vectoriel. Son rôle est de recevoir les documents vectorisés (embeddings) et de les stocker dans une table Supabase dédiée (dans cet exemple : Documents).

Les deux entrées Embeddings et Documents :

    • Embedding Ollama :
      C’est mon générateur d’embeddings. Il prend le texte et calcule leurs représentations vectorielles. Ces embeddings sont ensuite utilisées pour les recherches par similarité.

    • Default Data Loader :
      C’est un chargeur de données. Il convertit le fichier brut (PDF, DOCX, CSV, etc) en texte pour fournir ce texte au nœud de découpage.

    • Recursive Character Text Splitter :
      C’est mon nœud de découpage. Il découpe le texte en petits morceaux (chunks), afin qu’ils soient compatibles avec les modèles d’embedding.

Le fonctionnement de l’agent

Pour cette partie, c’est le cœur de mon agent : son fonctionnement pour retrouver la réponse.

  • Chat Message :
    C’est mon point d’entrée, la question que je vais poser à mon agent IA.

  • AI Agent :
    C’est mon agent IA avec trois entrées :

    • Chat Model, donc le modèle LLM pour répondre aux questions,

    • Memory, la mémoire de mon agent (par défaut),

    • Les Tools.

  • Supabase Vector
    C’est avec Supabase Vector que mon agent va rechercher, dans la table Documents, les informations nécessaires pour répondre à des questions dont il ne dispose pas directement.
    Les documents sont découpés en chunks (division de documents) afin d’être stockés et indexés dans la base vectorielle.
    Lorsqu’une question est posée, ces chunks pertinents sont récupérés via la similarité sémantique, puis alimentent le modèle de chat Ollama (LLM) pour formuler une réponse contextuelle, cohérente et précise.

BDD :

Et voilà un RAG avec N8N