Files
ai-agents-masterclass/local-ai-packaged/Local_RAG_AI_Agent_n8n_Workflow.json
2024-10-22 13:10:26 -05:00

740 lines
17 KiB
JSON

{
"name": "Local RAG AI Agent",
"nodes": [
{
"parameters": {},
"id": "99b30fd7-b36c-44ba-9daa-408585aaaee9",
"name": "Postgres Chat Memory",
"type": "@n8n/n8n-nodes-langchain.memoryPostgresChat",
"typeVersion": 1.1,
"position": [
1040,
560
],
"credentials": {
"postgres": {
"id": "iN7fO2CgatVwq73z",
"name": "Postgres account"
}
}
},
{
"parameters": {
"model": "llama3.1:latest",
"options": {}
},
"id": "c7632a7c-2661-492e-bd6f-aab994818998",
"name": "Ollama Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOllama",
"typeVersion": 1,
"position": [
920,
560
],
"credentials": {
"ollamaApi": {
"id": "eOwAotC7AUgJlvHM",
"name": "Ollama account"
}
}
},
{
"parameters": {
"model": "llama3.1:latest",
"options": {}
},
"id": "73d773a4-5c72-4af3-a52d-144f0e417823",
"name": "Ollama Model",
"type": "@n8n/n8n-nodes-langchain.lmOllama",
"typeVersion": 1,
"position": [
1960,
500
],
"credentials": {
"ollamaApi": {
"id": "eOwAotC7AUgJlvHM",
"name": "Ollama account"
}
}
},
{
"parameters": {
"name": "documents",
"topK": 3
},
"id": "3f882fa7-c8ed-4531-b236-a34c16c55838",
"name": "Vector Store Tool",
"type": "@n8n/n8n-nodes-langchain.toolVectorStore",
"typeVersion": 1,
"position": [
1740,
340
]
},
{
"parameters": {
"model": "nomic-embed-text:latest"
},
"id": "3a8e3fa0-3997-4bce-985c-975fb5ad4013",
"name": "Embeddings Ollama",
"type": "@n8n/n8n-nodes-langchain.embeddingsOllama",
"typeVersion": 1,
"position": [
1840,
600
],
"credentials": {
"ollamaApi": {
"id": "eOwAotC7AUgJlvHM",
"name": "Ollama 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": "41fb71dd-236a-48bc-9761-5841d52ca1b3",
"name": "File Created",
"type": "n8n-nodes-base.googleDriveTrigger",
"typeVersion": 1,
"position": [
600,
880
],
"credentials": {
"googleDriveOAuth2Api": {
"id": "vzcL2pD7uQzqDpdK",
"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": "7b904686-89ae-4722-9ce5-a9da1b13b1a1",
"name": "File Updated",
"type": "n8n-nodes-base.googleDriveTrigger",
"typeVersion": 1,
"position": [
600,
1100
],
"credentials": {
"googleDriveOAuth2Api": {
"id": "vzcL2pD7uQzqDpdK",
"name": "Google Drive account"
}
}
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "10646eae-ae46-4327-a4dc-9987c2d76173",
"name": "file_id",
"value": "={{ $json.id }}",
"type": "string"
},
{
"id": "dd0aa081-79e7-4714-8a67-1e898285554c",
"name": "folder_id",
"value": "={{ $json.parents[0] }}",
"type": "string"
}
]
},
"options": {}
},
"id": "87f8bbb0-92c5-4b25-be63-7a9d91fc46f8",
"name": "Set File ID",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
860,
880
]
},
{
"parameters": {
"operation": "download",
"fileId": {
"__rl": true,
"value": "={{ $('Set File ID').item.json.file_id }}",
"mode": "id"
},
"options": {
"googleFileConversion": {
"conversion": {
"docsToFormat": "text/plain"
}
}
}
},
"id": "9f1e08fb-4ef3-4c4d-9473-5a7a1608b8e3",
"name": "Download File",
"type": "n8n-nodes-base.googleDrive",
"typeVersion": 3,
"position": [
1300,
880
],
"executeOnce": true,
"credentials": {
"googleDriveOAuth2Api": {
"id": "vzcL2pD7uQzqDpdK",
"name": "Google Drive account"
}
}
},
{
"parameters": {
"operation": "text",
"options": {}
},
"id": "7efee822-68ad-4fe2-a616-ba19fd127684",
"name": "Extract Document Text",
"type": "n8n-nodes-base.extractFromFile",
"typeVersion": 1,
"position": [
1540,
880
],
"alwaysOutputData": true
},
{
"parameters": {
"options": {
"metadata": {
"metadataValues": [
{
"name": "file_id",
"value": "={{ $('Set File ID').item.json.file_id }}"
},
{
"name": "folder_id",
"value": "={{ $('Set File ID').item.json.folder_id }}"
}
]
}
}
},
"id": "da4c8b29-4944-43c4-9df3-e380366c594a",
"name": "Default Data Loader",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"typeVersion": 1,
"position": [
1860,
1100
]
},
{
"parameters": {
"chunkSize": 100,
"options": {}
},
"id": "d11c39b9-3fa7-4d5d-838f-da0d258c67c5",
"name": "Recursive Character Text Splitter",
"type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
"typeVersion": 1,
"position": [
1860,
1320
]
},
{
"parameters": {
"model": "nomic-embed-text:latest"
},
"id": "8a04559c-dfe8-479f-8998-a2e9bc994a0a",
"name": "Embeddings Ollama1",
"type": "@n8n/n8n-nodes-langchain.embeddingsOllama",
"typeVersion": 1,
"position": [
1700,
1100
],
"credentials": {
"ollamaApi": {
"id": "eOwAotC7AUgJlvHM",
"name": "Ollama account"
}
}
},
{
"parameters": {
"content": "## Local RAG AI Agent with Chat Interface",
"height": 527.3027193303974,
"width": 969.0343804425795
},
"id": "a18773ae-1eb3-46b8-91cf-4184c66cf14f",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
560,
220
]
},
{
"parameters": {
"content": "## Agent Tools for Local RAG",
"height": 528.85546469693,
"width": 583.4552380860637,
"color": 4
},
"id": "fa010a11-3dda-4bd5-b261-463a3a6b88d9",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
1540,
220
]
},
{
"parameters": {
"content": "## Workflow to Create Local Knowledgebase from Google Drive Folder",
"height": 705.2695614889159,
"width": 1568.9362829025763,
"color": 5
},
"id": "f29e6cc7-015e-47cb-a4fd-fecd6ffb0d24",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"typeVersion": 1,
"position": [
560,
760
]
},
{
"parameters": {
"options": {}
},
"id": "5da52326-dfbd-4350-919c-843461f58913",
"name": "When chat message received",
"type": "@n8n/n8n-nodes-langchain.chatTrigger",
"typeVersion": 1.1,
"position": [
620,
340
],
"webhookId": "4b3b1838-d6b3-447e-9d79-d0931eddb9f8"
},
{
"parameters": {
"qdrantCollection": {
"__rl": true,
"value": "documents",
"mode": "list",
"cachedResultName": "documents"
},
"options": {}
},
"id": "355370e0-2174-4e5b-830b-dd0f123b2e40",
"name": "Qdrant Vector Store",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"typeVersion": 1,
"position": [
1560,
480
],
"credentials": {
"qdrantApi": {
"id": "VOnegFP8eijBkbNO",
"name": "QdrantApi account"
}
}
},
{
"parameters": {
"code": {
"execute": {
"code": "const { QdrantVectorStore } = require(\"@langchain/qdrant\");\nconst { OllamaEmbeddings } = require(\"@langchain/community/embeddings/ollama\");\n\nconst embeddings = new OllamaEmbeddings({\n model: \"nomic-embed-text\",\n baseUrl: \"http://ollama:11434\"\n});\n\nconst vectorStore = await QdrantVectorStore.fromExistingCollection(\n embeddings,\n {\n url: \"http://qdrant:6333\",\n collectionName: \"documents\",\n }\n);\n\nconst fileIdToDelete = this.getInputData()[0].json.file_id;\n\nconst filter = {\n must: [\n {\n key: \"metadata.file_id\",\n match: {\n value: fileIdToDelete,\n },\n },\n ],\n }\n\n// const results = await vectorStore.similaritySearch(\"this\", 10, filter);\n// const idsToDelete = results.map((doc) => doc.id);\n\n// NOT IMPLEMENTED!\n// await vectorStore.delete({ ids: idsToDelete });\n\nvectorStore.client.delete(\"documents\", {\n filter\n});\n\nreturn [ {json: { file_id: fileIdToDelete } } ];\n"
}
},
"inputs": {
"input": [
{
"type": "main",
"required": true
}
]
},
"outputs": {
"output": [
{
"type": "main"
}
]
}
},
"id": "b93bd001-0c4d-42fe-939a-eb441f354917",
"name": "Clear Old Vectors",
"type": "@n8n/n8n-nodes-langchain.code",
"typeVersion": 1,
"position": [
1080,
880
],
"alwaysOutputData": false
},
{
"parameters": {
"mode": "insert",
"qdrantCollection": {
"__rl": true,
"value": "documents",
"mode": "list",
"cachedResultName": "documents"
},
"options": {}
},
"id": "97ec4618-c0ea-445b-9406-5d41784d7836",
"name": "Qdrant Vector Store Insert",
"type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
"typeVersion": 1,
"position": [
1760,
880
],
"credentials": {
"qdrantApi": {
"id": "VOnegFP8eijBkbNO",
"name": "QdrantApi account"
}
}
},
{
"parameters": {
"options": {}
},
"id": "e537544a-37d5-4b00-b5ff-bc71f041f4bb",
"name": "Respond to Webhook",
"type": "n8n-nodes-base.respondToWebhook",
"typeVersion": 1.1,
"position": [
1340,
340
]
},
{
"parameters": {
"httpMethod": "POST",
"path": "invoke_n8n_agent",
"responseMode": "responseNode",
"options": {}
},
"id": "2b8cd01f-30a8-4aab-b0dd-56d2b658f059",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
620,
520
],
"webhookId": "4a839da9-b8a2-45f8-bcaf-c484f9a5912d"
},
{
"parameters": {
"options": {}
},
"id": "c9dfe906-178b-4375-8bda-f9290f35f222",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 1.6,
"position": [
1000,
340
]
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "75ebfdef-c8e2-4c3e-b716-1479d0cc2a73",
"name": "chatInput",
"value": "={{ $json?.chatInput || $json.body.chatInput }}",
"type": "string"
},
{
"id": "59b7a20f-0626-4861-93e2-015d430c266e",
"name": "sessionId",
"value": "={{ $json?.sessionId || $json.body.sessionId}}",
"type": "string"
}
]
},
"options": {}
},
"id": "8f974a15-aa2f-4525-8278-ad58ad296076",
"name": "Edit Fields",
"type": "n8n-nodes-base.set",
"typeVersion": 3.4,
"position": [
820,
340
]
}
],
"pinData": {},
"connections": {
"Postgres Chat Memory": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"Ollama Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Ollama Model": {
"ai_languageModel": [
[
{
"node": "Vector Store Tool",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Embeddings Ollama": {
"ai_embedding": [
[
{
"node": "Qdrant Vector Store",
"type": "ai_embedding",
"index": 0
}
]
]
},
"File Created": {
"main": [
[
{
"node": "Set File ID",
"type": "main",
"index": 0
}
]
]
},
"File Updated": {
"main": [
[
{
"node": "Set File ID",
"type": "main",
"index": 0
}
]
]
},
"Set File ID": {
"main": [
[
{
"node": "Clear Old Vectors",
"type": "main",
"index": 0
}
]
]
},
"Download File": {
"main": [
[
{
"node": "Extract Document Text",
"type": "main",
"index": 0
}
]
]
},
"Extract Document Text": {
"main": [
[
{
"node": "Qdrant Vector Store Insert",
"type": "main",
"index": 0
}
]
]
},
"Default Data Loader": {
"ai_document": [
[
{
"node": "Qdrant Vector Store Insert",
"type": "ai_document",
"index": 0
}
]
]
},
"Recursive Character Text Splitter": {
"ai_textSplitter": [
[
{
"node": "Default Data Loader",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"Embeddings Ollama1": {
"ai_embedding": [
[
{
"node": "Qdrant Vector Store Insert",
"type": "ai_embedding",
"index": 0
}
]
]
},
"When chat message received": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"Qdrant Vector Store": {
"ai_vectorStore": [
[
{
"node": "Vector Store Tool",
"type": "ai_vectorStore",
"index": 0
}
]
]
},
"Clear Old Vectors": {
"main": [
[
{
"node": "Download File",
"type": "main",
"index": 0
}
]
]
},
"Webhook": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Respond to Webhook",
"type": "main",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Vector Store Tool": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1"
},
"versionId": "19f9691c-4682-4704-81f2-33fdec9d0be2",
"meta": {
"templateCredsSetupCompleted": true,
"instanceId": "f722e3e1e81e942a38faa434ad0aee8699371bbff9f883b9d5c59a7c726605af"
},
"id": "vTN9y2dLXqTiDfPT",
"tags": []
}