Build a dual-stage RAG chat assistant with Google Drive, Ollama, Pinecone and Gemini

Go to Workflow
0 views
Built by Alex Raj Alex Raj
Created on August 21, 2026

Description

Quick overview
This template builds a dual-stage RAG system that ingests PDFs/text from Google Drive into a Pinecone knowledge-base index with Ollama embeddings, and serves chat queries via a Pinecone semantic cache that falls back to a Google Gemini AI Agent with vector retrieval.

How it works
Triggers on a Google Drive folder update (or manually) to list and download files from a specified Drive folder.
Detects whether each file is a PDF or plain text and extracts the document text accordingly.
Splits extracted content into overlapping chunks, embeds them with Ollama (nomic-embed-text), and inserts the vectors into a Pinecone index for the knowledge base.
Triggers when a chat message is received and embeds the user query with Ollama to search the Pinecone semantic-cache index for the closest prior answer.
Returns the cached answer immediately when the best match score is at least 0.88.
On a cache miss, uses a Google Gemini AI Agent with conversation memory and a Pinecone vector-store retrieval tool to generate a grounded answer from the knowledge-base index.
Stores the new query-and-answer pair back into the Pinecone semantic-cache index for faster responses to future similar questions.

Setup
Create two Pinecone indexes using cosine similarity and 768 dimensions: one for the knowledge base (e.g. nomic-embed-text) and one for the semantic cache (e.g. rag-semantic-cache).
Set up Pinecone credentials in n8n and select the correct index names in the Pinecone vector store nodes.
Run Ollama and pull the nomic-embed-text model, then configure Ollama credentials/base URL in n8n.
Add Google Drive OAuth2 credentials and replace YOUR_GOOGLE_DRIVE_FOLDER_ID with the folder you want to ingest.
Add a Google Gemini API key and confirm the model name (for example models/gemini-1.5-flash) in both Gemini chat model nodes.
If you use the chat trigger via webhook, copy the chat/webhook URL from n8n and configure your client to send messages to it.

Nodes Used (9)

AI Agent
@n8n/n8n-nodes-langchain.agent
Code
n8n-nodes-base.code
Default Data Loader
@n8n/n8n-nodes-langchain.documentDefaultDataLoader
Embeddings Ollama
@n8n/n8n-nodes-langchain.embeddingsOllama
Google Drive
n8n-nodes-base.googleDrive
Google Gemini Chat Model
@n8n/n8n-nodes-langchain.lmChatGoogleGemini
Pinecone Vector Store
@n8n/n8n-nodes-langchain.vectorStorePinecone
Simple Memory
@n8n/n8n-nodes-langchain.memoryBufferWindow
Vector Store Question Answer Tool
@n8n/n8n-nodes-langchain.toolVectorStore