An n8n workflow that ingests documents into Qdrant and exposes a retrieval-augmented (RAG) chat agent powered by OpenAI embeddings and chat. The included example configures a hotel concierge that answers only from the knowledge base.
Repository: github.com/coder-msk/Qdrant-Vector-Store-Knowledge-Base
- Ingestion branch — A Form Trigger collects uploaded files (configured for CSV). Text is split with a Recursive Character Text Splitter, loaded via the Default Data Loader, embedded with OpenAI Embeddings, and inserted into a Qdrant collection (
qdrant_databasein the export). - Chat branch — A Chat Trigger sends user messages to an AI Agent that uses OpenAI Chat (
gpt-4.1-miniin the export) and a second Qdrant Vector Store node as a retrieve-as-tool (topK3) so answers are grounded in stored vectors.
- n8n (Cloud or self-hosted) with LangChain / AI nodes enabled
- Qdrant instance (e.g. Qdrant Cloud) and API credentials
- OpenAI API key for embeddings and chat
- A Qdrant collection compatible with your embedding size (the demo collection uses 1536-dimensional vectors with cosine distance, typical for OpenAI embeddings)
- In n8n, use Import workflow and select
Qdrant Vectore Store Knowledge Base.json. - Create or attach credentials: Qdrant API, OpenAI API.
- Confirm the collection name on both Qdrant Vector Store nodes matches your cluster.
- Activate the workflow and open the form and chat URLs from the respective trigger nodes.
The canvas shows both branches: ingestion (form → splitter → loader → embeddings → Qdrant insert) and chat (chat trigger → AI Agent with OpenAI model + Qdrant as retrieval tool). The Executions panel shows completed runs.
The “Upload file to database” form (CSV) next to the n8n nodes that embed and write into Qdrant.
Collections view for the cluster, showing the qdrant_database collection status, approximate points, and vector config (1536, cosine).
The embedded chat UI answering a hotel booking question using the agent wired to Qdrant retrieval.
- Change the AI Agent system prompt and tool description in n8n for domains other than hotels.
- Adjust topK, text splitter, and loader settings for your file types and chunking strategy.
- Replace or extend triggers (e.g. webhook, schedule) while keeping the same Qdrant + embeddings wiring.
Add a LICENSE file in the repository if you want to specify terms for reuse of the workflow and assets.



