
天天
这个攻略是 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,首次启动会比较慢
先设置一个管理员账户

登录后进入首页

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

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

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

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

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

点击前往文档

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

能看到我的所有文档了

到了这一步,因为目前的版本不支持模型的安装,我只好挪到了 [dify 的官网](https://cloud.dify.ai/signin)接着操作,前面的步骤都是一致的。
但官网的导入文档只能导入一个(需要花钱升级才让批量上传),所以我用的firecrawl 抓的开发者文档

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

点击进入 API

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

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

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

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

选择你的大模型,这里我用到 DeepSeek,主要配置是右侧的 http Request 节点
把这里的 Id,替换成自己的知识库 Id

请求头里,换成自己的 apikey

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

上面的 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": []
}
```
评论
1按照以上方式部署之后,AI agent好像并没有正确的调用知识库回答问题,是哪里配置的问题吗?