Dify 开源 LLM 应用开发平台
bash git clone https://github.com/langgenius/dify.git cd dify/docker
3. **启动服务**
```bash
docker compose up -d
服务启动后,通过浏览器访问 http://你的服务器IP 即可进入初始化页面。设置管理员邮箱和密码后就能使用。
-
常用管理命令
- 查看日志:
docker compose logs -f - 停止服务:
docker compose down - 更新版本:先
git pull拉取最新代码,再重新docker compose up -d
- 查看日志:
其他安装方式
- 云平台一键部署:Dify 官方支持在 AWS、Azure、阿里云等主流云平台上快速部署。
- Kubernetes 部署:适合生产环境的大规模集群部署,官方提供 Helm Chart。
- 本地开发模式:开发者可以克隆源码后,使用
docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up开启热重载开发。
Dify 平台核心概念
初次进入 Dify,你需要理解几个关键设计,它们是构建一切应用的基础。
1. 应用(App)
Dify 中的应用类似于一个完整的项目,包含了模型配置、提示词、知识库和发布渠道等。目前支持四种应用类型:
- 聊天助手:一问一答式对话,支持上下文记忆。
- 文本生成:输入一段文字,模型直接输出结果,如摘要、翻译等。
- Agent 智能体:具备工具调用和推理能力,可自主完成复杂任务。
- 工作流:通过画布串联多个节点(LLM、代码、条件分支等),构建复杂业务流。
2. 知识库(Knowledge)
知识库是 RAG 能力的核心。你可以上传 PDF、Word、TXT、网页等文档,Dify 会自动完成分段、向量化并存入向量数据库。在应用配置中关联知识库后,模型回答时会自动检索相关段落作为上下文,大幅提升准确度。
3. 模型供应商(Model Provider)
在「设置 - 模型供应商」中,你可以添加 OpenAI、Azure OpenAI、本地部署的 Ollama 模型等。对于每款模型,可以配置独立的 API Key 和参数。
4. 工具(Tools)
工具是 Agent 与外部世界交互的接口。Dify 内置了 Google 搜索、DALL·E 绘画、代码执行等工具,也支持自定义 API 工具。你可以为 Agent 绑定多个工具,使其能查询天气、发送邮件、操作数据库等。
构建你的第一个应用:知识库聊天机器人
下面以最常用的「聊天助手+知识库」为例,演示如何从零创建一个能回答企业文档内容的 AI 助手。
第一步:创建知识库
- 点击顶部导航 「知识库」 → 「创建知识库」。
- 输入知识库名称,例如“产品手册知识库”。
- 上传你的文档,支持批量上传多种格式。
- 选择分段方式与索引策略(默认自动分段即可满足多数场景)。
- 点击保存并等待处理完成,通常几秒到几分钟不等(取决于文档大小)。
第二步:创建聊天助手
- 进入 「工作室」,点击 「从应用模板创建」 或 「创建应用」,选择 「聊天助手」。
- 在编排界面中,填写应用名称和描述。
- 在 「上下文」 区域,点击 「添加」,选择刚才创建的知识库。
- 在 「系统提示词」 框中设定助手的行为,例如:
你是一个专业的产品咨询助手,所有回答必须严格基于给定的参考文档,若文档未提及则明确告知用户。请用友好、简洁的中文回复。 - 点击右上角 「发布」,完成发布。
第三步:测试与发布
点击发布按钮旁边的「预览」即可在线测试。你可以提问文档相关内容,观察助手是否引用了知识库。效果满意后,可以:
- 发布为 WebApp:获得一个可分享的网页链接。
- 嵌入网站:复制原生嵌入代码,将对话气泡集成到你的官网。
- 访问 API:在「API 管理」中生成密钥,供其他系统调用。
深入工作流:打造自动化流程
对于更复杂的业务场景,推荐使用工作流(Workflow)。它是一个以节点为单位的编排画布,支持条件分支、循环、变量传递等。
工作流核心节点
- LLM 节点:配置模型和提示词,负责处理语言任务。
- 知识检索节点:从指定知识库中召回相关内容。
- 代码节点:可运行 Python/JavaScript 代码片段,进行数据转换或调用第三方库。
- HTTP 请求节点:发送 API 请求,获取外部数据。
- 条件分支:根据字段值走向不同处理路径。
- 变量聚合:将多个输入合并为一个多模态列表。
示例:自动分析客户邮件并回复
假设你需要一个自动处理客户邮件的流程:
- 开始节点:接收邮件正文作为输入。
- LLM 分类:判断邮件是「投诉」、「咨询」还是「其他」。
- 条件分支:
- 若为投诉,调用 HTTP 请求节点发送工单到内部系统,并用 LLM 生成安抚回复。
- 若为咨询,从知识库检索对应知识,再由 LLM 整合答案。
- 若为其他,转接人工,并记录日志。
- 结束节点:输出最终回复内容。
整个流程无需编写后端代码,全部通过可视化配置完成。
API 对接与多端发布
Dify 为每个应用自动生成完善的 RESTful API,你可以方便的将 AI 能力集成到自己的产品中。
使用 API 调用应用
在应用的「API 管理」中,创建一个 Access Token 作为请求凭证。然后使用以下接口发送对话消息:
curl -X POST 'https://your-dify-domain/v1/chat-messages' \
--header 'Authorization: Bearer {api_key}' \
--header 'Content-Type: application/json' \
--data-raw '{
"inputs": {},
"query": "用户提问的内容",
"response_mode": "streaming",
"conversation_id": "",
"user": "user-identifier"
}'