n8n RAG AI Agent with PDFs, Excel documents, and more

This commit is contained in:
Cole Medin
2024-10-09 17:15:20 -05:00
parent 0e5e87ba60
commit 0a6d1f430d

View File

@@ -0,0 +1,959 @@
{
"name": "Supabase RAG AI Agent PDFs & More",
"nodes": [
{
"parameters": {
"model": "gpt-4o-mini",
"options": {}
},
"id": "d2ee476f-009d-462e-b5ef-4014b1733480",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1,
"position": [
860,
520
],
"credentials": {
"openAiApi": {
"id": "JJjD91oisPv9cs01",
"name": "OpenAi account"
}
}
},
{
"parameters": {
"model": "gpt-4o-mini",
"options": {}
},
"id": "7780fde9-e3ec-4ca3-81e3-9e7e464dcd6f",
"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 || $json.text || $json.concatenated_data }}",
"options": {
"metadata": {
"metadataValues": [
{
"name": "=file_id",
"value": "={{ $('Set File ID').first().json.file_id }}"
}
]
}
}
},
"id": "b85b35f8-97f2-40aa-b885-0ab892e54ab0",
"name": "Default Data Loader",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"typeVersion": 1,
"position": [
2320,
1000
]
},
{
"parameters": {
"model": "text-embedding-3-small",
"options": {}
},
"id": "f0185de7-b17e-4bb1-ac1e-4c9843804a92",
"name": "Embeddings OpenAI1",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"typeVersion": 1,
"position": [
2160,
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": "e2f9747b-2706-423a-93e8-6faa4baeb99e",
"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": "660236f6-de85-470a-aa08-76dd5501bbfc",
"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": 667.1104380931955,
"width": 2352.5048970686776,
"color": 5
},
"id": "cd0908d0-3c70-4ef3-8a37-6b9edef0281a",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
260,
704.7773461390849
]
},
{
"parameters": {
"operation": "download",
"fileId": {
"__rl": true,
"value": "={{ $('Set File ID').item.json.file_id }}",
"mode": "id"
},
"options": {
"googleFileConversion": {
"conversion": {
"docsToFormat": "text/plain"
}
}
}
},
"id": "f642af26-cbcc-45a0-95ed-1540cac32e6d",
"name": "Download File",
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
1080,
960
],
"executeOnce": true,
"credentials": {
"googleDriveOAuth2Api": {
"id": "cfNochbuJikPwwl2",
"name": "Google Drive account"
}
}
},
{
"parameters": {
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"value": "1gFS8iBcRN1vs5a1v7vmal3AHmopPAdWT",
"mode": "list",
"cachedResultName": "Excel",
"cachedResultUrl": "https://drive.google.com/drive/folders/1gFS8iBcRN1vs5a1v7vmal3AHmopPAdWT"
},
"event": "fileCreated",
"options": {}
},
"id": "bc3b054f-3119-4004-be6e-2ffa45d387f0",
"name": "File Created",
"type": "n8n-nodes-base.googleDriveTrigger",
"typeVersion": 1,
"position": [
320,
860
],
"credentials": {
"googleDriveOAuth2Api": {
"id": "cfNochbuJikPwwl2",
"name": "Google Drive account"
}
}
},
{
"parameters": {
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"value": "1gFS8iBcRN1vs5a1v7vmal3AHmopPAdWT",
"mode": "list",
"cachedResultName": "Excel",
"cachedResultUrl": "https://drive.google.com/drive/folders/1gFS8iBcRN1vs5a1v7vmal3AHmopPAdWT"
},
"event": "fileUpdated",
"options": {}
},
"id": "4a88bc45-e162-428c-9cb6-12631edb45c3",
"name": "File Updated",
"type": "n8n-nodes-base.googleDriveTrigger",
"typeVersion": 1,
"position": [
320,
1080
],
"credentials": {
"googleDriveOAuth2Api": {
"id": "cfNochbuJikPwwl2",
"name": "Google Drive account"
}
}
},
{
"parameters": {
"operation": "text",
"options": {}
},
"id": "06280add-ca88-48c3-b8e8-f2ee18482465",
"name": "Extract Document Text",
"type": "n8n-nodes-base.extractFromFile",
"typeVersion": 1,
"position": [
1840,
1160
],
"alwaysOutputData": true
},
{
"parameters": {
"model": "text-embedding-3-small",
"options": {}
},
"id": "7328978a-4557-49ec-92d8-5eaf34cb3d88",
"name": "Embeddings OpenAI",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"typeVersion": 1,
"position": [
1700,
560
],
"credentials": {
"openAiApi": {
"id": "JJjD91oisPv9cs01",
"name": "OpenAi account"
}
}
},
{
"parameters": {},
"id": "c549429c-54ff-42ca-8eb6-6e5fe1fdd653",
"name": "Postgres Chat Memory",
"type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
"typeVersion": 1,
"position": [
1000,
520
],
"notesInFlow": false,
"credentials": {
"postgres": {
"id": "tzFFADvpFiUtaZtb",
"name": "Supabase Postgres"
}
}
},
{
"parameters": {
"operation": "delete",
"tableId": "documents",
"filterType": "string",
"filterString": "=metadata->>file_id=like.*{{ $json.file_id }}*"
},
"id": "06701654-213d-4343-a743-2490cb5c1b37",
"name": "Delete Old Doc Rows",
"type": "n8n-nodes-base.supabase",
"typeVersion": 1,
"position": [
840,
960
],
"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"
},
{
"id": "f4536df5-d0b1-4392-bf17-b8137fb31a44",
"name": "file_type",
"value": "={{ $json.mimeType }}",
"type": "string"
}
]
},
"options": {}
},
"id": "bdbcf6dd-5d0e-44f7-98ad-4569d26b2ddb",
"name": "Set File ID",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
600,
960
]
},
{
"parameters": {
"content": "## RAG AI Agent with Chat Interface",
"height": 464.8027193303974,
"width": 1035.6381264595484
},
"id": "eba52e8e-5157-4797-b1af-a54ec641856e",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
432.49413148117685,
220
]
},
{
"parameters": {
"options": {}
},
"id": "2aa822a1-74f0-4f1a-9257-da18b506f1aa",
"name": "Respond to Webhook",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.1,
"position": [
1300,
300
]
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "9a9a245e-f1a1-4282-bb02-a81ffe629f0f",
"name": "chatInput",
"value": "={{ $json?.chatInput || $json.body.chatInput }}",
"type": "string"
},
{
"id": "b80831d8-c653-4203-8706-adedfdb98f77",
"name": "sessionId",
"value": "={{ $json?.sessionId || $json.body.sessionId}}",
"type": "string"
}
]
},
"options": {}
},
"id": "45cea7e5-8601-499a-9769-ed085091f155",
"name": "Edit Fields",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
740,
300
]
},
{
"parameters": {
"public": true,
"options": {}
},
"id": "b044a545-8c61-4d32-924a-8c684c0c068e",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"typeVersion": 1.1,
"position": [
480,
300
],
"webhookId": "15e4d662-3f98-48d0-9f50-68838769ecac"
},
{
"parameters": {
"httpMethod": "POST",
"path": "9ba11544-5c4e-4f91-818a-08a4ecb596c5",
"authentication": "headerAuth",
"responseMode": "responseNode",
"options": {}
},
"id": "18d03c08-561b-4f59-afe5-0a7b92a61500",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
480,
500
],
"webhookId": "9ba11544-5c4e-4f91-818a-08a4ecb596c5",
"credentials": {
"httpHeaderAuth": {
"id": "XivCWajQ7dANnQvl",
"name": "Header Auth account"
}
}
},
{
"parameters": {
"operation": "pdf",
"options": {}
},
"id": "051d287e-50de-417b-947e-be99ccc76e6b",
"name": "Extract PDF Text",
"type": "n8n-nodes-base.extractFromFile",
"typeVersion": 1,
"position": [
1840,
780
]
},
{
"parameters": {
"aggregate": "aggregateAllItemData",
"options": {}
},
"id": "4e1600d7-3d75-4e38-8bdb-a90b44bd4285",
"name": "Aggregate",
"type": "n8n-nodes-base.aggregate",
"typeVersion": 1,
"position": [
1760,
960
]
},
{
"parameters": {},
"id": "a32ad489-b580-4f35-ae0f-796c3860a422",
"name": "Character Text Splitter",
"type": "@n8n/n8n-nodes-langchain.textSplitterCharacterTextSplitter",
"typeVersion": 1,
"position": [
2320,
1220
]
},
{
"parameters": {
"fieldsToSummarize": {
"values": [
{
"aggregation": "concatenate",
"field": "data"
}
]
},
"options": {}
},
"id": "fbf7648e-f0de-48bb-992c-563e67a4a136",
"name": "Summarize",
"type": "n8n-nodes-base.summarize",
"typeVersion": 1,
"position": [
1920,
960
]
},
{
"parameters": {
"promptType": "define",
"text": "={{ $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": "cd044b4b-6834-430c-9101-2525d842b9be",
"name": "RAG AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.6,
"position": [
960,
300
]
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict"
},
"conditions": [
{
"leftValue": "={{ $('Set File ID').item.json.file_type }}",
"rightValue": "application/pdf",
"operator": {
"type": "string",
"operation": "equals"
}
}
],
"combinator": "and"
}
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict"
},
"conditions": [
{
"id": "2ae7faa7-a936-4621-a680-60c512163034",
"leftValue": "={{ $('Set File ID').item.json.file_type }}",
"rightValue": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
}
},
{
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict"
},
"conditions": [
{
"id": "fc193b06-363b-4699-a97d-e5a850138b0e",
"leftValue": "={{ $('Set File ID').item.json.file_type }}",
"rightValue": "application/vnd.google-apps.document",
"operator": {
"type": "string",
"operation": "equals",
"name": "filter.operator.equals"
}
}
],
"combinator": "and"
}
}
]
},
"options": {
"fallbackOutput": 2
}
},
"id": "50dfe415-5c38-4b54-a55f-cf99975a11d5",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"typeVersion": 3,
"position": [
1300,
960
]
},
{
"parameters": {
"mode": "insert",
"tableName": {
"__rl": true,
"value": "documents",
"mode": "list",
"cachedResultName": "documents"
},
"options": {
"queryName": "match_documents"
}
},
"id": "f33b09ba-4934-4385-8e92-0e42e627a3fc",
"name": "Insert into Supabase Vectorstore",
"type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
"typeVersion": 1,
"position": [
2200,
780
],
"credentials": {
"supabaseApi": {
"id": "azIAMHxdSaq5XhoW",
"name": "Supabase account"
}
}
},
{
"parameters": {
"tableName": {
"__rl": true,
"value": "documents",
"mode": "list",
"cachedResultName": "documents"
},
"options": {
"queryName": "match_documents"
}
},
"id": "bac888a0-1d9c-4162-9cca-d79583cd4624",
"name": "Supabase Vector Store",
"type": "@n8n/n8n-nodes-langchain.vectorStoreSupabase",
"typeVersion": 1,
"position": [
1540,
440
],
"credentials": {
"supabaseApi": {
"id": "azIAMHxdSaq5XhoW",
"name": "Supabase account"
}
}
},
{
"parameters": {
"operation": "xlsx",
"options": {}
},
"id": "1381c252-0565-4dae-9dad-827079f4ddac",
"name": "Extract from Excel",
"type": "n8n-nodes-base.extractFromFile",
"typeVersion": 1,
"position": [
1600,
960
]
}
],
"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": "Switch",
"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
}
]
]
},
"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
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "RAG AI Agent",
"type": "main",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Extract PDF Text": {
"main": [
[
{
"node": "Insert into Supabase Vectorstore",
"type": "main",
"index": 0
}
]
]
},
"Aggregate": {
"main": [
[
{
"node": "Summarize",
"type": "main",
"index": 0
}
]
]
},
"Character Text Splitter": {
"ai_textSplitter": [
[
{
"node": "Default Data Loader",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"Summarize": {
"main": [
[
{
"node": "Insert into Supabase Vectorstore",
"type": "main",
"index": 0
}
]
]
},
"RAG AI Agent": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Extract PDF Text",
"type": "main",
"index": 0
}
],
[
{
"node": "Extract from Excel",
"type": "main",
"index": 0
}
],
[
{
"node": "Extract Document Text",
"type": "main",
"index": 0
}
]
]
},
"Supabase Vector Store": {
"ai_vectorStore": [
[
{
"node": "Retrieve Documents",
"type": "ai_vectorStore",
"index": 0
}
]
]
},
"Extract from Excel": {
"main": [
[
{
"node": "Aggregate",
"type": "main",
"index": 0
}
]
]
}
},
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "48951752-8341-4ddd-b846-fa52541e6792",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "620f0d7e3114cb344761d7d45a21ef2a32096f91d8696e7057756042e1999e2c"
},
"id": "TeTukeCbM1ZtglBm",
"tags": []
}