8
n8n 中文网amn8n.com

PDF文档助手2.0

高级

这是一个AI Summarization, Multimodal AI领域的自动化工作流,包含 18 个节点。主要使用 Code, Gmail, Webhook, GoogleSheets, Agent 等节点。 使用GPT和o4-mini分析法律文档,集成Gmail和Google Sheets

前置要求
  • Google 账号和 Gmail API 凭证
  • HTTP Webhook 端点(n8n 会自动生成)
  • Google Sheets API 凭证
  • OpenAI API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "Xbp4biTknbF4qzQn",
  "meta": {
    "instanceId": "01315f1c846bfd70e3e2583db51235f2f99644f5668e2fe5a10753a63b05a8a7",
    "templateCredsSetupCompleted": true
  },
  "name": "PDF 文档助手 2.0",
  "tags": [],
  "nodes": [
    {
      "id": "cacbb1dc-cb5b-4d1f-b9ea-ce113a6e73f4",
      "name": "从文件提取",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -380,
        340
      ],
      "parameters": {
        "options": {},
        "operation": "pdf",
        "binaryPropertyName": "=data"
      },
      "typeVersion": 1
    },
    {
      "id": "5ac09271-d72b-43c4-95f1-101cf54d2397",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -660,
        180
      ],
      "webhookId": "b840eb14-cc32-4158-a31c-5ab47fb6b0e3",
      "parameters": {
        "path": "upload-pqx92oa",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    },
    {
      "id": "d93476b3-aafd-450e-8a75-06514af95530",
      "name": "AI 代理",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1000,
        340
      ],
      "parameters": {
        "text": "=You are an advanced AI document review assistant embedded in an automated workflow. A user has submitted a PDF for structured review. Your role is to help the user fully understand the document by performing a detailed, insightful analysis and delivering a polished, professional response via email.\n\nYour output should reflect **expert-level comprehension**, not surface-level summaries. Aim for **depth, precision, and clarity** throughout. Treat each section of the document as if preparing a report for a legal, compliance, or business-critical audience.\n\nYou are provided with:\n- Name: {{ $json.name }}\n- Email: {{ $json.email }}\n- Extracted PDF Text: {{ $json.full_summary }}\n- Name of File in Subject Title:\n\nYour response must be:\n- Addressed directly to the user (by name)\n- Professionally written and ready for email delivery\n- Fully structured, richly formatted, and highly detailed\n\n---\n\n## 🔍 Your Tasks:\n\n### 1. Identify and Classify the Document Type\n\nBegin with a short section titled **“Document Type”**.\n\n- Analyze the content, language, and structure to determine the specific type of document, such as:  \n  **contract**, **employment agreement**, **project proposal**, **policy document**, **business plan**, **financial report**, **technical manual**, etc.\n  \n- Do **not** simply say \"Legal\" or \"Non-legal.\" Instead, **state the actual document category** and its apparent purpose.\n\n- If it is a legal document, explicitly state:  \n  > “This appears to be a legal document: [type]”  \n  and proceed to the legal clause analysis.\n\n- If it is not a legal document, still identify and state the exact type and purpose clearly. Example:  \n  > “This appears to be a business strategy document focused on product launch planning.”\n\nBe confident but not speculative — only classify based on what’s clearly supported by the content.\n\n\n---\n\n### 2. Chapter-by-Chapter Summary and Deep Analysis\n\nReview the document **in structured order**, chapter by chapter, section by section (or by major headings if chapters are not explicitly labeled).\n\nFor each chapter or major section:\n\n- Begin with a bold heading in this format:  \n  > **Chapter 1: [Section Title]**\n\n- Provide a **thorough multi-paragraph analysis** covering:\n  - The **main ideas or arguments** expressed\n  - Any **supporting evidence, examples, or rationale**\n  - The **intent or strategic purpose** behind the section\n  - How the section contributes to or supports the overall goals of the document\n\n- Expand on:\n  - Any **assumptions**, **biases**, or **limitations** in the content\n  - Key **stakeholders** referenced or implied\n  - What the section **means for the reader** or decision-maker\n\n- Highlight any:\n  - 🟨 Inconsistencies or contradictions\n  - ⚠️ Risks or red flags (if applicable)\n  - 💡 Strategic or operational insights\n\nApproach each section as if you are writing a standalone **mini-report** — not a surface-level summary. Provide context, clarity, and insight. Be analytical, not just descriptive.\n\n---\n\n### 3. If Legal, Perform Legal-Specific Review\n\nIf the document is legal in nature, begin this section with:\n\n> _“This appears to be a legal document.”_\n\nThen conduct a structured legal analysis with the following breakdown:\n\n---\n\n- 🧾 **Key Clauses**  \n  Identify and briefly explain the most important clauses, grouped by category where applicable:\n  - **Parties & Scope**\n  - **Rights and Responsibilities**\n  - **Payment Terms**\n  - **Termination & Exit Clauses**\n  - **Liability & Indemnity**\n  - **Confidentiality / IP Ownership**\n  - Any other key legal mechanisms\n\n---\n\n- 🚩 **Red Flags or Areas of Concern**  \n  List any elements that could introduce risk, confusion, or legal exposure, such as:\n  - Ambiguous or undefined terms\n  - One-sided obligations or power imbalance\n  - Vague or missing exit terms\n  - Loopholes or conflicting provisions\n  - Unusual penalty structures\n\n---\n\n- 🧠 **Inferred Conclusions**  \n  Based on the document’s tone, structure, and content:\n  - What is the **true strategic purpose** or intent behind the document?\n  - What risks, responsibilities, or long-term obligations are implied — even if not explicitly stated?\n  - What **assumptions** does the document appear to make?\n  - Is the document **balanced**, or does it favor one party?  \n    - If imbalanced, explain **how** and **in whose favor** (e.g., language favoring employer, vendor, landlord, etc.)\n  - Does the document reflect a **standard template**, or something tailored and possibly aggressive?\n\nConclude this section with a brief opinion:  \n> “Overall, this document appears [balanced/imbalanced], leaning in favor of [Party A/Party B], with [low/moderate/high] legal risk exposure based on the language and structure.”\n\n---\n\n### 4. If Not Legal, Provide Business/Contextual Insights\n\nIf the document is not legal in nature, continue with a detailed, chapter-by-chapter analysis.\n\nAlso extract and summarize the following:\n\n- 📌 **Actionable Insights**  \n  Identify any suggestions, decisions, or next steps the reader or organization should consider.\n\n- 📊 **Themes, Trends, or Conclusions**  \n  Highlight key messages, repeated patterns, overall direction, or stated conclusions.\n\n- 🔍 **Strategic Implications**  \n  What does the document imply about the organization’s goals, priorities, risks, or competitive position?\n\n- 🧱 **Operational Notes**  \n  Extract any timelines, deliverables, roles/responsibilities, or execution plans.\n\n- 💡 **Assumptions or Unspoken Context**  \n  Point out any implicit assumptions, missing data, or background context the reader should be aware of.\n\n- ❓ **Questions or Ambiguities**  \n  Identify unclear sections, vague terms, or places where clarification may be needed.\n\nThe goal is to help the user **understand not just what the document says, but what it means and why it matters.**\n\n---\n\n### 5. **Finish with a Professional Closing Message**\n- Thank the user by name\n- Inform them this analysis is automatically generated\n- Encourage follow-up review if the document is critical or sensitive\n\n---\n\n## 🧾 Tone & Format Guidelines:\n- Professional, helpful, and articulate\n- Use section headers, bullet points, and bold formatting to structure your output\n- Avoid legal speculation outside the text’s content\n- Write as though this is being sent to a C-suite executive, legal advisor, or stakeholder\n\n---\n\n## 📬 Final Output Format:\nOutput **only the email-style response** to the user. Do not include prompts, commentary, or instruction headers. Begin directly with content. Your structure should include the following:\n\n- **Document Type**\n- **Chapter-by-Chapter Summary**\n- **Key Clauses** (if legal)\n- **Red Flags / Observations**\n- **Inferred Conclusions**\n- **Recommendations / Next Steps**\n- **Professional Closing**\n- **Disclaimer**\n\n---\n\n### ⚠️ Include this disclaimer at the bottom of the email:\n\n> _Disclaimer: This review has been automatically generated by an AI document assistant. It is intended to provide insight and aid understanding, but does not constitute legal or professional advice. For high-stakes or binding decisions, we strongly recommend consulting with a qualified professional._\n\n\nNow begin your response.\n\n \n\n“You are responding via an HTML email using the Gmail node in n8n. Format all output in clean, professional HTML using:\n\n<strong> for bold.</strong>\"\n\n##this is an exact sample to use below##:\n\n<p>Dear {{ $json.name }},</p>\n\n<p>Thank you for submitting your document for analysis. Below is a detailed, AI-generated review based on the contents provided.</p>\n\n<p><strong>📘 Document Type:\n[Clearly state only what kind of document, e.g., contract, policy, NDA, report, etc.]\n</p>\n\n<p><strong>🧾 Chapter-by-Chapter Summary:</strong></p>\n<ul>\n  <li><strong>Chapter 1: [Title]</strong><br>\n  [Detailed explanation of this chapter’s contents, its intent, key ideas, implications, and how it fits the overall document.]</li>\n  <li><strong>Chapter 2: [Title]</strong><br>\n  [Continue same structure with depth, clarity, and professional interpretation.]</li>\n  <!-- Add more chapters as needed -->\n</ul>\n\n<p><strong>📑 Key Clauses Identified:</strong></p>\n<ul>\n  <li><strong>Confidentiality:</strong> [Summarize how confidential information is defined and protected]</li>\n  <li><strong>Termination:</strong> [Conditions under which the agreement can be ended]</li>\n  <li><strong>Liability:</strong> [Limits of responsibility and potential exposures]</li>\n  <!-- Add more if relevant -->\n</ul>\n\n<p><strong>🚩 Red Flags or Areas of Concern:</strong></p>\n<ul>\n  <li>[Example: Unilateral termination clauses that may favor one party disproportionately]</li>\n  <li>[Example: Vague definitions that could create legal loopholes]</li>\n</ul>\n\n<p><strong>🧠 Inferred Conclusions:</strong></p>\n<ul>\n  <li>This document is structured to legally formalize [insert purpose, e.g., a service relationship, IP transfer, etc.]</li>\n  <li>Language suggests [potential drafting bias / strategic intent]</li>\n  <li>The agreement may pose [insert type of risk: financial, legal, operational] due to [insert reasoning]</li>\n</ul>\n\n<p><strong>✅ Recommendations:</strong></p>\n<ul>\n  <li>Consider having a legal expert review clauses marked as high-risk</li>\n  <li>Seek clarification on any undefined or ambiguous terms before signing</li>\n  <li>Ensure all business-critical terms (IP, termination, liability) align with your goals</li>\n</ul>\n\n<p>Best regards,<br>\n<strong>Swot AI - Your Smart PDF Assistant</strong></p>\n<p></p>\n<p style=\"margin-top: 1.5rem;\">\n  <a href=\"mailto:swot.ai25@gmail.com\" style=\"background: #cb1b2c; color: white; padding: 0.6rem 1rem; text-decoration: none; border-radius: 6px; font-weight: bold;\">\n    💬 Want to leave a quick comment?\n  </a>\n</p>\n\n<p></p>\n<p></p>\n\n<p style=\"font-size: 0.8rem; color: #555; line-height: 1.4; margin-top: 2rem;\">\n<em><strong>Disclaimer:</strong> This review was automatically generated by an AI document assistant. It is intended to provide insights and aid understanding but does not constitute legal or professional advice. For critical decisions or binding interpretations, we strongly recommend consulting with a qualified legal or subject matter expert.</em></p>\n",
        "options": {},
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "5704b0f7-6f96-44b9-b804-b8d42043f0dd",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1100,
        620
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "o4-mini-2025-04-16",
          "cachedResultName": "o4-mini-2025-04-16"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "fUHNT1hC50OnGEAO",
          "name": "OpenAi account 2"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "6eb4a414-e654-43ae-8193-e4935db5e5ba",
      "name": "Gmail1",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1460,
        340
      ],
      "webhookId": "9c995f46-1437-46a3-a156-9d08665a3010",
      "parameters": {
        "sendTo": "={{ $('Code1').item.json.email }}",
        "message": "={{ $json.output }}",
        "options": {
          "senderName": "Swot AI",
          "appendAttribution": false
        },
        "subject": "=Summary of your attached Document- {{ $('Code1').item.json.title }}"
      },
      "credentials": {
        "gmailOAuth2": {
          "id": "iy7pzUaLse5xLXbV",
          "name": "Gmail account 3"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "d0541618-d148-4f89-9dd1-9576fe6102d0",
      "name": "代码",
      "type": "n8n-nodes-base.code",
      "position": [
        -140,
        340
      ],
      "parameters": {
        "jsCode": "const chunkSize = 4000; // characters per chunk\n\nconst text = $input.first().json.text ?? \"\";\nconst name = $(\"Webhook\").first().json.body.name;\nconst email = $(\"Webhook\").first().json.body.email;\nconst title = $input.first().json.info.Title;\n\nconst chunks = [];\n\nfor (let i = 0; i < text.length; i += chunkSize) {\n  chunks.push({\n    chunk: text.slice(i, i + chunkSize),\n    chunkIndex: i / chunkSize + 1,\n    name,\n    email,\n    title,\n  });\n}\n\nreturn chunks.map((c) => ({ json: c }));\n"
      },
      "typeVersion": 2
    },
    {
      "id": "64daaffc-b164-4812-8581-af0122001500",
      "name": "OpenAI 聊天模型1",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        260,
        580
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-3.5-turbo",
          "cachedResultName": "gpt-3.5-turbo"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "fUHNT1hC50OnGEAO",
          "name": "OpenAi account 2"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "59619b79-7428-4dea-9e3c-e13648f30064",
      "name": "基础 LLM 链",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        200,
        340
      ],
      "parameters": {
        "text": "=Summarize the following section of a document. Retain legal terms, obligations, or business meaning.\n\n{{ $json.chunk }}\n",
        "batching": {},
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "3f2ec94f-7b26-4088-98db-f15a737b9c86",
      "name": "代码1",
      "type": "n8n-nodes-base.code",
      "position": [
        660,
        340
      ],
      "parameters": {
        "jsCode": "const summaries = items.map(item => item.json.text || item.json.output || item.json.chunk || \"\");\n\nreturn [{\n  json: {\n    full_summary: summaries.join(\"\\n\\n\"),\n    name: $('Code').first().json.name,\n    email: $('Code').first().json.email,\n    title: $('Code').first().json.title\n  }\n}];\n"
      },
      "typeVersion": 2
    },
    {
      "id": "1c4a2473-afaa-4e9b-844e-847eaa4f89ae",
      "name": "响应 Webhook",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        -280,
        -60
      ],
      "parameters": {
        "options": {
          "responseCode": 302,
          "responseHeaders": {
            "entries": [
              {
                "name": "Content-Type",
                "value": "text/html"
              }
            ]
          }
        },
        "redirectURL": "https://swot-ai25.github.io/pdf-document-assistant/success.html",
        "respondWith": "redirect"
      },
      "typeVersion": 1.3
    },
    {
      "id": "a970c4d6-36f2-4387-93d3-1d52de3dcd2d",
      "name": "Google Sheets",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        1880,
        340
      ],
      "parameters": {
        "columns": {
          "value": {
            "Date": "={{ $now.toFormat('dd-LL-yyyy') }}",
            "Time": "={{ $now.toFormat('HH:mm') }}",
            "Name ": "={{ $('Code1').item.json.name }}",
            "Email ": "={{ $('Code1').item.json.email }}",
            "Status": "={{ $json.labelIds[0] }}",
            "Filename": "={{ $('Code1').item.json.title }}"
          },
          "schema": [
            {
              "id": "Date",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Time",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Name ",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Name ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email ",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Email ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Filename",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Filename",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Size",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Number of Pages",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Number of Pages",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true,
              "canBeUsedToMatch": true
            },
            {
              "id": "threadId",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "threadId",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "labelIds",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "labelIds",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/16eDhxjB3ZEpb9-zWaBxAX0z4xhsb-aQfTWqeGvQaNI0/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "16eDhxjB3ZEpb9-zWaBxAX0z4xhsb-aQfTWqeGvQaNI0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/16eDhxjB3ZEpb9-zWaBxAX0z4xhsb-aQfTWqeGvQaNI0/edit?usp=drivesdk",
          "cachedResultName": "SwotAI_Users"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "3xlliaCfqO7W8sCV",
          "name": "Google Sheets account"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "7a523ce5-cb91-401d-93b4-aa62fec739d3",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -760,
        0
      ],
      "parameters": {
        "height": 380,
        "content": "## 入口点 —"
      },
      "typeVersion": 1
    },
    {
      "id": "e3b6121a-45bb-44ae-9169-0dd4126ad675",
      "name": "便签 2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -240,
        200
      ],
      "parameters": {
        "width": 320,
        "height": 320,
        "content": "## 🟨 代码(预处理)"
      },
      "typeVersion": 1
    },
    {
      "id": "3f9a3e21-7d9a-48d3-b66a-c0f83159c0bb",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        600,
        60
      ],
      "parameters": {
        "height": 560,
        "content": "## 🟨 AI Agent"
      },
      "typeVersion": 1
    },
    {
      "id": "424540ff-40d1-4c75-9b84-35d5c5366e3e",
      "name": "便签 3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        180,
        140
      ],
      "parameters": {
        "width": 300,
        "height": 640,
        "content": "## 🟨 基础 LLM 链"
      },
      "typeVersion": 1
    },
    {
      "id": "2d1e46b9-f72a-40f7-87f5-1a3aaacd3db0",
      "name": "便签 4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        920,
        60
      ],
      "parameters": {
        "width": 380,
        "height": 700,
        "content": "##🟨 AI Agent"
      },
      "typeVersion": 1
    },
    {
      "id": "62d5aae6-e7d0-41a6-98a1-0eb95aa89ac9",
      "name": "便签 5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -400,
        -240
      ],
      "parameters": {
        "width": 400,
        "height": 340,
        "content": "## 🟨 响应 Webhook"
      },
      "typeVersion": 1
    },
    {
      "id": "8643df4f-0146-4aac-9177-be2a69b370ed",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1360,
        120
      ],
      "parameters": {
        "width": 360,
        "height": 460,
        "content": "## 🟨 Gmail"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "callerPolicy": "workflowsFromSameOwner",
    "executionOrder": "v1"
  },
  "versionId": "9a8282dd-88c0-4535-8427-662d9c25118e",
  "connections": {
    "Code": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Code1": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gmail1": {
      "main": [
        [
          {
            "node": "Google Sheets",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Webhook": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          },
          {
            "node": "Respond to Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "AI Agent": {
      "main": [
        [
          {
            "node": "Gmail1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "Code1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Code",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model1": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

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

需要付费吗?

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

工作流信息
难度等级
高级
节点数量18
分类2
节点类型10
难度说明

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

作者
Swot.AI

Swot.AI

@swotai

Automation consultant with over 5 years experience helping Individuals and teams to streamline their processes. Use my link to book an initial consultation for custom n8n work.

外部链接
在 n8n.io 查看

分享此工作流