mirror of
https://github.com/coleam00/ai-agents-masterclass.git
synced 2025-11-29 08:33:16 +00:00
Supabase RAG Agent n8n Workflow
This commit is contained in:
641
supabase-n8n-rag-agent/Supabase_RAG_AI_Agent.json
Normal file
641
supabase-n8n-rag-agent/Supabase_RAG_AI_Agent.json
Normal file
@@ -0,0 +1,641 @@
|
||||
{
|
||||
"name": "Supabase RAG AI Agent",
|
||||
"nodes": [
|
||||
{
|
||||
"parameters": {
|
||||
"model": "gpt-4o-mini",
|
||||
"options": {}
|
||||
},
|
||||
"id": "b98c17c5-3bef-4378-8d81-61b127711661",
|
||||
"name": "OpenAI Chat Model",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
1060,
|
||||
520
|
||||
],
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "JJjD91oisPv9cs01",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"model": "gpt-4o-mini",
|
||||
"options": {}
|
||||
},
|
||||
"id": "e850aa69-1910-4986-99f2-214a8759b777",
|
||||
"name": "OpenAI Chat Model1",
|
||||
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
1880,
|
||||
460
|
||||
],
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "JJjD91oisPv9cs01",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"jsonMode": "expressionData",
|
||||
"jsonData": "={{ $json.data }}",
|
||||
"options": {
|
||||
"metadata": {
|
||||
"metadataValues": [
|
||||
{
|
||||
"name": "=file_id",
|
||||
"value": "={{ $('Set File ID').item.json.file_id }}"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "9f5b6c56-58f6-4ae5-96fd-f3efd9b35fd6",
|
||||
"name": "Default Data Loader",
|
||||
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
2020,
|
||||
1000
|
||||
]
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"model": "text-embedding-3-small",
|
||||
"options": {}
|
||||
},
|
||||
"id": "5eaf6315-fcd0-4a4d-a1b3-37f5793f6e5c",
|
||||
"name": "Embeddings OpenAI1",
|
||||
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
1860,
|
||||
1000
|
||||
],
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "JJjD91oisPv9cs01",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"name": "user_documents",
|
||||
"description": "Contains all the user's documents that you can check for context to answer user questions."
|
||||
},
|
||||
"id": "b3868e8d-fbce-4c16-8174-0e5475cfffba",
|
||||
"name": "Retrieve Documents",
|
||||
"type": "@n8n/n8n-nodes-langchain.toolVectorStore",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
1660,
|
||||
280
|
||||
]
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"content": "## Agent Tools for RAG",
|
||||
"height": 528.85546469693,
|
||||
"width": 583.4552380860637,
|
||||
"color": 4
|
||||
},
|
||||
"id": "d4a657c6-2f17-4071-8cee-0b1b12f74b1c",
|
||||
"name": "Sticky Note",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
1480,
|
||||
160
|
||||
]
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"content": "## Tool to Add a Google Drive File to Vector DB",
|
||||
"height": 671.8877842322804,
|
||||
"width": 2070.8894079025763,
|
||||
"color": 5
|
||||
},
|
||||
"id": "38517d9e-61cf-4b36-bbb2-607a04e870c8",
|
||||
"name": "Sticky Note1",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
260,
|
||||
700
|
||||
]
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"operation": "download",
|
||||
"fileId": {
|
||||
"__rl": true,
|
||||
"value": "={{ $('Set File ID').item.json.file_id }}",
|
||||
"mode": "id"
|
||||
},
|
||||
"options": {
|
||||
"googleFileConversion": {
|
||||
"conversion": {
|
||||
"docsToFormat": "text/plain"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "d9e3d812-9158-44e2-b9e9-8c28c5cd0921",
|
||||
"name": "Download File",
|
||||
"type": "n8n-nodes-base.googleDrive",
|
||||
"typeVersion": 3,
|
||||
"position": [
|
||||
1360,
|
||||
880
|
||||
],
|
||||
"executeOnce": true,
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "cfNochbuJikPwwl2",
|
||||
"name": "Google Drive account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"pollTimes": {
|
||||
"item": [
|
||||
{
|
||||
"mode": "everyMinute"
|
||||
}
|
||||
]
|
||||
},
|
||||
"triggerOn": "specificFolder",
|
||||
"folderToWatch": {
|
||||
"__rl": true,
|
||||
"value": "1914m3M7kRzkd5RJqAfzRY9EBcJrKemZC",
|
||||
"mode": "list",
|
||||
"cachedResultName": "Meeting Notes",
|
||||
"cachedResultUrl": "https://drive.google.com/drive/folders/1914m3M7kRzkd5RJqAfzRY9EBcJrKemZC"
|
||||
},
|
||||
"event": "fileCreated",
|
||||
"options": {}
|
||||
},
|
||||
"id": "6c24f48d-2a8e-471d-b477-dd9576e57eec",
|
||||
"name": "File Created",
|
||||
"type": "n8n-nodes-base.googleDriveTrigger",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
320,
|
||||
780
|
||||
],
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "cfNochbuJikPwwl2",
|
||||
"name": "Google Drive account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"pollTimes": {
|
||||
"item": [
|
||||
{
|
||||
"mode": "everyMinute"
|
||||
}
|
||||
]
|
||||
},
|
||||
"triggerOn": "specificFolder",
|
||||
"folderToWatch": {
|
||||
"__rl": true,
|
||||
"value": "1914m3M7kRzkd5RJqAfzRY9EBcJrKemZC",
|
||||
"mode": "list",
|
||||
"cachedResultName": "Meeting Notes",
|
||||
"cachedResultUrl": "https://drive.google.com/drive/folders/1914m3M7kRzkd5RJqAfzRY9EBcJrKemZC"
|
||||
},
|
||||
"event": "fileUpdated",
|
||||
"options": {}
|
||||
},
|
||||
"id": "7bf930ea-3810-40e3-a252-c13da33660db",
|
||||
"name": "File Updated",
|
||||
"type": "n8n-nodes-base.googleDriveTrigger",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
320,
|
||||
1000
|
||||
],
|
||||
"credentials": {
|
||||
"googleDriveOAuth2Api": {
|
||||
"id": "cfNochbuJikPwwl2",
|
||||
"name": "Google Drive account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"operation": "text",
|
||||
"options": {}
|
||||
},
|
||||
"id": "81e0f199-024b-489d-88dd-e7bf6c3a453b",
|
||||
"name": "Extract Document Text",
|
||||
"type": "n8n-nodes-base.extractFromFile",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
1620,
|
||||
880
|
||||
],
|
||||
"alwaysOutputData": true
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"model": "text-embedding-3-small",
|
||||
"options": {}
|
||||
},
|
||||
"id": "c0f6a1f6-5732-48e3-8830-bb78263bd352",
|
||||
"name": "Embeddings OpenAI",
|
||||
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
1700,
|
||||
560
|
||||
],
|
||||
"credentials": {
|
||||
"openAiApi": {
|
||||
"id": "JJjD91oisPv9cs01",
|
||||
"name": "OpenAi account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {},
|
||||
"id": "8920aea0-c877-47b3-9026-d8ab57e8579d",
|
||||
"name": "Postgres Chat Memory",
|
||||
"type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
1200,
|
||||
520
|
||||
],
|
||||
"notesInFlow": false,
|
||||
"credentials": {
|
||||
"postgres": {
|
||||
"id": "tzFFADvpFiUtaZtb",
|
||||
"name": "Supabase Postgres"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"options": {}
|
||||
},
|
||||
"id": "ed70601e-e7e9-4fc5-af9f-bdf4a931fc48",
|
||||
"name": "Recursive Character Text Splitter",
|
||||
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
2020,
|
||||
1200
|
||||
]
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"operation": "delete",
|
||||
"tableId": "documents",
|
||||
"filterType": "string",
|
||||
"filterString": "=metadata->>file_id=like.*{{ $json.file_id }}*"
|
||||
},
|
||||
"id": "bd9eb3dc-75b9-4577-a210-1951988a389e",
|
||||
"name": "Delete Old Doc Rows",
|
||||
"type": "n8n-nodes-base.supabase",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
1060,
|
||||
880
|
||||
],
|
||||
"alwaysOutputData": true,
|
||||
"credentials": {
|
||||
"supabaseApi": {
|
||||
"id": "azIAMHxdSaq5XhoW",
|
||||
"name": "Supabase account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"assignments": {
|
||||
"assignments": [
|
||||
{
|
||||
"id": "10646eae-ae46-4327-a4dc-9987c2d76173",
|
||||
"name": "file_id",
|
||||
"value": "={{ $json.id }}",
|
||||
"type": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {}
|
||||
},
|
||||
"id": "0b439eba-c467-475b-a1a2-481f636f37fe",
|
||||
"name": "Set File ID",
|
||||
"type": "n8n-nodes-base.set",
|
||||
"typeVersion": 3.4,
|
||||
"position": [
|
||||
740,
|
||||
880
|
||||
]
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"content": "## RAG AI Agent with Chat Interface",
|
||||
"height": 464.8027193303974,
|
||||
"width": 692.7866482806627
|
||||
},
|
||||
"id": "7c003acd-f420-474f-9547-33e13c3c357f",
|
||||
"name": "Sticky Note2",
|
||||
"type": "n8n-nodes-base.stickyNote",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
780,
|
||||
220
|
||||
]
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"public": true,
|
||||
"options": {}
|
||||
},
|
||||
"id": "e448d46a-7a01-436c-bebd-0cd21c2bfcb3",
|
||||
"name": "When chat message received",
|
||||
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
|
||||
"typeVersion": 1.1,
|
||||
"position": [
|
||||
840,
|
||||
300
|
||||
],
|
||||
"webhookId": "e985d15f-b2f6-456d-be15-97e0b1544a40"
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"promptType": "define",
|
||||
"text": "={{ $('When chat message received').item.json.chatInput }}",
|
||||
"options": {
|
||||
"systemMessage": "You are a personal assistant who helps answer questions from a corpus of documents when you don't know the answer yourself."
|
||||
}
|
||||
},
|
||||
"id": "50003c9d-29bf-4d0e-9e04-a49804742dc8",
|
||||
"name": "RAG AI Agent",
|
||||
"type": "@n8n/n8n-nodes-langchain.agent",
|
||||
"typeVersion": 1.6,
|
||||
"position": [
|
||||
1160,
|
||||
300
|
||||
]
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"tableName": {
|
||||
"__rl": true,
|
||||
"value": "documents",
|
||||
"mode": "list",
|
||||
"cachedResultName": "documents"
|
||||
},
|
||||
"options": {
|
||||
"queryName": "match_documents"
|
||||
}
|
||||
},
|
||||
"id": "1bda5922-bcfb-489c-a0fb-516d9496d54a",
|
||||
"name": "Supabase Vector Store",
|
||||
"type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
1540,
|
||||
440
|
||||
],
|
||||
"credentials": {
|
||||
"supabaseApi": {
|
||||
"id": "azIAMHxdSaq5XhoW",
|
||||
"name": "Supabase account"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"parameters": {
|
||||
"mode": "insert",
|
||||
"tableName": {
|
||||
"__rl": true,
|
||||
"value": "documents",
|
||||
"mode": "list",
|
||||
"cachedResultName": "documents"
|
||||
},
|
||||
"options": {
|
||||
"queryName": "match_documents"
|
||||
}
|
||||
},
|
||||
"id": "6c7181ba-9e33-4972-83b4-0efaac7e16a2",
|
||||
"name": "Insert into Supabase Vectorstore",
|
||||
"type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
|
||||
"typeVersion": 1,
|
||||
"position": [
|
||||
1900,
|
||||
780
|
||||
],
|
||||
"credentials": {
|
||||
"supabaseApi": {
|
||||
"id": "azIAMHxdSaq5XhoW",
|
||||
"name": "Supabase account"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"pinData": {},
|
||||
"connections": {
|
||||
"OpenAI Chat Model": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "RAG AI Agent",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"OpenAI Chat Model1": {
|
||||
"ai_languageModel": [
|
||||
[
|
||||
{
|
||||
"node": "Retrieve Documents",
|
||||
"type": "ai_languageModel",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Retrieve Documents": {
|
||||
"ai_tool": [
|
||||
[
|
||||
{
|
||||
"node": "RAG AI Agent",
|
||||
"type": "ai_tool",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Download File": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Extract Document Text",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"File Created": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set File ID",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Embeddings OpenAI": {
|
||||
"ai_embedding": [
|
||||
[
|
||||
{
|
||||
"node": "Supabase Vector Store",
|
||||
"type": "ai_embedding",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Extract Document Text": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Insert into Supabase Vectorstore",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Embeddings OpenAI1": {
|
||||
"ai_embedding": [
|
||||
[
|
||||
{
|
||||
"node": "Insert into Supabase Vectorstore",
|
||||
"type": "ai_embedding",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Default Data Loader": {
|
||||
"ai_document": [
|
||||
[
|
||||
{
|
||||
"node": "Insert into Supabase Vectorstore",
|
||||
"type": "ai_document",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Postgres Chat Memory": {
|
||||
"ai_memory": [
|
||||
[
|
||||
{
|
||||
"node": "RAG AI Agent",
|
||||
"type": "ai_memory",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Recursive Character Text Splitter": {
|
||||
"ai_textSplitter": [
|
||||
[
|
||||
{
|
||||
"node": "Default Data Loader",
|
||||
"type": "ai_textSplitter",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Delete Old Doc Rows": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Download File",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Set File ID": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Delete Old Doc Rows",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"File Updated": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "Set File ID",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"When chat message received": {
|
||||
"main": [
|
||||
[
|
||||
{
|
||||
"node": "RAG AI Agent",
|
||||
"type": "main",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
},
|
||||
"Supabase Vector Store": {
|
||||
"ai_vectorStore": [
|
||||
[
|
||||
{
|
||||
"node": "Retrieve Documents",
|
||||
"type": "ai_vectorStore",
|
||||
"index": 0
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
"active": true,
|
||||
"settings": {
|
||||
"executionOrder": "v1"
|
||||
},
|
||||
"versionId": "93c96a76-5ba4-4db5-b37f-4cdd0f113ac6",
|
||||
"meta": {
|
||||
"templateCredsSetupCompleted": true,
|
||||
"instanceId": "620f0d7e3114cb344761d7d45a21ef2a32096f91d8696e7057756042e1999e2c"
|
||||
},
|
||||
"id": "cri0nBz0U55sWr4I",
|
||||
"tags": []
|
||||
}
|
||||
Reference in New Issue
Block a user