Dify 项目介绍
Dify 项目介绍
Dify 是一个开源 LLM 应用开发平台。其直观的界面结合了 AI 工作流、RAG 管线、Agent 能力、模型管理和可观测性功能,让你能够从原型快速进入生产环境。
项目定位
开源 LLM 应用开发平台,通过可视化工作流编辑器 + 统一模型抽象 + 插件化架构,让开发者和企业能够快速构建、调试和部署 AI 应用。
核心能力
- 可视化工作流:在画布上编排 AI 工作流,支持 30+ 节点类型(LLM、条件分支、代码执行、HTTP 请求、知识库检索等),内置 Graphon 图引擎驱动执行。
- 全面的模型支持:无缝集成数百种专有/开源 LLM,覆盖 GPT、Mistral、Llama3 及任何 OpenAI API 兼容模型,支持负载均衡与故障转移。
- Prompt IDE:直观的界面用于编写提示词、比较模型性能,以及为聊天应用添加文本转语音等附加功能。
- RAG 管线:完整的文档导入到检索的能力链,开箱即用支持 PDF、PPT 等常见文档格式的文本提取。
- Agent 能力:支持基于 Function Calling 和 ReAct 两种模式的 Agent,内置 50+ 工具,支持 MCP 协议、自定义工具和 Plugin 工具。
- LLMOps 可观测性:监控和分析应用日志与性能,支持 Opik、Langfuse、Arize Phoenix 等可观测性后端。
- Backend-as-a-Service:所有功能均配备对应 API,可轻松集成到自有业务逻辑。
技术栈
| 组件 | 技术 |
|---|---|
| 后端 API | Python 3.12 + Flask + Gunicorn + gevent |
| Agent 运行时 | Go (dify-agent) + Agenton 框架 |
| 前端 Web | Next.js + React + TypeScript + TailwindCSS |
| 工作流引擎 | Graphon(外部图引擎库,v0.4.0) |
| 任务队列 | Celery + Redis |
| 数据库 | PostgreSQL + SQLAlchemy ORM |
| 包管理 | uv(Python)、pnpm(Node.js) |
| 部署 | Docker Compose / Kubernetes |
架构概览
快速体验
通过 Docker Compose 启动 Dify 服务(最低要求:CPU >= 2 核,RAM >= 4 GiB):
cd dify/dockercp .env.example .envdocker compose up -d启动后在浏览器中访问 http://localhost/install 完成初始化配置。
源码结构
dify/├── api/ # Python 后端 (Flask)│ ├── core/ # 核心业务模块│ │ ├── app/ # 应用类型与运行器│ │ ├── workflow/ # 工作流节点定义│ │ ├── agent/ # Agent 运行时(Python 侧)│ │ ├── rag/ # RAG 管线(索引 + 检索)│ │ ├── tools/ # 工具系统(内置 / MCP / 插件)│ │ ├── mcp/ # MCP 客户端/服务端实现│ │ ├── plugin/ # 插件系统│ │ └── model_manager.py # 多模型管理与负载均衡│ ├── services/ # 业务服务层│ ├── controllers/ # HTTP 路由层│ ├── models/ # SQLAlchemy 数据模型│ ├── tasks/ # Celery 异步任务│ └── extensions/ # 基础设施扩展├── web/ # Next.js 前端├── dify-agent/ # Agent 运行时 (Go + Agenton)├── docker/ # Docker Compose 部署配置├── packages/ # 共享 npm 包 (UI 组件库等)└── sdks/ # 客户端 SDK教程导读
本教程分为 AI 应用通用知识 和 编程核心技术 两个部分:
AI 教程(ai/ 目录)
从 Dify 源码中抽象出的行业通用知识,包括:
- Agent 双模式:Function Calling 与 ReAct 的实现策略
- 工具调用系统:多来源工具注册、MCP 协议集成、插件化工具链
- RAG 管线:文档处理、向量化、检索与重排的可插拔架构
- 多模型路由:统一模型抽象层、负载均衡与故障转移
- 工作流引擎:图驱动的执行模型与节点工厂模式
- MCP 协议集成:客户端与服务端的双向实现
Dev 教程(dev/ 目录)
Dify 的工程实践和架构决策,包括:
- 三层架构设计:Controller → Service → Core 的分层模式
- DDD 领域驱动设计:领域边界、聚合根与仓储模式
- 前后端分离:Next.js + Flask + Go 异构协同
- 插件化架构:VDB/Trace/Tool 三类插件的注册与发现机制
- 异步任务编排:Celery + Redis 的任务分发与故障恢复
- 配置管理:分层配置体系与环境变量管理
通用知识引用
本教程的 AI 知识点引用 common/ 目录下的通用知识教程,包括:
版本说明:本教程基于 Dify 1.14.2(commit
7f392b69)分析。项目更新后内容可能过时。