跳转到内容

Dify 项目介绍

Dify 项目介绍

Dify 是一个开源 LLM 应用开发平台。其直观的界面结合了 AI 工作流、RAG 管线、Agent 能力、模型管理和可观测性功能,让你能够从原型快速进入生产环境。

项目定位

开源 LLM 应用开发平台,通过可视化工作流编辑器 + 统一模型抽象 + 插件化架构,让开发者和企业能够快速构建、调试和部署 AI 应用。

核心能力

  1. 可视化工作流:在画布上编排 AI 工作流,支持 30+ 节点类型(LLM、条件分支、代码执行、HTTP 请求、知识库检索等),内置 Graphon 图引擎驱动执行。
  2. 全面的模型支持:无缝集成数百种专有/开源 LLM,覆盖 GPT、Mistral、Llama3 及任何 OpenAI API 兼容模型,支持负载均衡与故障转移。
  3. Prompt IDE:直观的界面用于编写提示词、比较模型性能,以及为聊天应用添加文本转语音等附加功能。
  4. RAG 管线:完整的文档导入到检索的能力链,开箱即用支持 PDF、PPT 等常见文档格式的文本提取。
  5. Agent 能力:支持基于 Function Calling 和 ReAct 两种模式的 Agent,内置 50+ 工具,支持 MCP 协议、自定义工具和 Plugin 工具。
  6. LLMOps 可观测性:监控和分析应用日志与性能,支持 Opik、Langfuse、Arize Phoenix 等可观测性后端。
  7. Backend-as-a-Service:所有功能均配备对应 API,可轻松集成到自有业务逻辑。

技术栈

组件技术
后端 APIPython 3.12 + Flask + Gunicorn + gevent
Agent 运行时Go (dify-agent) + Agenton 框架
前端 WebNext.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):

Terminal window
cd dify/docker
cp .env.example .env
docker 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)分析。项目更新后内容可能过时。