AutomationFlowsAI & RAG › Build a Document-based AI Chatbot with Google Drive, Llama 3, and Qdrant RAG

Build a Document-based AI Chatbot with Google Drive, Llama 3, and Qdrant RAG

ByMohsin @mohsinobsidian on n8n.io

Overview This template allows users to set up an AI-powered chatbot that retrieves and processes knowledge from Google Drive documents using Retrieval-Augmented Generation (RAG). By leveraging Llama 3 for natural language responses and Qdrant vector storage for document…

Event trigger★★★☆☆ complexityAI-powered12 nodesGoogle Drive TriggerGoogle DriveOllama EmbeddingsDocument Default Data LoaderText Splitter Recursive Character Text SplitterQdrant Vector StoreAgentChat Trigger
AI & RAG Trigger: Event Nodes: 12 Complexity: ★★★☆☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #4773 — we link there as the canonical source.

This workflow follows the Agent → Chat Trigger recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "Mj1ghjtbl9gF3Zyv",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "RAG Pipeline and Chatbot",
  "tags": [],
  "nodes": [
    {
      "id": "f7f16cac-dda3-45df-8725-4b0febd05a41",
      "name": "Google Drive Trigger",
      "type": "n8n-nodes-base.googleDriveTrigger",
      "position": [
        0,
        0
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "ca68784d-cf16-4e34-a069-54af6724b036",
      "name": "Google Drive",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        220,
        0
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "eb26965d-a53e-4a69-9cb3-a12aecb3c06c",
      "name": "Embeddings Ollama",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOllama",
      "position": [
        320,
        200
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "517e0980-2cf6-43f6-9018-1debe566df18",
      "name": "Default Data Loader",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        440,
        200
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "c51bf4a5-e644-46fd-8de5-61d169f55aa3",
      "name": "Recursive Character Text Splitter",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        540,
        420
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "e215d75e-6138-4c99-97cb-1456a2d96fc0",
      "name": "Qdrant Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
      "position": [
        440,
        0
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "cf9e6861-3b99-44f2-89d2-15fde5120254",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1260,
        0
      ],
      "parameters": {},
      "typeVersion": 1.9
    },
    {
      "id": "de875567-e2f5-47e8-8145-0d6158a108b1",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        1040,
        0
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "a043f2ce-fd95-4286-8dd1-e3d1c9fd9051",
      "name": "Ollama Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOllama",
      "position": [
        1300,
        220
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "58afa38b-0c7f-46d9-8d2e-a346ab2baf06",
      "name": "Qdrant Vector Store1",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
      "position": [
        1420,
        240
      ],
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "c3151cb4-e066-40af-9eff-fe975fdffbb7",
      "name": "Embeddings Ollama1",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOllama",
      "position": [
        1420,
        460
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "76717f0e-917a-492f-873e-9dae174ba04e",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        -840
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "28873c1d-0035-45ba-81a0-02a5b35482da",
  "connections": {
    "Google Drive": {
      "main": [
        [
          {
            "node": "Qdrant Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings Ollama": {
      "ai_embedding": [
        [
          {
            "node": "Qdrant Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Ollama Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings Ollama1": {
      "ai_embedding": [
        [
          {
            "node": "Qdrant Vector Store1",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader": {
      "ai_document": [
        [
          {
            "node": "Qdrant Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Google Drive Trigger": {
      "main": [
        [
          {
            "node": "Google Drive",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Qdrant Vector Store1": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recursive Character Text Splitter": {
      "ai_textSplitter": [
        [
          {
            "node": "Default Data Loader",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

Overview This template allows users to set up an AI-powered chatbot that retrieves and processes knowledge from Google Drive documents using Retrieval-Augmented Generation (RAG). By leveraging Llama 3 for natural language responses and Qdrant vector storage for document…

Source: https://n8n.io/workflows/4773/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

Order and Delivery Support. Uses lmChatOpenAi, documentDefaultDataLoader, embeddingsOpenAi, toolVectorStore. Event-driven trigger; 29 nodes.

OpenAI Chat, Document Default Data Loader, OpenAI Embeddings +15
AI & RAG

Answers should given only within provided text. Chat interface powered by LLM (Ollama) Retrieval-Augmented Generation (RAG) using Supabase Vector DB Multi-format file support (PDF, Excel, Google Docs,

Document Default Data Loader, Google Drive, Google Drive Trigger +10
AI & RAG

This powerful AI automation add-on upgrades your Telegram Bot Starter Template by integrating a fully functional AI chatbot and a context-aware AI agent that answers user questions using your internal

OpenAI Chat, Document Default Data Loader, OpenAI Embeddings +10
AI & RAG

Supabase RAG AI Agent Custom Auth. Uses lmChatOpenAi, documentDefaultDataLoader, embeddingsOpenAi, toolVectorStore. Event-driven trigger; 27 nodes.

OpenAI Chat, Document Default Data Loader, OpenAI Embeddings +10
AI & RAG

Indexation. Uses formTrigger, embeddingsOllama, textSplitterRecursiveCharacterTextSplitter, modelSelector. Event-driven trigger; 25 nodes.

Form Trigger, Ollama Embeddings, Text Splitter Recursive Character Text Splitter +9