RAG chatbot with Supabase + TogetherAI + Openrouter
$20/month : Unlimited workflows
2500 executions/month
THE #1 IN WEB SCRAPING
Scrape any website without limits
HOSTINGER 🎉 Early Black Friday Deal
DISCOUNT 20% Try free
DISCOUNT 20%
Self-hosted n8n
Unlimited workflows - from $4.99/mo
#1 hub for scraping, AI & automation
6000+ actors - $5 credits/mo
⚠️ RUN the FIRST WORKFLOW ONLY ONCE
(as it will convert your content in Embedding format and save it in DB and is ready for the RAG Chat)
📌 Telegram Trigger
- Type:
telegramTrigger - Purpose: Waits for new Telegram messages to trigger the workflow.
- Note: Currently disabled.
📄 Content for the Training
- Type:
googleDocs - Purpose: Fetches document content from Google Docs using its URL.
- Details: Uses Service Account authentication.
✂️ Splitting into Chunks
- Type:
code - Purpose: Splits the fetched document text into smaller chunks (1000 chars each) for processing.
- Logic: Loops over text and slices it.
🧠 Embedding Uploaded Document
- Type:
httpRequest - Purpose: Calls Together AI embedding API to get vector embeddings for each text chunk.
- Details: Sends JSON with model name and chunk as input.
🛢 Save the embedding in DB
- Type:
supabase - Purpose: Saves each text chunk and its embedding vector into the Supabase
embedtable.
SECOND WORKFLOW EXPLAINATION:
💬 When chat message received
- Type:
chatTrigger - Purpose: Starts the workflow when a user sends a chat message.
- Details: Sends an initial greeting message to the user.
🧩 Embend User Message
- Type:
httpRequest - Purpose: Generates embedding for the user’s input message.
- Details: Calls Together AI embeddings API.
🔍 Search Embeddings
- Type:
httpRequest - Purpose: Searches Supabase DB for the top 5 most similar text chunks based on the generated embedding.
- Details: Calls Supabase RPC function
matchembeddings1.
📦 Aggregate
- Type:
aggregate - Purpose: Combines all retrieved text chunks into a single aggregated context for the LLM.
🧠 Basic LLM Chain
- Type:
chainLlm - Purpose: Passes the user's question + aggregated context to the LLM to generate a detailed answer.
- Details: Contains prompt instructing the LLM to answer only based on context.
🤖 OpenRouter Chat Model
- Type:
lmChatOpenRouter - Purpose: Provides the actual AI language model that processes the prompt.
- Details: Uses
qwen/qwen3-8b:freemodel via OpenRouter and you can use any of your choice.