价格

项目总览

相关源文件

本页面内容基于以下源文件生成:

Dify 是一个开源的 LLM 应用开发平台,其直观的界面整合了 AI 工作流、RAG 管道、Agent 能力、模型管理、可观测性功能(包括 Opik、Langfuse 和 Arize Phoenix)等特性,帮助开发者快速从原型走向生产环境。该项目通过可视化画布降低 AI 应用开发门槛,同时为专业用户提供完整的 API 接口以集成到现有业务系统中。

项目简介与核心特性

Dify 定位为开源 LLM 应用开发平台,旨在解决 AI 应用从原型到生产的全流程问题。项目核心价值在于将复杂的 AI 能力封装为可视化组件,同时保持足够的灵活性以满足定制化需求。

核心功能模块

功能模块描述关键能力
Workflow可视化 AI 工作流构建在画布上拖拽编排节点,支持条件分支、循环等逻辑控制
模型支持多模型统一接入支持数百种商业/开源 LLM,包括 GPT、Mistral、Llama3 及任何 OpenAI API 兼容模型
Prompt IDE提示词开发环境可视化编写提示词、对比模型性能、添加 TTS 等增强功能
RAG Pipeline检索增强生成从文档摄取到检索的完整流程,开箱支持 PDF、PPT 等格式文本提取
Agent 能力智能代理构建基于 Function Calling 或 ReAct 定义 Agent,提供 50+ 内置工具
LLMOps运维监控监控分析应用日志和性能,基于生产数据持续优化提示词、数据集和模型
Backend-as-a-Service后端即服务所有功能提供对应 API,轻松集成到业务逻辑

根据 README.md:59-59,Dify 的核心定位是"开源 LLM 应用开发平台",其界面整合了 AI workflow、RAG pipeline、agent capabilities、model management、observability features 等能力。

README.md:89-111 详细列出了七大核心功能:Workflow(可视化工作流)、Comprehensive model support(全面模型支持)、Prompt IDE(提示词开发环境)、RAG Pipeline(检索增强生成管道)、Agent capabilities(智能代理能力)、LLMOps(运维监控)、Backend-as-a-Service(后端即服务)。

技术栈概览

层级技术选型版本/要求
前端框架Next.js-
前端包管理pnpm需要安装
后端语言Python-
后端包管理uvv1.3.0 起替代 poetry
容器化Docker + Docker Compose必需
数据库PostgreSQL / MySQL通过 Docker 部署
缓存Redis通过 Docker 部署
向量数据库Weaviate / Milvus / OpenSearch可切换

项目目录结构

text
1dify/
2├── api/                    # 后端 API 服务
3│   ├── .env               # 后端环境变量配置
4│   ├── tests/             # 测试用例(unit_tests/integration_tests)
5│   └── dev/               # 开发脚本
6├── web/                    # 前端 Web 服务
7│   ├── app/               # Next.js 应用目录
8│   │   ├── components/    # 可复用组件
9│   │   └── (commonLayout)/ # 通用布局路由
10│   ├── .env.local         # 前端环境变量配置
11│   └── i18n-config/       # 国际化配置
12├── docker/                 # Docker 部署配置
13│   ├── docker-compose.yaml        # 主部署文件
14│   ├── docker-compose.middleware.yaml # 中间件部署
15│   ├── .env               # Docker 环境变量
16│   └── certbot/           # SSL 证书管理
17└── dev/                    # 项目级开发脚本
18    ├── setup              # 初始化脚本
19    ├── start-api          # 启动后端
20    ├── start-web          # 启动前端
21    └── start-worker       # 启动异步任务

适用场景

  • 企业内部知识库:利用 RAG Pipeline 构建基于私有文档的问答系统
  • 客服机器人:通过 Agent 能力和工作流构建多轮对话系统
  • 内容生成平台:结合多模型支持和 Prompt IDE 快速迭代内容生成应用
  • AI 应用原型验证:使用可视化工作流快速验证业务场景可行性
  • 生产级 AI 服务:通过 LLMOps 监控和 Backend-as-a-Service API 集成到现有系统

系统架构与模块关系

Dify 采用前后端分离架构,通过 Docker Compose 编排多个服务组件。系统核心由 API 服务、Web 服务、Worker 服务和中间件(数据库、缓存、向量存储)组成。

正在加载图表渲染器...

架构要点说明

  1. API 服务:作为系统入口,处理所有同步 HTTP 请求,负责业务逻辑编排、权限校验和响应格式化
  2. Worker 服务:基于 Celery 的异步任务处理,执行文档索引、批量处理等耗时操作
  3. 中间件层:PostgreSQL 存储应用配置和用户数据,Redis 管理会话和缓存,Weaviate 提供向量检索能力
  4. 外部集成:通过统一接口对接多家 LLM 提供商,并支持将追踪数据导出到可观测性平台

README.md:89-111 提供了各功能模块的概览,支撑了架构图中后端服务层的核心能力划分。

部署方式概览

Dify 提供多种部署方式以满足不同场景需求:Docker Compose 快速部署、云服务直接使用、自托管社区版部署以及从源码开发部署。

Docker Compose 快速部署

这是最推荐的部署方式,适合快速体验和生产环境使用。根据 README.md:70-79,部署步骤如下:

bash
1cd dify
2cd docker
3cp .env.example .env
4docker compose up -d

部署完成后,通过浏览器访问 http://localhost/install 开始初始化流程。

docker/README.md:19-31 详细说明了 Docker 部署的完整流程:

  1. 环境准备:确保系统已安装 Docker 和 Docker Compose
  2. 环境配置:复制 .env.example.env 并根据需求修改配置
  3. 服务启动:执行 docker compose up 启动所有服务
  4. 向量数据库选择:通过设置 VECTOR_STORE 环境变量切换不同的向量数据库(milvus/weaviate/opensearch)
  5. SSL 证书配置:可选配置 Certbot 自动管理 HTTPS 证书

云服务与自托管版本

根据 README.md:114-119,Dify 提供两种使用方式:

部署方式特点适用场景
Dify Cloud零配置托管服务,沙箱计划包含 200 次 GPT-4 调用快速体验、小规模应用
Self-hosting Community Edition完全控制部署环境,支持自定义配置企业部署、数据敏感场景

部署架构流程

正在加载图表渲染器...

部署流程要点

  1. 系统要求:最低配置为 CPU 2 核、内存 4GiB(README.md:63-66
  2. 环境变量持久化:通过 .env 文件管理配置,确保升级时配置不丢失
  3. 向量数据库统一管理:所有向量数据库服务从单一 Docker Compose 文件管理
  4. 可选组件:Certbot 容器自动续期 SSL 证书,OpenTelemetry Collector 支持链路追踪

docker/README.md:19-31 提供了部署步骤的详细说明,支撑了流程图中从环境配置到服务启动的完整链路。

开发环境配置

对于需要深度定制或贡献代码的开发者,Dify 支持从源码部署开发环境。开发环境采用前后端分离架构,需要分别配置后端 API 服务和前端 Web 服务。

后端 API 服务配置

根据 api/README.md:5-55,后端服务在 v1.3.0 版本后将 poetry 替换为 uv 作为包管理器。配置流程如下:

bash
1# 1. 运行初始化脚本(复制环境文件并安装依赖)
2./dev/setup
3
4# 2. 检查并修改环境变量
5# 重点检查 api/.env, web/.env.local, docker/middleware.env
6# 务必生成 SECRET_KEY
7
8# 3. 启动中间件服务
9./dev/start-docker-compose
10
11# 4. 启动后端 API(自动执行数据库迁移)
12./dev/start-api
13
14# 5. 启动前端服务
15./dev/start-web
16
17# 6. 访问应用进行初始化
18# http://localhost:3000
19
20# 7. 启动 Worker 服务(异步任务和调度任务)
21./dev/start-worker
22
23# 8. 可选:启动 Celery Beat(定时任务)
24./dev/start-beat

关键环境变量说明

变量名用途注意事项
SECRET_KEY应用密钥必须使用 openssl rand -base64 42 生成
COOKIE_DOMAINCookie 域名前后端不同子域名时需设置为顶级域名

前端 Web 服务配置

根据 web/README.md:11-49,前端服务依赖 Node.js 和 pnpm:

bash
1# 安装依赖
2pnpm install
3
4# 配置环境变量
5cp .env.example .env.local

核心环境变量

变量名说明示例值
NEXT_PUBLIC_DEPLOY_ENV部署环境DEVELOPMENT / PRODUCTION
NEXT_PUBLIC_EDITION部署版本SELF_HOSTED
NEXT_PUBLIC_API_PREFIXConsole API 基础 URLhttp://localhost:5001/console/api
NEXT_PUBLIC_PUBLIC_API_PREFIXWeb App API 基础 URLhttp://localhost:5001/api
NEXT_PUBLIC_COOKIE_DOMAINCookie 域名留空表示使用当前域名

开发环境启动时序

正在加载图表渲染器...

测试与代码质量

后端测试通过 uv run pytest 执行,支持单元测试和集成测试分离:

bash
1cd api
2uv sync --group dev           # 安装开发依赖
3uv run pytest                 # 运行所有测试
4uv run pytest tests/unit_tests/         # 仅单元测试
5uv run pytest tests/integration_tests/  # 仅集成测试

代码质量工具包括:

  • ruff check --fix:自动修复 lint 问题
  • ruff format:代码格式化
  • basedpyright:类型检查

api/README.md:5-55 详细描述了后端服务的完整配置流程,包括脚本使用、环境变量配置和服务启动顺序。

web/README.md:10-49 提供了前端服务的依赖安装和环境变量配置说明。

社区与生态

Dify 拥有活跃的开源社区和完善的贡献体系,支持多语言国际化。

社区渠道

根据 README.md:208-214,Dify 提供多种沟通渠道:

渠道用途适用场景
GitHub Discussion分享反馈和提问功能讨论、使用经验分享
GitHub IssuesBug 报告和功能提案问题追踪、功能请求
Discord应用展示和社区交流实时讨论、社区活动
X(Twitter)应用展示和社区交流公告发布、案例分享
LinkedIn专业网络交流企业合作、职业发展

贡献指南

根据 README.md:201-206,项目欢迎代码贡献和社区支持:

  1. 代码贡献:参考 CONTRIBUTING.md 了解贡献流程
  2. 社区支持:通过社交媒体和会议分享 Dify 来支持项目发展
  3. 国际化贡献:项目正在寻找帮助翻译到中文和英文以外语言的贡献者,详情参见 i18n README

许可证

Dify 采用基于 Apache 2.0 的 Dify Open Source License,包含额外条件。这意味着用户可以自由使用、修改和分发,但需遵守许可证中的特定条款。

报告阅读路线图

本技术分析报告包含多个章节,以下是推荐阅读顺序和章节关系:

正在加载图表渲染器...

章节导航说明

  1. 项目总览(当前章节):提供项目整体介绍、技术栈、部署方式和社区信息
  2. 系统架构:深入分析各模块职责边界、依赖关系和设计决策
  3. 数据流分析:追踪关键业务场景的数据流转和状态变化
  4. API 设计:详细说明 RESTful 接口设计、认证授权和错误处理
  5. 数据模型:解析核心实体关系、数据库 Schema 和索引策略
  6. 核心功能:深入 Workflow、RAG、Agent 等核心模块的实现细节
  7. 部署指南:生产环境部署的最佳实践和运维建议

项目核心能力量化

指标数值说明
支持的 LLM 提供商数十家包括 OpenAI、Anthropic、Mistral 等
支持的模型数量数百种覆盖商业和开源模型
内置 Agent 工具50+包括 Google Search、DALL·E、Stable Diffusion 等
支持的文档格式多种PDF、PPT 等常见格式开箱支持
可观测性集成3+Opik、Langfuse、Arize Phoenix
国际化语言10+包括中文、英文、日文、韩文等
Docker Pulls百万级反映社区使用规模
GitHub Stars高增长活跃的开源项目

根据 README.md:89-111 的功能描述,Dify 在模型支持、Agent 工具、RAG 能力等方面提供了丰富的开箱即用功能,降低了 AI 应用开发的门槛。