J.A.R.V.I.S.
这是一个Support Chatbot, AI Chatbot领域的自动化工作流,包含 48 个节点。主要使用 If, Set, Code, Switch, Telegram 等节点。 在Telegram上使用OpenAI、SERP和向量存储构建全面的多模态助手
- •Telegram Bot Token
- •OpenAI API Key
- •可能需要目标 API 的认证凭证
使用的节点 (48)
{
"id": "X0hXjTBvKAyw79CG",
"meta": {
"instanceId": "57c6ae2839a35415c47c2c780dda3195de041953069a0948855f595fc6dcad27",
"templateCredsSetupCompleted": true
},
"name": "J.A.R.V.I.S.",
"tags": [
{
"id": "7pJlw7HV4Rg9tAKm",
"name": "Template",
"createdAt": "2025-03-18T18:15:54.900Z",
"updatedAt": "2025-03-18T18:15:54.900Z"
}
],
"nodes": [
{
"id": "63508f52-6a6c-4f50-a9d2-aa07841d212f",
"name": "接收消息",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-1072,
-128
],
"webhookId": "",
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"typeVersion": 1.1
},
{
"id": "50b9c7ec-0a3a-417a-a670-a7172654e39c",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
-512,
-160
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "image",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f6d0a607-e0ad-49ba-9987-10ad2889b536",
"operator": {
"type": "array",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.message.photo }}",
"rightValue": ""
}
]
},
"renameOutput": true
},
{
"outputKey": "voice",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "2a9d7a90-7f2e-4228-84df-6476a2534a04",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.message.voice.file_id }}",
"rightValue": ""
}
]
},
"renameOutput": true
},
{
"outputKey": "text",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "9c1228ec-7c48-4e0c-b4fb-deff09011f26",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.message.text }}",
"rightValue": ""
}
]
},
"renameOutput": true
},
{
"outputKey": "document",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "81e3c68d-200d-4e5b-96b3-9993eb7c3d07",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.message.document.file_id }}",
"rightValue": ""
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "d36725d6-29d7-4876-8122-61868ba71327",
"name": "获取音频文件",
"type": "n8n-nodes-base.telegram",
"position": [
-80,
-240
],
"webhookId": "",
"parameters": {
"fileId": "={{ $json.message.voice.file_id }}",
"resource": "file"
},
"typeVersion": 1.2
},
{
"id": "8220b2ee-2aff-4a0c-bb62-e618a2f644fe",
"name": "窗口缓冲记忆",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
912,
688
],
"parameters": {
"sessionKey": "={{ $('Receive Message').item.json.message.chat.id }}",
"sessionIdType": "customKey",
"contextWindowLength": 10
},
"typeVersion": 1.3
},
{
"id": "bcd61ea3-908d-4689-8594-03d870332bcc",
"name": "分析图像",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
144,
-560
],
"parameters": {
"text": "={{ $('Receive Message').item.json.message.caption || \"Describe this image\" }}",
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {},
"resource": "image",
"inputType": "base64",
"operation": "analyze"
},
"typeVersion": 1.8
},
{
"id": "19ebb0e3-3f97-48f7-9867-0703e36a6e5a",
"name": "修复文件扩展名",
"type": "n8n-nodes-base.code",
"position": [
-48,
-560
],
"parameters": {
"jsCode": "const inputItem = items[0];\nconst extension = inputItem.binary.data.fileExtension;\ninputItem.binary.data.mimeType = `image/${extension}`;\nreturn inputItem;"
},
"typeVersion": 2
},
{
"id": "ff400a23-1ee5-45bd-9ef3-a9bd1c1d99be",
"name": "文本响应",
"type": "n8n-nodes-base.telegram",
"position": [
1648,
-48
],
"webhookId": "",
"parameters": {
"text": "={{ JSON.stringify($json.output) }}",
"chatId": "={{ $('Receive Message').item.json.message.chat.id }}",
"additionalFields": {
"appendAttribution": false
}
},
"typeVersion": 1.2
},
{
"id": "edf1ab87-0583-408a-bc30-df4e945edc63",
"name": "生成音频",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1344,
128
],
"parameters": {
"input": "={{ $json.output }}",
"model": "=gpt-4o-mini-tts",
"voice": "=echo",
"options": {
"speed": 0.9
},
"resource": "audio"
},
"typeVersion": 1.8
},
{
"id": "4f76c567-0a62-4b7b-9143-a7464ba11b99",
"name": "音频响应",
"type": "n8n-nodes-base.telegram",
"position": [
1648,
128
],
"webhookId": "",
"parameters": {
"chatId": "={{ $('Receive Message').item.json.message.chat.id }}",
"operation": "sendAudio",
"binaryData": true,
"additionalFields": {}
},
"typeVersion": 1.2
},
{
"id": "5d231620-f60b-470e-8140-c48d68692035",
"name": "下载图片",
"type": "n8n-nodes-base.telegram",
"position": [
-224,
-560
],
"webhookId": "",
"parameters": {
"fileId": "={{ $json.message.photo[2].file_id }}",
"resource": "file"
},
"typeVersion": 1.2
},
{
"id": "d6853469-7d19-4252-af03-1f997730447b",
"name": "转录",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
112,
-240
],
"parameters": {
"options": {},
"resource": "audio",
"operation": "transcribe"
},
"typeVersion": 1.8
},
{
"id": "14b5860f-c18f-4ff6-b3a9-6529d47abbef",
"name": "便签1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-304,
-656
],
"parameters": {
"color": 7,
"width": 780,
"height": 276,
"content": "## 4. 图像聊天"
},
"typeVersion": 1
},
{
"id": "9e9f77b6-6e50-4b59-b8e9-5e65d0b03d8b",
"name": "便签 4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1072,
-144
],
"parameters": {
"color": 7,
"width": 432,
"height": 468,
"content": "## 8. 处理响应"
},
"typeVersion": 1
},
{
"id": "9f597dc7-16c6-4921-b0b9-52d47e829eab",
"name": "便签 5",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
-144
],
"parameters": {
"color": 7,
"width": 380,
"height": 448,
"content": "## 8. J.A.R.V.I.S."
},
"typeVersion": 1
},
{
"id": "4297a3eb-a7f6-4611-8ccc-80ed7d3ad26d",
"name": "便签7",
"type": "n8n-nodes-base.stickyNote",
"position": [
1376,
560
],
"parameters": {
"color": 7,
"width": 420,
"height": 332,
"content": "## 搜索和研究工具"
},
"typeVersion": 1
},
{
"id": "52ad7010-62bd-4bf7-a183-863fde5d75b5",
"name": "便签10",
"type": "n8n-nodes-base.stickyNote",
"position": [
-432,
304
],
"parameters": {
"color": 7,
"width": 904,
"height": 428,
"content": "## 7. 文档聊天"
},
"typeVersion": 1
},
{
"id": "073bbeff-843d-49b2-9bfb-2b8829270c4e",
"name": "下载文档",
"type": "n8n-nodes-base.telegram",
"position": [
-384,
400
],
"webhookId": "",
"parameters": {
"fileId": "={{ $json.message.document.file_id }}",
"resource": "file"
},
"typeVersion": 1.2
},
{
"id": "617f2112-d00f-4414-89ba-f6bb4df4e8b7",
"name": "格式化文本输出",
"type": "n8n-nodes-base.set",
"position": [
208,
96
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "88cbdd27-f094-458b-878f-60504b8c3ad7",
"name": "chat_input",
"type": "string",
"value": "={{ $json.message.text }}"
},
{
"id": "def17956-a312-409b-874c-ebf4aea69427",
"name": "type",
"type": "string",
"value": "text"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "3cb74d57-53eb-4133-ac0a-a2b8b5004e6c",
"name": "格式化语音输出",
"type": "n8n-nodes-base.set",
"position": [
304,
-240
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "88cbdd27-f094-458b-878f-60504b8c3ad7",
"name": "chat_input",
"type": "string",
"value": "={{ $json.text }}"
},
{
"id": "1c8414e4-8e4a-49e7-b255-79e0e8073e8f",
"name": "type",
"type": "string",
"value": "voice"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "359149fe-ae86-4ee2-b87c-e131902f99fc",
"name": "简单向量存储",
"type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory",
"position": [
-16,
400
],
"parameters": {
"mode": "insert",
"memoryKey": "=vector_store_key",
"clearStore": true
},
"typeVersion": 1
},
{
"id": "0ff81048-73bb-4d59-a38b-9b1769e6ae18",
"name": "嵌入 OpenAI1",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
-160,
576
],
"parameters": {
"options": {}
},
"typeVersion": 1.2
},
{
"id": "908582d6-1145-4069-839e-192d348fda31",
"name": "默认数据加载器",
"type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
"position": [
-16,
576
],
"parameters": {
"options": {},
"dataType": "binary"
},
"typeVersion": 1
},
{
"id": "99c41c20-03a2-40e1-8e22-f02bfb07db49",
"name": "令牌分割器",
"type": "@n8n/n8n-nodes-langchain.textSplitterTokenSplitter",
"position": [
320,
592
],
"parameters": {},
"typeVersion": 1
},
{
"id": "b6c315a2-e08a-412f-b257-d0c9c911f101",
"name": "便签11",
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
560
],
"parameters": {
"color": 7,
"width": 480,
"height": 432,
"content": "## 临时记忆"
},
"typeVersion": 1
},
{
"id": "a71743b4-1bef-4e8a-a80c-11064d1fac05",
"name": "简单向量存储1",
"type": "@n8n/n8n-nodes-langchain.vectorStoreInMemory",
"position": [
608,
688
],
"parameters": {
"mode": "retrieve-as-tool",
"toolName": "temporary_vectorstore",
"toolDescription": "Use this tool to retrieve information about the documents uploaded in the messages.\nThis vector store is temporary and just keep the last document uploaded.",
"includeDocumentMetadata": false
},
"typeVersion": 1
},
{
"id": "51498ba1-251a-40a3-8df2-924a75d7e612",
"name": "便签12",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1904,
-688
],
"parameters": {
"width": 684,
"height": 1588,
"content": "## J.A.R.V.I.S."
},
"typeVersion": 1
},
{
"id": "85d2c0b6-3c5e-4a94-8c21-932b1ceaac03",
"name": "便签13",
"type": "n8n-nodes-base.stickyNote",
"position": [
1104,
560
],
"parameters": {
"color": 7,
"width": 216,
"height": 324,
"content": "## 图像工具"
},
"typeVersion": 1
},
{
"id": "7862530b-1c57-468a-b5ea-5511cd1d4748",
"name": "图像生成器",
"type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
"position": [
1168,
688
],
"parameters": {
"url": "https://api.openai.com/v1/images/generations",
"method": "POST",
"jsonBody": "= {\n \"model\": \"dall-e-3\",\n \"prompt\": \"{prompt}\",\n \"n\": 1,\n \"size\": \"1024x1024\"\n }",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"toolDescription": "Use this tool to generate images. Its connected to OpenAI gpt-image-1.",
"nodeCredentialType": "openAiApi",
"placeholderDefinitions": {
"values": [
{
"name": "=prompt",
"description": "The image detailed description"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "6a2df6c7-32f4-49a5-80fb-77bac03a9216",
"name": "基础谷歌搜索",
"type": "@n8n/n8n-nodes-langchain.toolSerpApi",
"position": [
1440,
688
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "db28a3c3-404c-4ac4-ab53-583ecb7ac1c0",
"name": "网页抓取器",
"type": "@n8n/n8n-nodes-langchain.toolHttpRequest",
"position": [
1632,
688
],
"parameters": {
"url": "=https://r.jina.ai/{url}",
"sendHeaders": true,
"toolDescription": "Use this tool to scrape a website.",
"parametersHeaders": {
"values": [
{
"name": "Authorization",
"value": "=Bearer {{ $('API Setup').item.json.JINA_API }}",
"valueProvider": "fieldValue"
}
]
},
"placeholderDefinitions": {
"values": [
{
"name": "url",
"type": "string",
"description": "=URL address to scrape"
}
]
}
},
"typeVersion": 1.1
},
{
"id": "f1276dad-a291-435f-8397-12d29b06785f",
"name": "便签14",
"type": "n8n-nodes-base.stickyNote",
"position": [
1856,
560
],
"parameters": {
"color": 7,
"width": 380,
"height": 328,
"content": "## 推理工具"
},
"typeVersion": 1
},
{
"id": "202ede45-5be3-421d-ba96-0f9880c7fdbe",
"name": "计算器",
"type": "@n8n/n8n-nodes-langchain.toolCalculator",
"position": [
1936,
688
],
"parameters": {},
"typeVersion": 1
},
{
"id": "f32e73b9-62f4-497b-84d2-2788f41f2a61",
"name": "OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
720,
176
],
"parameters": {
"model": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1",
"cachedResultName": "gpt-4.1"
},
"options": {}
},
"typeVersion": 1.2
},
{
"id": "ae00f93e-3e7a-44c3-829f-b9dbc1013c24",
"name": "思考",
"type": "@n8n/n8n-nodes-langchain.toolThink",
"position": [
2096,
688
],
"parameters": {},
"typeVersion": 1
},
{
"id": "b26aa56c-cfa6-4bf8-83dc-cebae07168b4",
"name": "拆分消息",
"type": "n8n-nodes-base.code",
"position": [
1344,
-16
],
"parameters": {
"jsCode": "// In n8n, you can use a Code node to split long messages\nconst output = $input.first().json.output;\nconst maxLength = 3600; // Leave some buffer\nconst chunks = [];\n\nfor (let i = 0; i < output.length; i += maxLength) {\n chunks.push(output.substring(i, i + maxLength));\n}\n\nreturn chunks.map(chunk => ({ json: { output: chunk } }));"
},
"typeVersion": 2
},
{
"id": "06cac788-c7b3-4867-bae6-7bf847bbbccc",
"name": "J.A.R.V.I.S.",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
704,
-16
],
"parameters": {
"text": "={{ $json.chat_input }}",
"options": {
"maxIterations": 10,
"systemMessage": "=# ROLE\nYou are a helpful assistant.\nYour name is \"J.A.R.V.I.S.\". Response in a friendly and helpful tone.\nYour version is: 1.0\n\n# Important Information\nYou are speaking to {{ $('Switch').item.json.message.from.first_name }}\nCurrent date and time: {{ $now }}\nEnglish is your default language.\n\n# Tools avaliable to your use:\n\n## Think\nBefore taking any action or responding to the user after receiving tool results, use the Think tool as a scratchpad to:\n- List the specific rules that apply to the current request\n- Check if all required information is collected\n- Verify that the planned action complies with all policies\n- Iterate over tool results for correctness\n\n## Search and Research tools:\n- Basic Google Search;\n- Webpage Scraper;\n\n## Reasoning tools:\n- Calculator.\n\n## Image tools:\n- Image Generator.\n\n## temporary_vectorstore\nUse to get information from the document uploaded (if any).\n\n# Important: \n- Do not atempt to perform a task by yourself, always call the appropriate tool to perform the task\n- Always inform a list of tools you used at the end of your message (e.g., Get Emails, Webpage Scraper...).\n"
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "2995104c-a593-4929-b222-99fde8338880",
"name": "转换文档",
"type": "n8n-nodes-base.code",
"position": [
-208,
400
],
"parameters": {
"jsCode": "const inputItem = items[0];\n// const extension = inputItem.binary.data.fileExtension;\n// inputItem.binary.data.mimeType = `text/${extension}`;\n// inputItem.binary.data.mimeType = `text/plain`;\ninputItem.binary.data.mimeType = $('Receive Message').first().json.message.document.mime_type;\nreturn inputItem;"
},
"typeVersion": 2
},
{
"id": "95c5a72a-398d-456e-b8d4-06659958bf1f",
"name": "格式化文档输出",
"type": "n8n-nodes-base.set",
"position": [
320,
400
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "c2b1117f-9ae9-4ab6-86d1-df865a9a567c",
"name": "chat_input",
"type": "string",
"value": "=A document type {{ $json.metadata.blobType }} was input and added to the temporary_vectorstore.\nThe caption (if any) sent with the document is:\n<caption>\n{{ $('Receive Message').item.json.message.caption }}\n</caption>\n\n"
},
{
"id": "a7ec26a5-c8bc-429c-94b1-279e44ea133d",
"name": "type",
"type": "string",
"value": "document"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "59b7a5c4-49ac-4b9e-b239-909fc4a2a4fb",
"name": "格式化图像输出",
"type": "n8n-nodes-base.set",
"position": [
320,
-560
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "ec3a884f-480f-4462-9437-a7de0faed372",
"name": "output",
"type": "string",
"value": "={{ $json.content }}"
},
{
"id": "026bf7c8-16dd-490d-980a-f3c9a174b474",
"name": "type",
"type": "string",
"value": "image"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "080384b3-57f7-4025-9c3f-70bd499356f2",
"name": "如果音频响应",
"type": "n8n-nodes-base.if",
"position": [
1120,
64
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "3d8b9900-fe93-48d3-a1cf-8fd70542f091",
"operator": {
"type": "string",
"operation": "notExists",
"singleValue": true
},
"leftValue": "={{ $('Receive Message').item.json.message.voice.file_id }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "6f74a5e4-e4a3-42e6-bf04-745b3bb60e83",
"name": "Embeddings OpenAI",
"type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
"position": [
704,
832
],
"parameters": {
"options": {}
},
"typeVersion": 1.2
},
{
"id": "2a979273-c9c2-47fc-aa2e-fa621677415f",
"name": "便签",
"type": "n8n-nodes-base.stickyNote",
"position": [
-592,
-384
],
"parameters": {
"color": 7,
"width": 252,
"height": 468,
"content": "## 3. 根据消息类型切换:"
},
"typeVersion": 1
},
{
"id": "d6eaff16-7af8-41ca-8492-294ebee80bd6",
"name": "便签 2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-160,
-336
],
"parameters": {
"color": 7,
"width": 636,
"height": 276,
"content": "## 5. 音频聊天"
},
"typeVersion": 1
},
{
"id": "4c705ae5-eab7-40e2-a301-1b33f4072c1f",
"name": "便签 3",
"type": "n8n-nodes-base.stickyNote",
"position": [
48,
-16
],
"parameters": {
"color": 7,
"width": 428,
"height": 276,
"content": "## 6. 文本聊天"
},
"typeVersion": 1
},
{
"id": "4b8836f3-116a-482a-865b-fb8716c40452",
"name": "便签6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1536,
-144
],
"parameters": {
"color": 7,
"width": 336,
"height": 468,
"content": "## 9. 发送响应"
},
"typeVersion": 1
},
{
"id": "69135c9f-fb55-4f58-bf70-991835bc3f8f",
"name": "便签8",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1136,
-272
],
"parameters": {
"color": 7,
"width": 220,
"height": 356,
"content": "## 1. 输入消息:"
},
"typeVersion": 1
},
{
"id": "0cd4e2ff-d13e-4f67-9e1d-fcfb3b5b8dd6",
"name": "API 设置",
"type": "n8n-nodes-base.set",
"position": [
-800,
-128
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "d2a919fc-1437-40aa-aa28-6136fbc4dee1",
"name": "JINA_API",
"type": "string",
"value": ""
}
]
},
"includeOtherFields": true
},
"typeVersion": 3.4
},
{
"id": "a7a4d2a8-8b66-49f2-bf4b-ee035a7338a1",
"name": "### 替换 Airtable 连接",
"type": "n8n-nodes-base.stickyNote",
"position": [
-864,
-272
],
"parameters": {
"color": 7,
"width": 220,
"height": 356,
"content": "## 2. 设置 API 密钥"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "bed988a3-5695-4f40-8078-55eacace7e83",
"connections": {
"Think": {
"ai_tool": [
[
{
"node": "J.A.R.V.I.S.",
"type": "ai_tool",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Download Image",
"type": "main",
"index": 0
}
],
[
{
"node": "Get Audio File",
"type": "main",
"index": 0
}
],
[
{
"node": "Format-text-output",
"type": "main",
"index": 0
}
],
[
{
"node": "Download Document",
"type": "main",
"index": 0
}
]
]
},
"API Setup": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Split MSG": {
"main": [
[
{
"node": "Text Response",
"type": "main",
"index": 0
}
]
]
},
"Calculator": {
"ai_tool": [
[
{
"node": "J.A.R.V.I.S.",
"type": "ai_tool",
"index": 0
}
]
]
},
"Transcribe": {
"main": [
[
{
"node": "Format-voice-output",
"type": "main",
"index": 0
}
]
]
},
"Convert Doc": {
"main": [
[
{
"node": "Simple Vector Store",
"type": "main",
"index": 0
}
]
]
},
"J.A.R.V.I.S.": {
"main": [
[
{
"node": "If Audio Response",
"type": "main",
"index": 0
}
]
]
},
"Analyze Image": {
"main": [
[
{
"node": "Format-image-output",
"type": "main",
"index": 0
}
]
]
},
"Download Image": {
"main": [
[
{
"node": "Fix File Extension",
"type": "main",
"index": 0
}
]
]
},
"Generate Audio": {
"main": [
[
{
"node": "Audio Response",
"type": "main",
"index": 0
}
]
]
},
"Get Audio File": {
"main": [
[
{
"node": "Transcribe",
"type": "main",
"index": 0
}
]
]
},
"Token Splitter": {
"ai_textSplitter": [
[
{
"node": "Default Data Loader",
"type": "ai_textSplitter",
"index": 0
}
]
]
},
"Image Generator": {
"ai_tool": [
[
{
"node": "J.A.R.V.I.S.",
"type": "ai_tool",
"index": 0
}
]
]
},
"Receive Message": {
"main": [
[
{
"node": "API Setup",
"type": "main",
"index": 0
}
]
]
},
"Webpage Scraper": {
"ai_tool": [
[
{
"node": "J.A.R.V.I.S.",
"type": "ai_tool",
"index": 0
}
]
]
},
"Download Document": {
"main": [
[
{
"node": "Convert Doc",
"type": "main",
"index": 0
}
]
]
},
"Embeddings OpenAI": {
"ai_embedding": [
[
{
"node": "Simple Vector Store1",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Format-doc-output": {
"main": [
[
{
"node": "J.A.R.V.I.S.",
"type": "main",
"index": 0
}
]
]
},
"If Audio Response": {
"main": [
[
{
"node": "Split MSG",
"type": "main",
"index": 0
}
],
[
{
"node": "Generate Audio",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "J.A.R.V.I.S.",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Embeddings OpenAI1": {
"ai_embedding": [
[
{
"node": "Simple Vector Store",
"type": "ai_embedding",
"index": 0
}
]
]
},
"Fix File Extension": {
"main": [
[
{
"node": "Analyze Image",
"type": "main",
"index": 0
}
]
]
},
"Format-text-output": {
"main": [
[
{
"node": "J.A.R.V.I.S.",
"type": "main",
"index": 0
}
]
]
},
"Basic Google Search": {
"ai_tool": [
[
{
"node": "J.A.R.V.I.S.",
"type": "ai_tool",
"index": 0
}
]
]
},
"Default Data Loader": {
"ai_document": [
[
{
"node": "Simple Vector Store",
"type": "ai_document",
"index": 0
}
]
]
},
"Format-image-output": {
"main": [
[
{
"node": "Text Response",
"type": "main",
"index": 0
}
]
]
},
"Format-voice-output": {
"main": [
[
{
"node": "J.A.R.V.I.S.",
"type": "main",
"index": 0
}
]
]
},
"Simple Vector Store": {
"main": [
[
{
"node": "Format-doc-output",
"type": "main",
"index": 0
}
]
]
},
"Simple Vector Store1": {
"ai_tool": [
[
{
"node": "J.A.R.V.I.S.",
"type": "ai_tool",
"index": 0
}
]
]
},
"Window Buffer Memory": {
"ai_memory": [
[
{
"node": "J.A.R.V.I.S.",
"type": "ai_memory",
"index": 0
}
]
]
}
}
}如何使用这个工作流?
复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。
这个工作流适合什么场景?
高级 - 客服机器人, AI 聊天机器人
需要付费吗?
本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。
相关工作流推荐
FabioInTech
@fabiointechAI Systems Architect with 18+ years experience designing scalable, intelligent automation solutions. I specialize in architecting complex n8n workflows that integrate AI systems, streamline operations, and optimize business processes. My expertise spans multi-agent architectures, data automation, and enterprise-grade systems that adapt to evolving business needs. I help organizations unlock their potential through strategic technology implementation and innovative automation solutions.
分享此工作流