8
n8n 中文网amn8n.com

将Jira未解决问题及评论加载到Pinecone

高级

这是一个Content Creation, Multimodal AI领域的自动化工作流,包含 30 个节点。主要使用 Set, Code, Merge, Switch, HttpRequest 等节点。 使用Pinecone和OpenAI为Jira问题构建RAG驱动的支持代理

前置要求
  • 可能需要目标 API 的认证凭证
  • OpenAI API Key
  • Pinecone API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "hhg9b3hGgDJN5yu9",
  "meta": {
    "instanceId": "77c333719a87760a438ca0407d9e341f10b2a6c6b59ac48593f7c1ae31e41db5"
  },
  "name": "将 Jira 未解决问题及评论加载到 Pinecone",
  "tags": [],
  "nodes": [
    {
      "id": "58e0fa98-cdf6-4c2a-85f8-866ccdc9f150",
      "name": "文档分块器",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        3280,
        1040
      ],
      "parameters": {
        "options": {
          "splitCode": "markdown"
        },
        "chunkSize": 512,
        "chunkOverlap": 50
      },
      "typeVersion": 1
    },
    {
      "id": "d03d3708-3160-444c-835c-170e5fc1e14a",
      "name": "转换为 txt",
      "type": "n8n-nodes-base.code",
      "position": [
        2288,
        496
      ],
      "parameters": {
        "jsCode": "return items.map(item => {\n  const html = item.json.html || \"\";\n\n  const text = html\n    .replace(/<\\s*br\\s*\\/?>/gi, \"\\n\")\n    .replace(/<\\/p\\s*>/gi, \"\\n\")\n    .replace(/<[^>]*>/g, \"\")\n    .replace(/&nbsp;/g, \" \")\n    .replace(/&amp;/g, \"&\")\n    .replace(/&lt;/g, \"<\")\n    .replace(/&gt;/g, \">\")\n    .replace(/&quot;/g, \"\\\"\")\n    .replace(/&#39;/g, \"'\")\n    .replace(/(\\r\\n|\\n|\\r|\\\\n|\\\\r|\\\\\\\\n)/g, \"\")  \n    .replace(/\\s+/g, \" \")\n    .replace(/!\\S+?\\.(png|jpe?g|gif|bmp|pdf|docx?|xlsx?|zip|rar)(\\|[^!]*)?!/gi, \"\")\n    .replace(/\\{panel:[^}]*\\}/gi, \"\")\n\n    .trim();\n\n  return {\n    json: {\n      ...item.json,\n      text\n    }\n  };\n});\n\n"
      },
      "typeVersion": 2
    },
    {
      "id": "6c90b512-f3fa-4262-b111-accea4260ae3",
      "name": "获取评论",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1616,
        848
      ],
      "parameters": {
        "url": "=https://jira.siav.it/rest/api/2/issue/{{ $json.issue_key }}/comment",
        "options": {
          "allowUnauthorizedCerts": true
        },
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBasicAuth"
      },
      "typeVersion": 4
    },
    {
      "id": "6aecfae3-de7e-4fbb-a53f-908da0316351",
      "name": "创建评论数组",
      "type": "n8n-nodes-base.code",
      "position": [
        1808,
        848
      ],
      "parameters": {
        "jsCode": "const issueMap = {};\n\nitems.forEach(item => {\n  const comments = item.json.comments || [];\n\n  comments.forEach(comment => {\n    const url = comment.self || '';\n    const match = url.match(/issue\\/(\\d+)\\//);\n    const issueId = match ? match[1] : 'unknown';\n\n    const body = comment.body?.trim();\n    if (!body) return;\n\n    // Filtri per commenti inutili\n    const onlyImage = /^!?[^\\s]+\\.(png|jpg|jpeg|gif|bmp)\\|?.*!?$/i.test(body);\n    const onlyDot = body === '.';\n    const isEmptyMarkdown = /^(\\*|_|~|`)+$/g.test(body);\n    if (onlyImage || onlyDot || isEmptyMarkdown) return;\n\n    if (!issueMap[issueId]) {\n      issueMap[issueId] = {\n        issue_id: issueId,\n        comments: []\n      };\n    }\n\n    issueMap[issueId].comments.push(body);\n  });\n});\n\n// Output finale\nreturn Object.values(issueMap).map(issue => ({\n  json: {\n    issue_id: issue.issue_id,\n    comments_text: issue.comments.join(';')  \n  }\n}));\n\n"
      },
      "typeVersion": 2
    },
    {
      "id": "bf4f7290-2d34-4665-b80e-5d78db98fb6e",
      "name": "Pinecone Vector Store",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        2608,
        496
      ],
      "parameters": {
        "mode": "insert",
        "options": {
          "clearNamespace": "={{($runIndex)==0 }}",
          "pineconeNamespace": "jira"
        },
        "pineconeIndex": {
          "__rl": true,
          "mode": "id",
          "value": "openissues"
        }
      },
      "credentials": {
        "pineconeApi": {
          "id": "d4Df4tS2jOYakidJ",
          "name": "PineconeApi account 2"
        }
      },
      "typeVersion": 1.2,
      "alwaysOutputData": true
    },
    {
      "id": "fc8455dd-e542-4af0-ab5c-7e5720061a15",
      "name": "Embeddings OpenAI",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        2736,
        864
      ],
      "parameters": {
        "options": {
          "dimensions": 512
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "ef4089fb-aae4-412d-b5ae-c02dddd31416",
      "name": "计划触发器",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        528,
        464
      ],
      "parameters": {
        "rule": {
          "interval": [
            {
              "field": "cronExpression",
              "expression": "0 8,11,14,17 * * 1-5"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "1d06729e-6390-4097-bd44-40bc0995e781",
      "name": "提取问题",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1136,
        480
      ],
      "parameters": {
        "url": "https://jira.siav.it/rest/api/2/search",
        "options": {
          "response": {
            "response": {}
          },
          "allowUnauthorizedCerts": true
        },
        "sendQuery": true,
        "authentication": "predefinedCredentialType",
        "queryParameters": {
          "parameters": [
            {
              "name": "maxResults",
              "value": "=25"
            },
            {
              "name": "jql",
              "value": "=project = CS AND issuetype = Case AND resolution = Unresolved AND created >= -365d "
            },
            {
              "name": "startAt",
              "value": "={{($runIndex)*25 }}"
            }
          ]
        },
        "nodeCredentialType": "jiraSoftwareServerPatApi"
      },
      "typeVersion": 4
    },
    {
      "id": "a7accfcb-7332-485f-a05e-b79b4470e3af",
      "name": "提取相关信息",
      "type": "n8n-nodes-base.code",
      "position": [
        1392,
        480
      ],
      "parameters": {
        "jsCode": "return items[0].json.issues.map(issue => {\n  const rawDate = issue.fields.customfield_10317?.ongoingCycle?.startTime?.jira ?? null;\n  const formattedDate = rawDate \n    ? new Date(rawDate).toLocaleString(\"it-IT\", {\n        year: \"numeric\",\n        month: \"2-digit\",\n        day: \"2-digit\",\n        hour: \"2-digit\",\n        minute: \"2-digit\",\n        hour12: false\n      }).replace(',', '') \n    : null;\n\n  return {\n    json: {\n      issue_key: issue.key ?? null,\n      issue_id: issue.id ?? null,\n      summary: issue.fields.summary ?? null,\n      issue_description: issue.fields?.description ?? null,\n      product: issue.fields.customfield_10402?.[0].replace(/\\s*\\(.*?\\)\\s*/g, '').trim() ?? null,\n      level: issue.fields.customfield_10408?.[0].replace(/\\s*\\(.*?\\)\\s*/g, '').trim() ?? null,\n      customer: issue.fields.customfield_10409?.[0]?.replace(/\\s*\\(.*?\\)\\s*/g, '').trim() ?? null,\n      status: issue.fields.customfield_10001?.currentStatus?.status ?? null,\n      classification: issue.fields.customfield_10322?.value ?? null,\n      registration: formattedDate\n    }\n  };\n});\n\n\n"
      },
      "typeVersion": 2
    },
    {
      "id": "e0869f53-b22f-4f91-b0dc-c222b297a23b",
      "name": "MCP 服务器触发器",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        3920,
        368
      ],
      "webhookId": "460881ea-5422-476c-bf03-b7d6e2447cb4",
      "parameters": {
        "path": "jiraticket"
      },
      "typeVersion": 2
    },
    {
      "id": "b632445b-ddbb-4984-a531-c71bd88bcc0d",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        3648,
        304
      ],
      "parameters": {
        "color": 6,
        "width": 544,
        "height": 912,
        "content": "## 同时作为 MCP 工具发布"
      },
      "typeVersion": 1
    },
    {
      "id": "a04cee53-9d8f-49bd-9fbf-ca0f3486f790",
      "name": "openissues",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        3744,
        592
      ],
      "parameters": {
        "mode": "retrieve-as-tool",
        "options": {
          "pineconeNamespace": "jira"
        },
        "pineconeIndex": {
          "__rl": true,
          "mode": "id",
          "value": "openissues"
        },
        "toolDescription": "Recupera informazioni sui ticket aperti per i clienti di Siav.\nUsa sempre il metadato 'cliente' per filtrare i risultati di ricerca. "
      },
      "credentials": {
        "pineconeApi": {
          "id": "d4Df4tS2jOYakidJ",
          "name": "PineconeApi account 2"
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "26c7773f-d86e-4bd7-9b0b-8b549471c70a",
      "name": "openIssues(数据加载器)",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        3072,
        848
      ],
      "parameters": {
        "options": {
          "metadata": {
            "metadataValues": [
              {
                "name": "ticket",
                "value": "={{ $json.issue_key }}"
              },
              {
                "name": "issue_id",
                "value": "={{ $json.issue_id }}"
              },
              {
                "name": "customer",
                "value": "={{ $json.customer }}"
              },
              {
                "name": "product",
                "value": "={{ $json.product }}"
              },
              {
                "name": "classification",
                "value": "={{ $json.classification }}"
              },
              {
                "name": "registrazion",
                "value": "={{ $json.registration }}"
              },
              {
                "name": "state",
                "value": "={{ $json.status }}"
              },
              {
                "name": "applicationmanagementLevel",
                "value": "={{ $json.level }}"
              }
            ]
          }
        },
        "jsonData": "=Customer: {{ $json.customer }}\nSummary: {{ $json.summary }}\nDescription: {{ $json.issue_description }}",
        "jsonMode": "expressionData"
      },
      "typeVersion": 1
    },
    {
      "id": "0f1e9d41-9100-4408-8664-e668c0e6e9e5",
      "name": "所有未解决问题是否已加载?",
      "type": "n8n-nodes-base.switch",
      "position": [
        3040,
        496
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Exit",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "1755b1cf-f0f0-472d-b5d6-c2df6f2236e6",
                    "operator": {
                      "type": "boolean",
                      "operation": "true",
                      "singleValue": true
                    },
                    "leftValue": "={{ ($runIndex+1) * 25 > $('Extract Issues').item.json.total  }}",
                    "rightValue": 100
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "cicle",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "75aed4b9-24a5-487f-bd6c-7a44038073a0",
                    "operator": {
                      "type": "boolean",
                      "operation": "false",
                      "singleValue": true
                    },
                    "leftValue": "={{ ($runIndex+1) * 25 > $('Extract Issues').item.json.total }}",
                    "rightValue": 0
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "executeOnce": true,
      "typeVersion": 3.2
    },
    {
      "id": "8944879b-a29b-4a51-876c-e3abbff7be47",
      "name": "合并评论",
      "type": "n8n-nodes-base.merge",
      "position": [
        2096,
        496
      ],
      "parameters": {
        "mode": "combine",
        "options": {},
        "fieldsToMatchString": "issue_id"
      },
      "typeVersion": 3.1
    },
    {
      "id": "44dde183-38c7-42eb-bce7-eadd4cf8763d",
      "name": "循环",
      "type": "n8n-nodes-base.merge",
      "position": [
        912,
        480
      ],
      "parameters": {},
      "typeVersion": 3.2
    },
    {
      "id": "7bd3bdbd-1458-49c4-9565-759de422a9a0",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        304
      ],
      "parameters": {
        "color": 5,
        "width": 1632,
        "height": 912,
        "content": "## 带合并用户评论的 Jira 未解决问题提取"
      },
      "typeVersion": 1
    },
    {
      "id": "877d1356-07bf-422f-aa4f-7b2c5ae1efe8",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -528,
        272
      ],
      "parameters": {
        "width": 704,
        "height": 944,
        "content": "## 将 Jira 未解决问题及评论加载到 Pinecone"
      },
      "typeVersion": 1
    },
    {
      "id": "37b7acfe-108b-4878-977f-04c7056beeeb",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2464,
        304
      ],
      "parameters": {
        "color": 7,
        "width": 1140,
        "height": 920,
        "content": "## Pinecone Vector Store"
      },
      "typeVersion": 1
    },
    {
      "id": "1eaa0ce9-5b57-4de0-8223-d73418b15f7e",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1600,
        1360
      ],
      "parameters": {
        "text": "={{ $json.chatInput }}",
        "options": {
          "systemMessage": "=Today is {{ $now.format('dd/LL/yyyy') }}.\n\nYou are an expert technical support agent responsible for informing the commercial team about the health status of the various systems used by clients.\nConsider terms like issue, problem, ticket, or incident as synonyms.\nThe questions you will receive will mostly aim to understand whether a given client has any open tickets and therefore unresolved issues.\n\nYou will answer questions such as:\n\nAre there any issues from client ACME?\nAre there any open tickets?\nAre there tickets that have been open for a long time?\n\nNB: Always extract ALL tickets you find!\n\nThe tool openIssues allows you to search for this information and filter it using relevant metadata such as client, which identifies the client, and registration, which provides the ticket’s registration date.\nAnother important metadata is severity, which indicates the ticket's urgency with a color code (Red, Yellow, Green, White).\n\nImportant:\n\nAlways report in your response all results obtained with the openIssues tool, which must be used before giving an answer.\nWhen extracting tickets for a client, make sure to retrieve all of them, not partial results.\nUse an informal and collaborative tone in your responses.\n\nIn the response, always provide:\n\nThe issue identifier (issue key)\nIssue description\nCustomer\nProduct details related to the issue\nAssigned severity color (White, Green, Yellow, or Red)\nTicket status\nType of AM contract\nSLA applied to the ticket, based on registration date, service level, and severity. Briefly explain the reason for the applied SLA.\n\nThese are the characteristics of the offered service levels {{ $json.SLA }}\n\n\n\n\n\n"
        },
        "promptType": "define"
      },
      "typeVersion": 2
    },
    {
      "id": "bb5ce05b-8f81-4cfa-9201-b2eb41e34712",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1552,
        1584
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "gpt-4o"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "d8056459-8ea3-4431-ad22-2a793f0899a2",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        1728,
        1584
      ],
      "parameters": {
        "contextWindowLength": 10
      },
      "typeVersion": 1.3
    },
    {
      "id": "73ef8785-da67-4dc8-a206-b89eded48158",
      "name": "SLA",
      "type": "n8n-nodes-base.set",
      "position": [
        1040,
        1360
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "29504428-d42f-410c-8a3d-9f0afe5e9220",
              "name": "SLA",
              "type": "string",
              "value": "Service Levels\n\nBelow are the service levels related to the basic Application Maintenance service (SAMB, SAMA, SAMFS) that Siav commits to respect regarding the resolution of detected and reported anomalies.\n\nService Implementation Timelines\nThe service implementation timelines are defined based on:\n\nStatus of the ticket handling\nSeverity of the problem\nLevel of Application Maintenance subscribed\nTicket Handling Process\n\nIn the process of resolving an anomaly or handling a ticket, four main phases can be identified:\n\nTicket Registration: The ticket received by the support center (phone request) is registered in the Siav information system, which generates a unique identification code.\nSeverity Code Assignment and Ticket Number Communication: The unique identifier assigned to the TDS ticket, along with the correctly assigned severity level, is communicated to the Client.\nTicket Acceptance: The ticket enters this phase when a Siav technician takes it over and starts processing it.\nTicket Closure: When the assigned personnel inform the support service that the requested assistance has been provided to the Client (resolution of the reported issue or fulfillment of the specific request), the ticket is considered closed, and the closure details are communicated to the Client contact indicated at the ticket registration.\nProblem Severity Definition\nThe severity of the problem depends on two factors: Urgency and Impact. Below are the standard criteria for their assignment and the matrix for calculating Severity and the related response times.\n\nUrgency Level\nIndicates how quickly a restoration is needed, considering the Customer's business needs (communicated at ticket opening), and is assigned based on which and how many functionalities are no longer available.\nThe defined levels are:\n\nCritical: All functions are unavailable, with certainty or possibility of data corruption; immediate restoration is required to resume the Client's blocked activities.\nHigh: Most functionalities are unavailable, or the problem concerns important functions that block the Client’s business; rapid restoration is required to meet externally imposed deadlines.\nMedium: The unavailable functionalities are not crucial and do not prevent the Customer from continuing operations; short-term restoration is needed to meet internal deadlines.\nLow: The unavailability is limited to a few or minor functions, whose restoration can occur over a medium/long term period.\n\nImpact\nRefers to the number and type of users affected by the problems or anomalies.\n\n\n...."
            }
          ]
        },
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "92b59453-0da6-4c65-8e5c-865c00035037",
      "name": "Chat",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        512,
        1360
      ],
      "webhookId": "d035b777-a948-45a6-99b6-12f2b898171b",
      "parameters": {
        "public": true,
        "options": {
          "title": "⚒️  Ticket Jira ancora aperti  ⚒️",
          "subtitle": "=🕑 Refresh automatico ogni giorno alle 8, 11, 14, 17 🕑\n",
          "customCss": ":root {\n  --chat--font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n\n  /* Colori SCURI forzati */\n  --chat--color-primary: #10a37f;\n  --chat--color-primary-shade-50: #0e9272;\n  --chat--color-primary-shade-100: #0d8165;\n  --chat--color-secondary: #40414f;\n  --chat--color-secondary-shade-50: #565869;\n  --chat--color-white: #ffffff;\n  --chat--color-light: #343541;\n  --chat--color-light-shade-50: #2c2c34;\n  --chat--color-light-shade-100: #1e1e24;\n  --chat--color-medium: #444654;\n  --chat--color-dark: #d1d5db;\n  --chat--color-disabled: #6b7280;\n  --chat--color-typing: #999999;\n\n  --chat--message--bot--background: var(--chat--color-secondary);\n  --chat--message--bot--color: var(--chat--color-dark);\n  --chat--message--user--background: var(--chat--color-secondary);\n  --chat--message--user--color: var(--chat--color-white);\n  --chat--message--pre--background: rgba(255, 255, 255, 0.05);\n\n  --chat--input--background: var(--chat--color-medium);\n  --chat--input--text-color: var(--chat--color-white);\n\n  --chat--input--send--button--background: var(--chat--color-medium);\n  --chat--input--send--button--color: var(--chat--color-white);\n\n  --chat--header--background: var(--chat--color-medium);\n  --chat--header--color: var(--chat--color-white);\n\n  --chat--footer--background: var(--chat--color-medium);\n  --chat--footer--color: var(--chat--color-white);\n\n  --chat--toggle--background: var(--chat--color-primary);\n  --chat--toggle--hover--background: var(--chat--color-primary-shade-50);\n  --chat--toggle--active--background: var(--chat--color-primary-shade-100);\n  --chat--toggle--color: var(--chat--color-white);\n}\n\n\n"
        },
        "initialMessages": "Come posso aiutarti oggi? 😎"
      },
      "typeVersion": 1.1
    },
    {
      "id": "708377d2-9273-4fd7-84f0-969b9b639b4f",
      "name": "openIssues",
      "type": "@n8n/n8n-nodes-langchain.vectorStorePinecone",
      "position": [
        1968,
        1536
      ],
      "parameters": {
        "mode": "retrieve-as-tool",
        "topK": 10,
        "options": {
          "pineconeNamespace": "jira"
        },
        "toolName": "openIssue",
        "pineconeIndex": {
          "__rl": true,
          "mode": "list",
          "value": "openissues",
          "cachedResultName": "openissues"
        },
        "toolDescription": "Retrieve information on open tickets for Siav's clients.\nAlways use the 'client' metadata to filter the search results."
      },
      "credentials": {
        "pineconeApi": {
          "id": "d4Df4tS2jOYakidJ",
          "name": "PineconeApi account 2"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "352b195e-f3b1-407c-8f62-f62ba27304a4",
      "name": "Embeddings OpenAI1",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        2192,
        1728
      ],
      "parameters": {
        "options": {
          "dimensions": 512
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "eftSGhVCoom3z6Q4",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "82b9c5ee-bfa1-4fba-b09b-7ebb65ed0ac1",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        1264
      ],
      "parameters": {
        "color": 3,
        "width": 1632,
        "height": 736,
        "content": "## RAG Agent"
      },
      "typeVersion": 1
    },
    {
      "id": "273d0858-1dcf-44b1-b336-91eba0e03f43",
      "name": "MCP RAG",
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "position": [
        3264,
        1584
      ],
      "parameters": {
        "options": {},
        "endpointUrl": "http://localhost:5678/mcp-test/jiraticket",
        "serverTransport": "httpStreamable"
      },
      "typeVersion": 1.1
    },
    {
      "id": "64e0547e-d42d-4d43-8280-67874159ab88",
      "name": "便签5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2464,
        1264
      ],
      "parameters": {
        "color": 2,
        "width": 1728,
        "height": 736,
        "content": "## 您可以用 RAG MCP 工具替换未解决问题工具,以使用 MCP 服务器连接"
      },
      "typeVersion": 1
    },
    {
      "id": "cb098944-ad62-4d79-9679-17df7d4ca7b0",
      "name": "便签6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -528,
        1264
      ],
      "parameters": {
        "width": 704,
        "height": 464,
        "content": "## 具备 SLA 洞察功能的 Jira 未处理工单 AI 聊天机器人"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "9ef9acd1-1441-438c-99f1-ba47da462633",
  "connections": {
    "SLA": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Chat": {
      "main": [
        [
          {
            "node": "SLA",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Cycles": {
      "main": [
        [
          {
            "node": "Extract Issues",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "openIssues": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "openissues": {
      "ai_tool": [
        [
          {
            "node": "MCP Server Trigger",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Comments": {
      "main": [
        [
          {
            "node": "Create Comment array",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Convert to txt": {
      "main": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Issues": {
      "main": [
        [
          {
            "node": "Extract Relevant Info",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge Comments": {
      "main": [
        [
          {
            "node": "Convert to txt",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Document Chunker": {
      "ai_textSplitter": [
        [
          {
            "node": "openIssues (Data Loader)",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    },
    "Schedule Trigger": {
      "main": [
        [
          {
            "node": "Cycles",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI": {
      "ai_embedding": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "ai_embedding",
            "index": 0
          },
          {
            "node": "openissues",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI1": {
      "ai_embedding": [
        [
          {
            "node": "openIssues",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Create Comment array": {
      "main": [
        [
          {
            "node": "Merge Comments",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Extract Relevant Info": {
      "main": [
        [
          {
            "node": "Merge Comments",
            "type": "main",
            "index": 0
          },
          {
            "node": "Get Comments",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Pinecone Vector Store": {
      "main": [
        [
          {
            "node": "All openissues are loaded?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "openIssues (Data Loader)": {
      "ai_document": [
        [
          {
            "node": "Pinecone Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "All openissues are loaded?": {
      "main": [
        [],
        [
          {
            "node": "Cycles",
            "type": "main",
            "index": 1
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级 - 内容创作, 多模态 AI

需要付费吗?

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

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

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

作者

Experienced and professional manager with over 20 years of experience in consulting for business process digitalization, driven by a strong passion for organization.

外部链接
在 n8n.io 查看

分享此工作流