8
n8n 中文网amn8n.com

启用RAG中文档的更新功能

高级

这是一个AI领域的自动化工作流,包含 29 个节点。主要使用 Set, Wait, GoogleDrive, HttpRequest, ManualTrigger 等节点,结合人工智能技术实现智能自动化。 使用Google Drive、Qdrant和Gemini Chat构建和更新RAG系统

前置要求
  • Google Drive API 凭证
  • 可能需要目标 API 的认证凭证
  • OpenAI API Key
  • Qdrant 服务器连接信息
  • Google Gemini API Key
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "cN4nA1LigjoreUYv",
  "meta": {
    "instanceId": "a4bfc93e975ca233ac45ed7c9227d84cf5a2329310525917adaf3312e10d5462",
    "templateCredsSetupCompleted": true
  },
  "name": "启用对 RAG 中文档的更新",
  "tags": [
    {
      "id": "oFVn9SpkmyjWZwco",
      "name": "Qdrant",
      "createdAt": "2024-12-04T16:52:58.409Z",
      "updatedAt": "2024-12-04T16:52:58.409Z"
    }
  ],
  "nodes": [
    {
      "id": "23afa2cc-7085-474f-aa9e-b110ef17208c",
      "name": "当点击“测试工作流”时",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -400,
        220
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "71115f33-f461-4942-9df1-e554e6432054",
      "name": "Embeddings OpenAI1",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        940,
        480
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "4zwP0MSr8zkNvvV9",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "81d855d2-a883-4e74-ae2a-1a4e722af4d7",
      "name": "默认数据加载器1",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        1080,
        480
      ],
      "parameters": {
        "options": {
          "metadata": {
            "metadataValues": [
              {
                "name": "file_id",
                "value": "={{ $('Download files').item.json.id }}"
              },
              {
                "name": "file_name",
                "value": "={{ $('Download files').item.json.name }}"
              }
            ]
          }
        },
        "dataType": "binary",
        "binaryMode": "specificField"
      },
      "typeVersion": 1
    },
    {
      "id": "4e5539a5-0f3a-4de9-ba69-0eb7d9c00804",
      "name": "Qdrant 向量存储",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
      "position": [
        1000,
        240
      ],
      "parameters": {
        "mode": "insert",
        "options": {},
        "qdrantCollection": {
          "__rl": true,
          "mode": "list",
          "value": "negozio-emporio-verde",
          "cachedResultName": "negozio-emporio-verde"
        }
      },
      "credentials": {
        "qdrantApi": {
          "id": "iyQ6MQiVaF3VMBmt",
          "name": "QdrantApi account (Hetzner)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8f944f0e-51a0-470e-9735-1ed539522acb",
      "name": "创建集合",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -140,
        -200
      ],
      "parameters": {
        "url": "http://QDRANTURL/collections/COLLECTION",
        "method": "PUT",
        "options": {},
        "jsonBody": "{\n  \"vectors\": {\n    \"size\": 1536,\n    \"distance\": \"Cosine\"  \n  },\n  \"shard_number\": 1,  \n  \"replication_factor\": 1,  \n  \"write_consistency_factor\": 1 \n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "qhny6r5ql9wwotpn",
          "name": "Qdrant API (Hetzner)"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "25c035aa-7a07-47cf-8878-44ac2eab0c3d",
      "name": "递归字符文本分割器",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        1060,
        680
      ],
      "parameters": {
        "options": {},
        "chunkSize": 500,
        "chunkOverlap": 50
      },
      "typeVersion": 1
    },
    {
      "id": "2ade51da-1711-4f71-8bd9-ebd3b6494b0b",
      "name": "遍历项目",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        420,
        220
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "74a224b0-8755-41ef-bb55-22e83b7d762d",
      "name": "等待",
      "type": "n8n-nodes-base.wait",
      "position": [
        1380,
        240
      ],
      "webhookId": "3d477cc3-8182-43e9-ae61-23e8ce308887",
      "parameters": {},
      "typeVersion": 1.1
    },
    {
      "id": "1c0d5b8c-e53e-47d3-aaac-ddccae80f280",
      "name": "OpenAI 嵌入",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        620,
        1220
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "4zwP0MSr8zkNvvV9",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "f838f548-52dd-4aaf-aa97-9a8029018a1a",
      "name": "默认数据加载器",
      "type": "@n8n/n8n-nodes-langchain.documentDefaultDataLoader",
      "position": [
        820,
        1260
      ],
      "parameters": {
        "options": {
          "metadata": {
            "metadataValues": [
              {
                "name": "file_id",
                "value": "={{ $('Download file').item.json.file_id }}"
              },
              {
                "name": "file_name",
                "value": "={{ $binary.data.fileName}}"
              }
            ]
          }
        },
        "dataType": "binary",
        "binaryMode": "specificField"
      },
      "typeVersion": 1
    },
    {
      "id": "07bb3ae1-145f-4784-8409-d3bc73d5522c",
      "name": "递归字符文本分割器1",
      "type": "@n8n/n8n-nodes-langchain.textSplitterRecursiveCharacterTextSplitter",
      "position": [
        860,
        1460
      ],
      "parameters": {
        "options": {},
        "chunkSize": 500,
        "chunkOverlap": 50
      },
      "typeVersion": 1
    },
    {
      "id": "dfa7b994-13b7-490f-82b7-5ae4ea1e2e7f",
      "name": "删除单个文件",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        360,
        720
      ],
      "parameters": {
        "url": "http://QDRANTURL/collections/COLLECTION/points/delete",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n  \"filter\": {\n    \"must\": [\n      {\n          \"key\": \"metadata.file_id\",\n          \"match\": { \"value\": \"{{$json.file_id}}\" }\n        }\n    ]\n  }\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "qhny6r5ql9wwotpn",
          "name": "Qdrant API (Hetzner)"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "44bf5e40-3947-4288-a7ba-7797ea6ad266",
      "name": "便签说明3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        140,
        -280
      ],
      "parameters": {
        "color": 6,
        "width": 880,
        "height": 220,
        "content": "# 步骤 1"
      },
      "typeVersion": 1
    },
    {
      "id": "56e6534e-e191-4756-8bcf-d9ff8fc88b5f",
      "name": "便签说明",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        700
      ],
      "parameters": {
        "height": 360,
        "content": "# 步骤 3"
      },
      "typeVersion": 1
    },
    {
      "id": "f7098791-889a-4e9a-bd8f-f3b52dfc8839",
      "name": "清空集合",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -140,
        220
      ],
      "parameters": {
        "url": "http://QDRANTURL/collections/COLLECTION/points/delete",
        "method": "POST",
        "options": {},
        "jsonBody": "{\n  \"filter\": {}\n}",
        "sendBody": true,
        "sendHeaders": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "headerParameters": {
          "parameters": [
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        }
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "qhny6r5ql9wwotpn",
          "name": "Qdrant API (Hetzner)"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d75a193e-e0cd-469a-8222-1ff183e2aa83",
      "name": "获取文件",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        120,
        220
      ],
      "parameters": {
        "filter": {
          "driveId": {
            "__rl": true,
            "mode": "list",
            "value": "My Drive",
            "cachedResultUrl": "https://drive.google.com/drive/my-drive",
            "cachedResultName": "My Drive"
          },
          "folderId": {
            "__rl": true,
            "mode": "list",
            "value": "1RO5ByPhq2yvYLmbapTNC_kKdU5lZd4W5",
            "cachedResultUrl": "https://drive.google.com/drive/folders/1RO5ByPhq2yvYLmbapTNC_kKdU5lZd4W5",
            "cachedResultName": "Test Negozio"
          }
        },
        "options": {},
        "resource": "fileFolder"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "HEy5EuZkgPZVEa9w",
          "name": "Google Drive account (n3w.it)"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "4e5d5bd2-2aae-4d3b-978e-3ed29b641bb3",
      "name": "下载文件",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        700,
        240
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "options": {
          "googleFileConversion": {
            "conversion": {
              "docsToFormat": "text/plain"
            }
          }
        },
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "HEy5EuZkgPZVEa9w",
          "name": "Google Drive account (n3w.it)"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "074333a4-fbcc-42ce-aa05-212d545fdcb1",
      "name": "下载文件",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        360,
        980
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.file_id }}"
        },
        "options": {
          "googleFileConversion": {
            "conversion": {
              "docsToFormat": "text/plain"
            }
          }
        },
        "operation": "download"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "HEy5EuZkgPZVEa9w",
          "name": "Google Drive account (n3w.it)"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "e4ee0aa9-e140-44b9-b581-6d98cb2857a9",
      "name": "当收到聊天消息时",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        -560,
        1600
      ],
      "webhookId": "97d60090-1717-4195-bf27-2e3c3105b7f8",
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "db644cc4-da46-4e9e-a092-f91762ca1c6b",
      "name": "问答链",
      "type": "@n8n/n8n-nodes-langchain.chainRetrievalQa",
      "position": [
        -240,
        1600
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.5
    },
    {
      "id": "9e7ebe5e-a854-44dc-8cb3-ec1663121b93",
      "name": "Google Gemini聊天模型",
      "type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
      "position": [
        -300,
        1800
      ],
      "parameters": {
        "options": {},
        "modelName": "models/gemini-1.5-flash"
      },
      "credentials": {
        "googlePalmApi": {
          "id": "0p34rXqIqy8WuoPg",
          "name": "Google Gemini(PaLM) Api account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d7e29bec-2b8c-400c-b6d7-a82d7a2865a7",
      "name": "向量存储检索器",
      "type": "@n8n/n8n-nodes-langchain.retrieverVectorStore",
      "position": [
        -80,
        1820
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "e490e747-5395-4460-bdea-0781145f30b1",
      "name": "Qdrant 向量存储1",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
      "position": [
        -60,
        2020
      ],
      "parameters": {
        "options": {},
        "qdrantCollection": {
          "__rl": true,
          "mode": "list",
          "value": "ocr_mistral_test",
          "cachedResultName": "ocr_mistral_test"
        }
      },
      "credentials": {
        "qdrantApi": {
          "id": "iyQ6MQiVaF3VMBmt",
          "name": "QdrantApi account (Hetzner)"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "65261873-4ca5-4e23-bc65-220f971eb5b4",
      "name": "便签说明1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        1600
      ],
      "parameters": {
        "width": 500,
        "height": 120,
        "content": "## 步骤 4"
      },
      "typeVersion": 1
    },
    {
      "id": "ffbaabd0-7fd7-41db-bb71-4cccadf3e9c8",
      "name": "OpenAI 嵌入",
      "type": "@n8n/n8n-nodes-langchain.embeddingsOpenAi",
      "position": [
        -180,
        2160
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "4zwP0MSr8zkNvvV9",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "23053690-c978-4b05-be26-e94f88c9d92f",
      "name": "便签说明4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -480,
        100
      ],
      "parameters": {
        "color": 4,
        "width": 620,
        "height": 520,
        "content": "# 步骤 2"
      },
      "typeVersion": 1
    },
    {
      "id": "153a5098-56d1-4b7c-bb12-e6054db927a0",
      "name": "编辑字段",
      "type": "n8n-nodes-base.set",
      "position": [
        -100,
        880
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b413a226-0641-4ed8-9951-d17b6a6a9a4b",
              "name": "file_id",
              "type": "string",
              "value": "DRIVEFILE_ID"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "796f3ad4-e041-4af6-b3a5-72b3c3730c49",
      "name": "更新单个文件",
      "type": "@n8n/n8n-nodes-langchain.vectorStoreQdrant",
      "position": [
        700,
        980
      ],
      "parameters": {
        "mode": "insert",
        "options": {},
        "qdrantCollection": {
          "__rl": true,
          "mode": "list",
          "value": "negozio-emporio-verde",
          "cachedResultName": "negozio-emporio-verde"
        }
      },
      "credentials": {
        "qdrantApi": {
          "id": "iyQ6MQiVaF3VMBmt",
          "name": "QdrantApi account (Hetzner)"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "058c4929-ff59-41ca-8131-178e9038b354",
      "name": "便签说明2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -200,
        -580
      ],
      "parameters": {
        "color": 3,
        "width": 840,
        "height": 220,
        "content": "# 启用使用 Qdrant 对 RAG 系统中文档的完全或增量更新"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "630e34d7-6558-49c3-b861-520b33fd0f91",
  "connections": {
    "Wait": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Get files": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields3": {
      "main": [
        [
          {
            "node": "Download file",
            "type": "main",
            "index": 0
          },
          {
            "node": "Delete single file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download file": {
      "main": [
        [
          {
            "node": "Update single file",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download files": {
      "main": [
        [
          {
            "node": "Qdrant Vector Store",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [],
        [
          {
            "node": "Download files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Clear collection": {
      "main": [
        [
          {
            "node": "Get files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI": {
      "ai_embedding": [
        [
          {
            "node": "Qdrant Vector Store1",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI1": {
      "ai_embedding": [
        [
          {
            "node": "Qdrant Vector Store",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Embeddings OpenAI2": {
      "ai_embedding": [
        [
          {
            "node": "Update single file",
            "type": "ai_embedding",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader": {
      "ai_document": [
        [
          {
            "node": "Update single file",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Qdrant Vector Store": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Default Data Loader1": {
      "ai_document": [
        [
          {
            "node": "Qdrant Vector Store",
            "type": "ai_document",
            "index": 0
          }
        ]
      ]
    },
    "Qdrant Vector Store1": {
      "ai_vectorStore": [
        [
          {
            "node": "Vector Store Retriever",
            "type": "ai_vectorStore",
            "index": 0
          }
        ]
      ]
    },
    "Vector Store Retriever": {
      "ai_retriever": [
        [
          {
            "node": "Question and Answer Chain",
            "type": "ai_retriever",
            "index": 0
          }
        ]
      ]
    },
    "Google Gemini Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Question and Answer Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "Question and Answer Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recursive Character Text Splitter": {
      "ai_textSplitter": [
        [
          {
            "node": "Default Data Loader1",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    },
    "When clicking ‘Test workflow’": {
      "main": [
        [
          {
            "node": "Clear collection",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Recursive Character Text Splitter1": {
      "ai_textSplitter": [
        [
          {
            "node": "Default Data Loader",
            "type": "ai_textSplitter",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

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

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

高级 - 人工智能

需要付费吗?

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

工作流信息
难度等级
高级
节点数量29
分类1
节点类型15
难度说明

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

作者

Full-stack Web Developer based in Italy specialising in Marketing & AI-powered automations. For business enquiries, send me an email at info@n3w.it or add me on Linkedin.com/in/davideboizza

外部链接
在 n8n.io 查看

分享此工作流