n8n 实操攻略 19:如何给 n8n 接入 dify 知识库

10 months ago

这个攻略是 dify 和 n8n 结合的应用,Dify 和 n8n 都是流行的自动化和工作流工具,但它们的侧重点和使用场景有明显区别:

核心定位

Dify 是一个专注于 AI 应用开发的平台,主要用于构建基于大语言模型(LLM)的应用。它提供可视化的工作流编排,让开发者能够快速搭建 AI 聊天机器人、知识库问答系统、AI 工作流等应用。

https://appstore.lazycat.cloud/#/shop/detail/dev.libr.dify

n8n 是一个通用的工作流自动化平台,类似于 Zapier 或 Make(原 Integromat),主要用于连接各种应用和服务,实现业务流程自动化。

https://appstore.lazycat.cloud/#/shop/detail/cloud.lazycat.app.n8n

主要区别

使用场景

  • Dify:构建 AI 驱动的应用,如智能客服、内容生成工具、数据分析助手等
  • n8n:自动化日常任务,如数据同步、邮件自动化、社交媒体管理、CRM 集成等

技术特点

  • Dify:内置 LLM 管理、向量数据库、知识库管理、prompt 工程工具等 AI 相关功能
  • n8n:提供 400+ 预建集成节点,支持 webhook、定时任务、复杂的条件逻辑等

目标用户

  • Dify:AI 应用开发者、产品经理、想要快速搭建 AI 应用的团队
  • n8n:运营人员、自动化工程师、需要集成多个系统的企业

选择建议

如果你的需求是构建 AI 相关应用,特别是需要集成 ChatGPT、Claude 等大模型的场景,Dify 会更合适。

如果你需要的是连接各种 SaaS 工具、数据库、API 来实现业务流程自动化,n8n 会是更好的选择。

两者也可以结合使用:用 Dify 构建 AI 能力,通过 API 暴露出来,然后在 n8n 中调用这些 AI 能力,实现更复杂的自动化工作流。

如何构建

在懒猫商店中,打开 dify,首次启动会比较慢

先设置一个管理员账户

image.png

登录后进入首页

image.png

点击知识库,创建一个新的知识库

image.png

这里,可以导入自己的文档。

image.png

我导入了懒猫的开发者文档,方便移植应用 点击下一步

image.png

这里默认是 经济,先不要切换到高级,高级要设置模型,但目前用不了

image.png

点击 保存并处理,它就会处理你上传的文件了

image.png

点击前往文档

image.png

知识库的名称可以改一下,方便记忆

image.png

能看到我的所有文档了

image.png

到了这一步,因为目前的版本不支持模型的安装,我只好挪到了 dify 的官网接着操作,前面的步骤都是一致的。

但官网的导入文档只能导入一个(需要花钱升级才让批量上传),所以我用的firecrawl 抓的开发者文档

image.png

在这一步就可以选择模型了

image.png

点击进入 API

image.png

在右上角可以拿到 API 密钥,先保存到本地,待会要用

image.png

进入知识库,在这里可以继续添加文件

image.png

在这里可以看到红框内的是我们的知识库 Id

image.png

到这里 dify 的知识库已经完成了,下面我们要在 n8n 中调用这个知识库。

在 n8n中新建一个工作流

image.png

选择你的大模型,这里我用到 DeepSeek,主要配置是右侧的 http Request 节点

把这里的 Id,替换成自己的知识库 Id

image.png

请求头里,换成自己的 apikey

image.png

点击执行,就可以尽情的向他提问了。 比如问它怎么移植应用,

image.png

上面的 json 文件我放在这里了,抄作业的同学可以参考:

{
  "name": "知识库",
  "nodes": [
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "typeVersion": 1.3,
      "position": [
        -256,
        0
      ],
      "id": "1ed033dc-26cf-41dc-82a1-589b62687b76",
      "name": "When chat message received",
      "webhookId": "c484e9fb-0be4-42dd-bd2b-f9ca059840c0"
    },
    {
      "parameters": {
        "promptType": "define",
        "text": "=先优先查看文档,尽量用文档的东西回答问题,问题:{{ $json.chatInput }}",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 2.2,
      "position": [
        -48,
        -16
      ],
      "id": "a0ea8a64-3f7d-4b6b-901b-d6e14ae85f49",
      "name": "AI Agent"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatDeepSeek",
      "typeVersion": 1,
      "position": [
        -48,
        160
      ],
      "id": "c40685f3-fbbd-46fd-9565-ccaf3f85e0fe",
      "name": "DeepSeek Chat Model",
      "credentials": {
        "deepSeekApi": {
          "id": "vfn66fhHzd6mF6j1",
          "name": "DeepSeek account"
        }
      }
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.dify.ai/v1/datasets/这里写你的知识库id/retrieve",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Bearer 这里写你的知识库api key"
            },
            {
              "name": "Content-Type",
              "value": "application/json"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"query\": \" {{ $json.chatInput }}  \",\n  \"retrieval_model\": {\n    \"search_method\": \"hybrid_search\",\n    \"top_k\": 5,\n    \"score_threshold_enabled\": false,\n    \"reranking_enable\": false\n  }\n}\n",
        "options": {
          "redirect": {
            "redirect": {}
          }
        }
      },
      "type": "n8n-nodes-base.httpRequestTool",
      "typeVersion": 4.2,
      "position": [
        112,
        192
      ],
      "id": "ac7cff2a-0b70-4e37-9ea1-21ff0d9109b7",
      "name": "HTTP Request"
    }
  ],
  "pinData": {},
  "connections": {
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "DeepSeek Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "fcca2fde-d07b-41fc-9ec3-d54e42f774d7",
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "ff06cd56528164550e83a0b0bc9f32963f8355543707a1ed77847e72afe71d53"
  },
  "id": "zL5dlqy4K6nBeBsx",
  "tags": []
}
作者
天天