agentic_huge_data_base / wiki
页面 Dify · 1 Dify 介绍·DeepWiki 中文全文译文

1 · Dify 介绍(Introduction to Dify)

应用编排与外部知识接入 · 聚焦本章的模块关系、源码依据与实现要点。

项目Dify 章节1 状态全文译文 模块系统架构、安装与启动、存储与持久化、工作流与编排
源码线索
  • README.md
  • api/.env.example
  • api/Dockerfile
  • api/app.py
  • api/app_factory.py
  • api/configs/feature/__init__.py
  • api/configs/middleware/__init__.py
  • api/configs/observability/__init__.py
  • api/configs/observability/otel/otel_config.py
  • api/configs/packaging/__init__.py
模块标签
  • 系统架构
  • 安装与启动
  • 存储与持久化
  • 工作流与编排
  • 检索、召回与索引

章节正文

Dify 介绍

Dify 简介

相关源文件

本章引用的主要源码文件:

  • README.md
  • api/.env.example
  • api/Dockerfile
  • api/app.py
  • api/app_factory.py
  • api/configs/feature/__init__.py
  • api/configs/middleware/__init__.py
  • api/configs/observability/__init__.py
  • api/configs/observability/otel/otel_config.py
  • api/configs/packaging/__init__.py
  • api/controllers/console/datasets/datasets.py
  • api/core/rag/datasource/vdb/vector_factory.py
  • api/core/rag/datasource/vdb/vector_type.py
  • api/extensions/ext_compress.py
  • api/extensions/ext_otel.py
  • api/extensions/otel/instrumentation.py
  • api/pyproject.toml
  • api/tests/unit_tests/configs/test_dify_config.py
  • api/tests/unit_tests/core/workflow/graph_engine/test_table_runner.py
  • api/uv.lock
  • docker/.env.example
  • docker/README.md
  • docker/docker-compose-template.yaml
  • docker/docker-compose.middleware.yaml
  • docker/docker-compose.yaml
  • docker/envs/core-services/shared.env.example
  • docker/envs/infrastructure/nginx.env.example
  • docker/envs/security.env.example
  • docker/nginx/conf.d/default.conf.template
  • web/.env.example
  • web/Dockerfile
  • web/app/layout.tsx
  • web/config/index.ts
  • web/docker/entrypoint.sh
  • web/package.json
  • web/types/feature.ts

目的与范围

本文档对 Dify 平台进行高层级介绍,涵盖其目的、架构、核心组件和部署选项。它是技术入门的入口,将高层级功能映射到底层代码库结构。有关详细的技术架构,请参阅系统架构总览

来源: README.md:1-200, api/Dockerfile:1-123

什么是 Dify?

Dify 是一个用于开发大语言模型(LLM)应用的开源平台。它将 AI 智能体工作流、检索增强生成(RAG)管线、智能体能力、模型管理和可观测性功能整合到一个统一的开发环境中。该平台通过可视化界面和编程式 API 同时支持快速原型设计和生产部署。

主要特性:

  • 多租户:基于工作空间的隔离,并支持基于角色的访问控制(RBAC)。
  • 模型无关:通过统一接口支持来自数十家提供商的 100 多种大语言模型(LLM)api/pyproject.toml:62-100
  • 可扩展:支持插件系统和自定义工具 docker/docker-compose-template.yaml:131-150
  • 生产就绪:内置可观测性(Opik、Langfuse、Arize Phoenix)和配额管理 api/pyproject.toml:93-100

来源: README.md:63-114, api/pyproject.toml:1-10

版本类型

Dify 提供多种版本以满足不同的运维需求:

版本描述部署方式
Dify Cloud托管式 SaaS 产品,基础设施由平台管理https://cloud.dify.ai
自托管版(社区版)面向本地或私有云部署的开源版本Docker Compose、K8s
企业版包含单点登录(SSO)和自定义品牌等高级功能自托管或托管

来源: README.md:4-8, api/Dockerfile:33-34

高层级服务架构

下图展示了服务拓扑结构,以及逻辑服务与代码实体/Docker 镜像之间的映射关系。

Dify · 高层级服务架构 · 图 1
Dify · 高层级服务架构 · 图 1

架构说明:

  1. 单一镜像,多种角色langgenius/dify-api 镜像用于 apiworkerworker_beat 服务,通过 MODE 环境变量进行区分 api/Dockerfile:1-123
  2. 内部通信:API 服务通过内部 Docker 网络与 plugin_daemon 通信,使用 PLUGIN_DIFY_INNER_API_KEY docker/docker-compose.middleware.yaml:150-150
  3. 沙箱隔离sandbox 服务执行代码,并通过 ssrf_proxy 实现受限的网络访问 docker/docker-compose.middleware.yaml:118-119

来源: docker/docker-compose.yaml:1-150, docker/docker-compose-template.yaml:1-150, docker/docker-compose.middleware.yaml:1-130

核心服务组件

API 服务(api

基于 Flask 构建的主应用服务器,为管理控制台和终端用户应用提供 RESTful 端点。

  • 入口点:在 Dockerfile 中通过 FLASK_APP=app.py 定义 api/Dockerfile:33-33
  • 配置:使用 BaseSettings 实现模块化配置,包括安全和执行相关配置 api/configs/feature/__init__.py:20-101
  • 进程管理器:默认使用 Gunicorn 配合 gevent 工作进程 docker/.env.example:55-56
工作进程服务(worker

一个 Celery 工作进程,用于处理来自 Redis 队列的异步任务。

  • 任务类型:数据集索引、文档处理和工作流执行 docker/docker-compose-template.yaml:70-71
  • 扩缩容:通过 CELERY_WORKER_AMOUNTCELERY_AUTO_SCALE 控制 docker/.env.example:63-64
Web 服务(web

一个 Next.js 前端应用,提供用于构建 AI 应用的可视化界面。

  • 框架:Next.js 配合 React 支持 web/package.json:119-126
  • 状态管理:使用 zustandjotai@tanstack/react-query web/package.json:153-154, web/package.json:105-105, web/package.json:78-78
  • 构建系统:多阶段 Docker 构建 web/package.json:27-28
沙箱服务(sandbox

一个安全环境,用于在工作流中执行不受信任的代码(Python/Node.js)。

  • 实现:基于 Go 的服务,使用 langgenius/dify-sandbox 镜像 docker/docker-compose.middleware.yaml:106-106
  • 安全性:通过 API_KEYENABLE_NETWORK 开关进行控制 docker/docker-compose.middleware.yaml:114-117

来源: docker/docker-compose-template.yaml:23-160, web/package.json:1-160, api/configs/feature/__init__.py:103-192

数据层组件

主数据库

Dify 主要使用 PostgreSQL 15 存储结构化数据 docker/docker-compose.middleware.yaml:3-4MySQL 8.0 作为备选方案也受支持 docker/docker-compose.middleware.yaml:43-44

缓存和消息队列

Redis 6 作为 Celery 的中央消息代理和高性能缓存 docker/docker-compose.middleware.yaml:83-84

向量数据库

Dify 通过工厂模式抽象向量存储,支持 23 种以上的实现 api/pyproject.toml:62-91

  • 关键类VectorFactory api/core/rag/datasource/vdb/vector_factory.py:12-12
  • 默认值:Weaviate api/.env.example:205-205
  • 支持的数据库:Milvus、Qdrant、PGVector、Chroma、Elasticsearch 等 api/pyproject.toml:62-91
存储后端

文件(文档、图片、应用导出)通过 Apache OpenDAL 或原生云提供商处理。

  • 默认值:使用 fs 方案的 opendal api/.env.example:111-115
  • 选项:S3、Azure Blob、阿里云 OSS、Google Storage 等 api/.env.example:117-195

来源: api/pyproject.toml:185-215, api/.env.example:87-215

配置系统

Dify 使用由环境变量和 Pydantic 模型驱动的分层配置系统。

Dify · 配置系统 · 图 2
Dify · 配置系统 · 图 2
配置类职责文件路径
SecurityConfig认证令牌、密钥、速率限制api/configs/feature/__init__.py:20-76
AppExecutionConfig执行超时、活跃请求数api/configs/feature/__init__.py:78-101
CodeExecutionSandboxConfig沙箱端点和限制api/configs/feature/__init__.py:103-192
HostedServiceConfig托管服务配置api/configs/feature/hosted_service.py:1-20

来源: api/configs/feature/__init__.py:1-250, docker/.env.example:1-200

部署选项

Docker Compose(推荐)

自托管的主要方式。

cd docker
cp .env.example .env
docker compose up -d

来源: README.md:74-81, docker/docker-compose.yaml:1-50

本地开发
  • 后端:使用 uv 管理 Python 依赖 api/pyproject.toml:101-103
  • 前端:使用 pnpm web/package.json:38-38
  • 包管理:通过 uv.lockpackage.json 管理 api/uv.lock:1-50, web/package.json:1-10

来源: api/pyproject.toml:1-175, web/package.json:1-55

系统要求

组件最低规格
CPU>= 2 核
内存>= 4 GiB
操作系统Linux / macOS / Windows(通过 Docker)
Python3.12
Node.js22

来源: README.md:67-70, api/pyproject.toml:4, api/Dockerfile:55-56