8
n8n 中文网amn8n.com

加密货币市场分析与Chart-img、BrowserAI和GPT洞察发送到Telegram

高级

这是一个Miscellaneous, AI Summarization, Multimodal AI领域的自动化工作流,包含 34 个节点。主要使用 Code, Wait, Merge, Switch, Telegram 等节点。 使用Chart-img、BrowserAI和GPT洞察的加密货币市场分析发送到Telegram

前置要求
  • Telegram Bot Token
  • 可能需要目标 API 的认证凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "meta": {
    "instanceId": "c52c57a23340de7df966f9e47d97a3fb8c52621d4c39f6342366d1114449002a"
  },
  "nodes": [
    {
      "id": "12656cc8-66d8-4327-9bfb-a542635d371a",
      "name": "获取昨天的日期",
      "type": "n8n-nodes-base.code",
      "position": [
        -208,
        576
      ],
      "parameters": {
        "jsCode": "return $input.all().map(item => {\n    const timestamp = item.json.timestamp;\n\n    // Create a Date object using the timestamp\n    const triggerDate = new Date(timestamp);\n\n    // Array of month names\n    const monthNames = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\",\n                        \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\n\n    // Calculate yesterday's date\n    const yesterday = new Date(triggerDate);\n    yesterday.setDate(triggerDate.getDate() - 1);\n\n    // Format today's date\n    const todayDay = String(triggerDate.getDate()).padStart(2, '0');\n    const todayMonth = triggerDate.getMonth();\n    const todayYear = triggerDate.getFullYear();\n    const formattedToday = `${todayDay}-${monthNames[todayMonth]}-${todayYear}`;\n    const isoToday = `${todayYear}-${String(todayMonth + 1).padStart(2, '0')}-${todayDay}`;\n\n    // Format yesterday's date\n    const day = String(yesterday.getDate()).padStart(2, '0');\n    const month = yesterday.getMonth();\n    const year = yesterday.getFullYear();\n    const formattedYesterday = `${day}-${monthNames[month]}-${year}`;\n    const isoYesterday = `${year}-${String(month + 1).padStart(2, '0')}-${day}`;\n\n    // Return the result as an object\n    return {\n        json: {\n            formattedToday: formattedToday,\n            isoToday: isoToday,\n            formattedYesterday: formattedYesterday,\n            isoYesterday: isoYesterday,\n        }\n    };\n});\n"
      },
      "typeVersion": 2
    },
    {
      "id": "5339fd78-4176-4aa6-981f-4ee1b86ee3d2",
      "name": "计划触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        -432,
        576
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 1,13 * * *"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "b5a080c0-b282-4271-84be-3f8b4c94ae0f",
      "name": "BTCUSD 图表",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        16,
        192
      ],
      "parameters": {
        "url": "https://api.chart-img.com/v2/tradingview/advanced-chart",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"symbol\": \"BINANCE:BTCUSD\",\n  \"interval\": \"1h\",\n  \"width\": 800,\n  \"height\": 600,\n  \"style\": \"candle\",\n  \"theme\": \"dark\",\n  \"scale\": \"regular\",\n  \"session\": \"regular\",\n  \"timezone\": \"Etc/UTC\",\n  \"format\": \"png\",\n  \"range\": {\n    \"from\": \"{{ $json.isoYesterday }}T00:00:00.000Z\",\n    \"to\": \"{{ $json.isoToday }}T00:00:00.000Z\"\n  }\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "76Y4UybKOVU7gh7O",
          "name": "chart-img alex"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "5351056f-67ea-45fa-a3ad-2b41c91f77f4",
      "name": "ETHUSD 图表",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        16,
        384
      ],
      "parameters": {
        "url": "https://api.chart-img.com/v2/tradingview/advanced-chart",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"symbol\": \"BINANCE:ETHUSD\",\n  \"interval\": \"1h\",\n  \"width\": 800,\n  \"height\": 600,\n  \"style\": \"candle\",\n  \"theme\": \"dark\",\n  \"scale\": \"regular\",\n  \"session\": \"regular\",\n  \"timezone\": \"Etc/UTC\",\n  \"format\": \"png\",\n  \"range\": {\n    \"from\": \"{{ $json.isoYesterday }}T00:00:00.000Z\",\n    \"to\": \"{{ $json.isoToday }}T00:00:00.000Z\"\n  }\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "76Y4UybKOVU7gh7O",
          "name": "chart-img alex"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "78a74ffd-7c20-419b-8f6e-cf7803ec23fa",
      "name": "SOLUSD 图表",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        16,
        576
      ],
      "parameters": {
        "url": "https://api.chart-img.com/v2/tradingview/advanced-chart",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"symbol\": \"BINANCE:SOLUSD\",\n  \"interval\": \"1h\",\n  \"width\": 800,\n  \"height\": 600,\n  \"style\": \"candle\",\n  \"theme\": \"dark\",\n  \"scale\": \"regular\",\n  \"session\": \"regular\",\n  \"timezone\": \"Etc/UTC\",\n  \"format\": \"png\",\n  \"range\": {\n    \"from\": \"{{ $json.isoYesterday }}T00:00:00.000Z\",\n    \"to\": \"{{ $json.isoToday }}T00:00:00.000Z\"\n  }\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "76Y4UybKOVU7gh7O",
          "name": "chart-img alex"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "8e971aa4-5e38-4e35-b349-2ef9a6ed005a",
      "name": "XRPUSD 图表",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        16,
        768
      ],
      "parameters": {
        "url": "https://api.chart-img.com/v2/tradingview/advanced-chart",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"symbol\": \"BINANCE:XRPUSD\",\n  \"interval\": \"1h\",\n  \"width\": 800,\n  \"height\": 600,\n  \"style\": \"candle\",\n  \"theme\": \"dark\",\n  \"scale\": \"regular\",\n  \"session\": \"regular\",\n  \"timezone\": \"Etc/UTC\",\n  \"format\": \"png\",\n  \"range\": {\n    \"from\": \"{{ $json.isoYesterday }}T00:00:00.000Z\",\n    \"to\": \"{{ $json.isoToday }}T00:00:00.000Z\"\n  }\n}\n",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "76Y4UybKOVU7gh7O",
          "name": "chart-img alex"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a657bb19-e3dd-45cf-9b01-1b62fd660788",
      "name": "BTCUSD 图像转换器",
      "type": "n8n-nodes-base.code",
      "position": [
        240,
        192
      ],
      "parameters": {
        "jsCode": "// Get binary data from the previous node\nconst imageBinaryData = items[0].binary.data;\n\n// Convert binary data to base64 string\nconst base64BTC = imageBinaryData.data;\n\n// Output the base64 string\nreturn [\n  {\n    json: {\n      base64BTC,\n    },\n  },\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "f9939c01-12a2-482b-af7f-ba62ae76eed5",
      "name": "ETHUSD 图像转换器",
      "type": "n8n-nodes-base.code",
      "position": [
        240,
        384
      ],
      "parameters": {
        "jsCode": "// Get binary data from the previous node\nconst imageBinaryData = items[0].binary.data;\n\n// Convert binary data to base64 string\nconst base64ETH = imageBinaryData.data;\n\n// Output the base64 string\nreturn [\n  {\n    json: {\n      base64ETH,\n    },\n  },\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "ff9bcc7a-ea3b-41c6-916c-000afc687b3d",
      "name": "SOLUSD 图像转换器",
      "type": "n8n-nodes-base.code",
      "position": [
        240,
        576
      ],
      "parameters": {
        "jsCode": "// Get binary data from the previous node\nconst imageBinaryData = items[0].binary.data;\n\n// Convert binary data to base64 string\nconst base64SOL = imageBinaryData.data;\n\n// Output the base64 string\nreturn [\n  {\n    json: {\n      base64SOL,\n    },\n  },\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "c2e62960-24cb-49c9-83c2-9659e0544021",
      "name": "XRPUSD 图像转换器",
      "type": "n8n-nodes-base.code",
      "position": [
        240,
        768
      ],
      "parameters": {
        "jsCode": "// Get binary data from the previous node\nconst imageBinaryData = items[0].binary.data;\n\n// Convert binary data to base64 string\nconst base64XRP = imageBinaryData.data;\n\n// Output the base64 string\nreturn [\n  {\n    json: {\n      base64XRP,\n    },\n  },\n];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "eb8895b5-bc85-4034-af4d-0bb1f181949f",
      "name": "合并",
      "type": "n8n-nodes-base.merge",
      "position": [
        464,
        288
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3.2
    },
    {
      "id": "01f259be-4554-4277-b4e2-3d91c6aeef91",
      "name": "结构化输出解析器2",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1040,
        704
      ],
      "parameters": {
        "autoFix": true,
        "jsonSchemaExample": "{\n  \"BTC\": {\n    \"description\": \"...\"\n  },\n  \"ETH\": {\n    \"description\": \"...\"\n  },\n  \"SOL\": {\n    \"description\": \"...\"\n  },\n  \"XRP\": {\n    \"description\": \"...\"\n  }\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "00ae7615-3f93-406d-97aa-bf8f964235ca",
      "name": "OpenRouter 聊天模型4",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1120,
        912
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "id": "uKRfFZxE7gkRDn40",
          "name": "alexanderg-bd-NEW"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e87803b1-e02c-46be-b356-1b1ca4bff6c9",
      "name": "OpenRouter 聊天模型5",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        912,
        704
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "id": "uKRfFZxE7gkRDn40",
          "name": "alexanderg-bd-NEW"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fbdb0433-a8eb-4754-ba08-72107b3a70bd",
      "name": "合并1",
      "type": "n8n-nodes-base.merge",
      "position": [
        464,
        672
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3.2
    },
    {
      "id": "a55f3b88-6759-4f1a-a299-762ee83e14fa",
      "name": "结构化输出解析器",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1840,
        976
      ],
      "parameters": {
        "autoFix": true,
        "jsonSchemaExample": "{\n  \"BTC\": {\n    \"information\": \"...\"\n  },\n  \"ETH\": {\n    \"information\": \"...\"\n  },\n  \"SOL\": {\n    \"information\": \"...\"\n  },\n  \"XRP\": {\n    \"information\": \"...\"\n  }\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "2c61bbaa-7ccd-4de4-8fd5-dfe25d52ca07",
      "name": "OpenRouter聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1920,
        1184
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "id": "uKRfFZxE7gkRDn40",
          "name": "alexanderg-bd-NEW"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2045a65a-9b59-449b-88a7-6fa9aa66e262",
      "name": "OpenRouter 聊天模型6",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1712,
        976
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "id": "uKRfFZxE7gkRDn40",
          "name": "alexanderg-bd-NEW"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "928ca775-b693-486b-9c42-83743a216103",
      "name": "获取任务结果",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        240,
        1184
      ],
      "parameters": {
        "url": "=https://browser.ai/api/v1/tasks/{{ $json.executionId }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "9863ukmMuy65jQPA",
          "name": "BrowserAI account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "ffab2bac-83ee-46f4-bbda-6c9f3923c2d4",
      "name": "检查是否完成",
      "type": "n8n-nodes-base.switch",
      "position": [
        464,
        1136
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Finalized",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "8dba0195-1f71-47b0-9446-efe66c53c5d8",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.status }}",
                    "rightValue": "finalized"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Running",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "c6342cee-39f5-46c7-9944-903334d3185a",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.status }}",
                    "rightValue": "running"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Queued",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "ab1849c1-86a7-4ee2-a6b5-54e7f67790ce",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.status }}",
                    "rightValue": "queued"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Failed",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "ef7c0700-3742-4a15-a0f3-44a5d85ef13b",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.status }}",
                    "rightValue": "failed"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Stopped",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "6311899b-f093-4717-833d-837c2fdf58bd",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.status }}",
                    "rightValue": "stopped"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "a7bb1a77-55a7-4404-bbde-95e0f3049f1a",
      "name": "如果未完成则等待",
      "type": "n8n-nodes-base.wait",
      "position": [
        688,
        1184
      ],
      "webhookId": "227e561b-d405-47e3-b1ac-aec004b2ae63",
      "parameters": {
        "amount": 45
      },
      "typeVersion": 1.1
    },
    {
      "id": "5566640b-8efd-4875-8463-e32be9823fad",
      "name": "创建 BrowserAI 任务",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        16,
        1184
      ],
      "parameters": {
        "url": "https://browser.ai/api/v1/tasks",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"geoLocation\": {\n    \"country\": \"us\"\n  },\n  \"project\": \"Project_1\",\n  \"type\": \"crawler_automation\",\n  \"inspect\": true,\n  \"instructions\": [\n    {\n      \"action\": \"Please gather and summarize the latest news and updates regarding cryptocurrency. The summary should include key developments and insights about BTC, ETH, SOL, and XRP up to the date of {{ $json.formattedYesterday }}.\"\n    }\n  ]\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "9863ukmMuy65jQPA",
          "name": "BrowserAI account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "c7945019-65cc-42d9-93e3-0fc1dfb129e7",
      "name": "合并所有图表",
      "type": "n8n-nodes-base.merge",
      "position": [
        688,
        480
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3.2
    },
    {
      "id": "2b7405c8-c0a5-457c-bb2d-0a0c3b6e4f53",
      "name": "合并图表和 BrowserAI",
      "type": "n8n-nodes-base.merge",
      "position": [
        1488,
        752
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "combineBy": "combineAll"
      },
      "typeVersion": 3.2
    },
    {
      "id": "2a7e0868-8f1b-47a1-8895-fad13540db33",
      "name": "AI 图表分析器",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        944,
        480
      ],
      "parameters": {
        "text": "=Please take a look at these base64-encoded images of BTC, ETH, SOL, and XRP graphs from the last 24 hours. Write a simple, 40-word description for each.\n\nbtc: {{ $json.base64BTC }}\neth: {{ $json.base64ETH }}\nsol: {{ $json.base64SOL }}\nxrp: {{ $json.base64XRP }}",
        "options": {
          "systemMessage": "The AI agent will convert the base64 strings into images and check them out. Craft easy-to-understand, 40-word descriptions for each, highlighting trends, big moves, and any interesting patterns in the graphs.\n\nReturn your analysis in the following JSON format:\n{\n  \"BTC\": {\n    \"description\": \"...\"\n  },\n  \"ETH\": {\n    \"description\": \"...\"\n  },\n  \"SOL\": {\n    \"description\": \"...\"\n  },\n  \"XRP\": {\n    \"description\": \"...\"\n  }\n}"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "f10721dd-0e3e-4608-a50b-9ea2eb6cda09",
      "name": "AI 加密货币摘要器",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1744,
        752
      ],
      "parameters": {
        "text": "=Combine the graph descriptions with the web summary for BTC, ETH, SOL, and XRP. Make a simple, boosted description for each coin.\n\nGraph Descriptions:\nBTC: {{ $json.output.BTC.description }}\nETH: {{ $json.output.ETH.description }}\nSOL: {{ $json.output.SOL.description }}\nXRP: {{ $json.output.XRP.description }}\n\nWeb Summary: {{ $json.result }}\n",
        "options": {
          "systemMessage": "Mix the graph descriptions with the web summary to create better information for BTC, ETH, SOL, and XRP. Use easy words, focus on key trends and changes, and keep it under 60 words.\n\nReturn the new information like this:\n{\n  \"BTC\": {\n    \"information\": \"...\"\n  },\n  \"ETH\": {\n    \"information\": \"...\"\n  },\n  \"SOL\": {\n    \"information\": \"...\"\n  },\n  \"XRP\": {\n    \"information\": \"...\"\n  }\n}"
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "1114e588-4c00-4015-bb07-b04232e17195",
      "name": "发送文本消息",
      "type": "n8n-nodes-base.telegram",
      "position": [
        2208,
        752
      ],
      "webhookId": "67fb53ea-3c6c-4a7a-8fbf-8d8d3208fbd0",
      "parameters": {
        "text": "=Here's your half-day crypto update as of {{ $('Get yesterday\\'s date').item.json.formattedYesterday }}:\n\n💸 Bitcoin - {{ $json.output.BTC.information }}\n\n💸 Ethereum - {{ $json.output.ETH.information }}\n\n💸 Solana - {{ $json.output.SOL.information }}\n\n💸 XRP - {{ $json.output.XRP.information }}",
        "chatId": "YOUR_CHAT_ID",
        "additionalFields": {
          "appendAttribution": false
        }
      },
      "credentials": {
        "telegramApi": {
          "id": "EEoBwGOcQmjV0Dau",
          "name": "browserai_service_bot"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "3e373cdd-663b-4a33-b81f-912de7f5f14c",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1680,
        592
      ],
      "parameters": {
        "width": 416,
        "height": 352,
        "content": "## 合并来自 [Chart-img](https://chart-img.com/) 和 [BrowserAI](https://browser.ai/) 的过去 24 小时分析,以获得全面摘要"
      },
      "typeVersion": 1
    },
    {
      "id": "541040dc-c190-411a-b964-c73fa334ee1e",
      "name": "便签 1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        880,
        352
      ],
      "parameters": {
        "color": 3,
        "width": 416,
        "height": 320,
        "content": "## 审查并合并所有 [Chart-img](https://chart-img.com/) 图表分析为一个连贯的消息"
      },
      "typeVersion": 1
    },
    {
      "id": "ccb50462-5115-46b5-be86-529805761ce8",
      "name": "便签 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "color": 2,
        "width": 816,
        "height": 912,
        "content": "## 利用 [Chart-img](https://chart-img.com/) 的 API 捕获过去 24 小时币种图表的截图并将其转换为 base64 字符串"
      },
      "typeVersion": 1
    },
    {
      "id": "0482ccde-64fd-43fc-b986-c1e8b50988a1",
      "name": "便签 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        928
      ],
      "parameters": {
        "color": 4,
        "width": 816,
        "height": 448,
        "content": "## 利用 [BrowserAI](https://browser.ai/) 的网络抓取能力搜索、提取、分析并收集这些币种过去 24 小时的基本信息"
      },
      "typeVersion": 1
    },
    {
      "id": "254b9aca-b5aa-4bef-be5f-5c62b0870069",
      "name": "便签 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -448,
        480
      ],
      "parameters": {
        "color": 5,
        "width": 368,
        "height": 224,
        "content": "## 每天两次在上午 8 点和晚上 8 点运行分析器"
      },
      "typeVersion": 1
    },
    {
      "id": "7fadae28-7bf3-4dfd-b03d-2db3ae477af8",
      "name": "便签 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2144,
        592
      ],
      "parameters": {
        "color": 6,
        "width": 256,
        "height": 304,
        "content": "## 将结果发送到您的 Telegram 聊天"
      },
      "typeVersion": 1
    },
    {
      "id": "080f2859-88d7-474a-83c6-f038a0e828bc",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        912,
        1104
      ],
      "parameters": {
        "color": 7,
        "width": 736,
        "height": 224,
        "content": "# 警告:此模板仅供个人使用,不构成财务建议。使用此工具采取的任何行动完全由用户自行负责"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "Merge": {
      "main": [
        [
          {
            "node": "Merge all graphs",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge1": {
      "main": [
        [
          {
            "node": "Merge all graphs",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "BTCUSD chart": {
      "main": [
        [
          {
            "node": "BTCUSD image converter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ETHUSD chart": {
      "main": [
        [
          {
            "node": "ETHUSD image converter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "SOLUSD chart": {
      "main": [
        [
          {
            "node": "SOLUSD image converter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "XRPUSD chart": {
      "main": [
        [
          {
            "node": "XRPUSD image converter",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get task results": {
      "main": [
        [
          {
            "node": "Check if finalized",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge all graphs": {
      "main": [
        [
          {
            "node": "AI graph analyzer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Get yesterday's date",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI graph analyzer": {
      "main": [
        [
          {
            "node": "Merge graphs and BrowserAI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if finalized": {
      "main": [
        [
          {
            "node": "Merge graphs and BrowserAI",
            "type": "main",
            "index": 1
          }
        ],
        [
          {
            "node": "Wait if not finished",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Wait if not finished",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create BrowserAI task",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Create BrowserAI task",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI crypto summarizer": {
      "main": [
        [
          {
            "node": "Send a text message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get yesterday's date": {
      "main": [
        [
          {
            "node": "BTCUSD chart",
            "type": "main",
            "index": 0
          },
          {
            "node": "ETHUSD chart",
            "type": "main",
            "index": 0
          },
          {
            "node": "SOLUSD chart",
            "type": "main",
            "index": 0
          },
          {
            "node": "XRPUSD chart",
            "type": "main",
            "index": 0
          },
          {
            "node": "Create BrowserAI task",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait if not finished": {
      "main": [
        [
          {
            "node": "Get task results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create BrowserAI task": {
      "main": [
        [
          {
            "node": "Get task results",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Structured Output Parser",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "BTCUSD image converter": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ETHUSD image converter": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "OpenRouter Chat Model4": {
      "ai_languageModel": [
        [
          {
            "node": "Structured Output Parser2",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model5": {
      "ai_languageModel": [
        [
          {
            "node": "AI graph analyzer",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model6": {
      "ai_languageModel": [
        [
          {
            "node": "AI crypto summarizer",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "SOLUSD image converter": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "XRPUSD image converter": {
      "main": [
        [
          {
            "node": "Merge1",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "AI crypto summarizer",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser2": {
      "ai_outputParser": [
        [
          {
            "node": "AI graph analyzer",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "Merge graphs and BrowserAI": {
      "main": [
        [
          {
            "node": "AI crypto summarizer",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 杂项, AI 摘要总结, 多模态 AI

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量34
分类3
节点类型11
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
Alex Gurinovich

Alex Gurinovich

@alexg

Project Manager with a Computer Science background and extensive experience in QA and NOC. Passionate about driving innovation, streamlining processes, and leading projects and ideas to success.

外部链接
在 n8n.io 查看

分享此工作流