跳转至

54. Dify 低代码 AI 应用平台

一句话说明:Dify 是一个开源的低代码 AI 应用开发平台,让你通过拖拽界面快速搭建 RAG 知识库问答、Agent 智能体、工作流等 AI 应用,不用写代码就能从原型到生产上线。


1. 什么是 Dify?

白话解释:想象你要开一家奶茶店,传统方式是自己买设备、调配方、一杯一杯手工做(写代码)。Dify 就像一台全自动奶茶机——你只需要在触摸屏上选口味、甜度、加料,按一下就出杯(拖拽配置就能生成 AI 应用)。

技术定义:Dify(Do It For You)是由 LangGenius 团队开发的开源 LLM 应用开发平台,提供可视化的 Prompt 编排、RAG 管道、Agent 框架、模型管理和 LLMOps 能力。

关键数据(截至 2026 年 5 月,来自 GitHub API 实时查询):

指标数据
最新版本v1.14.0(2026-04-29 发布)
GitHub Stars139,891
Forks21,944
开源协议Apache 2.0 / 商业许可
主要语言Python(后端) + TypeScript(前端)
部署方式Docker Compose / 源码 / Dify Cloud

v1.14.0 新特性亮点: - 协作编辑:多人同时编辑同一个工作流,类似 Google Docs 的实时协作 - Human-in-the-loop(HITL):Service API 支持人工审核介入流程 - MCP(Model Context Protocol)工具改进:修复 OAuth、元数据刷新等问题 - 插件系统增强:自动升级策略、本地安装器优化


2. Dify vs LangChain:代码 vs 低代码

白话类比:LangChain 是一套乐高积木(Python 库),你需要自己写代码拼装;Dify 是一个乐高拼装桌面游戏,拖拽模块就能拼好。

对比维度DifyLangChain
使用方式浏览器拖拽界面(低代码)Python/JS 代码(纯代码)
上手难度低,会点鼠标就行高,需要编程基础
灵活性中等,受限于平台提供的组件极高,可以自定义任何逻辑
RAG 搭建上传文档 → 自动分块 → 立刻可用手写代码加载文档 → 分块 → 向量化 → 检索
部署方式Docker 一键部署,自带 Web 界面需要自己写 API 和前端
适合谁产品经理、生信研究者、不想写前端的开发者需要深度定制的后端开发者
可视化内置工作流画布、Prompt 调试器需要搭配 LangSmith 等外部工具
社区生态140k+ Stars,插件市场100k+ Stars,Python 生态丰富

结论:如果你是生信工程师,想快速搭建一个文献问答系统或分析报告生成器,Dify 是首选;如果你需要把 LLM 嵌入到自己的 Python 管线中深度定制,选 LangChain。


3. Dify 核心功能详解

3.1 RAG 知识库(Retrieval-Augmented Generation)

白话:让 AI 先"读书"再"回答"。你上传自己的文档(论文、手册),AI 回答问题时会先从文档里找到相关段落,再用大模型组织语言回答。

  • 支持格式:PDF、DOCX、TXT、Markdown、HTML、CSV、PPT 等
  • 自动分块(Chunking):按段落或固定长度切割文档
  • 向量化存储:内置 Weaviate/Qdrant/pgvector 等向量数据库
  • 检索模式:向量检索、全文检索、混合检索

3.2 Agent 智能体工作流

白话:AI 不再只是"一问一答",而是能像员工一样按流程办事——先查资料,再分析,最后写报告。

  • 支持 Function Calling 和 ReAct 两种 Agent 模式
  • 50+ 内置工具(Google 搜索、DALL-E、Stable Diffusion、WolframAlpha 等)
  • 可自定义 API 工具
  • v1.14.0 新增 MCP(Model Context Protocol)工具支持

3.3 Prompt IDE(提示词工程工作台)

白话:一个专门调试 AI 提示词的实验室,可以对比不同模型、不同提示词的效果。

  • 可视化 Prompt 编辑器
  • 变量插入(如 {{user_question}}
  • 多模型对比:同一个问题,GPT-4 和 Claude 的回答并排展示
  • 附加功能:文本转语音(TTS)集成

3.4 对话应用

白话:一键生成一个 ChatGPT 风格的对话界面,可以分享给别人用。

  • 对话式(Chatbot)和文本补全(Completion)两种模式
  • 内置用户会话管理
  • 支持嵌入网页(iframe)
  • 可配置开场白、建议问题

3.5 文本生成应用

白话:像填表一样输入几个参数,AI 自动生成一篇完整的文本(报告、邮件、摘要等)。

  • 表单式输入界面
  • 批量运行支持
  • 结果可导出

3.6 工作流编排(Workflow)

白话:像流程图一样拖拽节点,定义 AI 的工作步骤。比如:用户提问 → 知识库检索 → LLM 回答 → 人工审核 → 返回结果。

  • 可视化画布编辑器
  • 节点类型:LLM、知识检索、代码执行、条件分支、HTTP 请求、模板转换等
  • 支持并行分支和循环
  • v1.14.0 支持多人协作编辑工作流

4. Docker 部署教程(完整命令 + 注释)

4.1 环境要求

# 最低配置要求:
# CPU >= 2 核
# 内存 >= 4 GB
# 磁盘 >= 20 GB(Docker 镜像 + 数据)
# 操作系统:Linux / macOS / Windows (WSL2)

4.2 安装 Docker(如果还没装)

# Ubuntu 安装 Docker(已安装可跳过)
sudo apt update                          # 更新包索引
sudo apt install -y docker.io            # 安装 Docker
sudo apt install -y docker-compose-plugin # 安装 Docker Compose 插件(v2)
sudo systemctl start docker              # 启动 Docker 服务
sudo systemctl enable docker             # 设置开机自启
sudo usermod -aG docker $USER            # 把当前用户加入 docker 组,免 sudo
# 注意:加入 docker 组后需要重新登录才生效

4.3 部署 Dify

# 第一步:克隆 Dify 仓库
git clone https://github.com/langgenius/dify.git  # 从 GitHub 克隆代码
cd dify/docker                                     # 进入 Docker 配置目录

# 第二步:创建环境配置文件
cp .env.example .env                               # 复制示例配置为正式配置
# 你可以编辑 .env 文件修改以下常用配置:
#   SECRET_KEY=你的密钥          # 安全密钥,生产环境必须修改
#   INIT_PASSWORD=你的初始密码    # 管理员初始密码
#   DB_PASSWORD=数据库密码        # PostgreSQL 密码,默认 difyai123456
#   DIFY_PORT=5001               # API 服务端口,默认 5001

# 第三步:启动所有服务
docker compose up -d                               # 后台启动所有容器
# 这个命令会拉取并启动以下服务:
#   - api:Dify 后端 API 服务(Python/Flask)
#   - worker:后台任务队列(Celery,处理文档索引等)
#   - web:前端界面(Next.js)
#   - db_postgres:PostgreSQL 数据库
#   - redis:Redis 缓存和消息队列
#   - weaviate / qdrant:向量数据库(用于 RAG)
#   - nginx:反向代理,统一入口

# 第四步:查看服务状态
docker compose ps                                  # 查看所有容器运行状态
docker compose logs -f api                         # 实时查看 API 日志(调试用)

# 第五步:访问 Dify
# 浏览器打开 http://localhost/install
# 首次访问会进入初始化页面,设置管理员邮箱和密码

4.4 常用运维命令

# 更新 Dify 到最新版本
cd dify/docker                    # 进入 Docker 目录
git pull origin main              # 拉取最新代码
docker compose down               # 停止当前服务
docker compose pull               # 拉取最新镜像
docker compose up -d              # 重新启动

# 查看日志
docker compose logs -f            # 查看所有服务日志
docker compose logs -f worker     # 只看 worker 日志(文档索引相关)

# 数据备份
docker compose exec db_postgres pg_dump -U postgres dify > backup.sql  # 备份数据库

# 完全卸载(谨慎操作!会删除所有数据)
# docker compose down -v          # 停止并删除所有容器和数据卷

5. 实操教程:创建 RAG 知识库问答应用

以下是从零搭建一个 "文献问答系统" 的完整步骤:

步骤 1:登录并进入工作台

操作:浏览器打开 http://localhost
     → 输入管理员邮箱和密码登录
     → 进入"工作台"页面
界面位置:左上角 "工作台" 标签

步骤 2:配置模型供应商

操作:点击右上角头像 → "设置" → "模型供应商"
     → 选择一个模型供应商(如 OpenAI)
     → 输入 API Key → 点击 "保存"
注意:如果用本地 Ollama,见第 8 节单独说明
界面位置:设置 → 模型供应商

步骤 3:创建知识库

操作:左侧导航栏 → "知识库" → 点击 "创建知识库"
     → 输入知识库名称(如 "T2D文献库")
     → 点击 "创建"

步骤 4:上传文档

操作:进入刚创建的知识库 → 点击 "添加文件"
     → 可以上传 PDF/DOCX/TXT/Markdown 等文件
     → 选择分块策略:
       - "自动"(推荐,Dify 自动决定怎么切)
       - "自定义"(可设置分块大小,如 500 tokens,重叠 50 tokens)
     → 选择嵌入模型(Embedding Model)
     → 点击 "保存并处理"
     → 等待索引完成(状态变为绿色 "可用")
耗时:取决于文档大小,通常几秒到几分钟

步骤 5:创建对话应用

操作:左侧导航栏 → "工作台" → 点击 "创建应用"
     → 选择 "聊天助手"(Chatbot)
     → 输入应用名称(如 "T2D文献问答助手")
     → 点击 "创建"

步骤 6:关联知识库 + 配置 Prompt

操作:进入应用编排页面
     → 左侧面板 "上下文" 区域 → 点击 "添加" → 选择刚才的知识库
     → 在 "提示词" 区域编写 System Prompt,例如:

提示词示例:
-----------
你是一个2型糖尿病肠道菌群研究的专家助手。
请根据提供的文献内容回答用户的问题。
如果文献中没有相关信息,请明确告知用户。
回答要求:
1. 引用具体的文献段落
2. 使用中文回答
3. 用通俗易懂的语言解释专业术语
-----------

     → 右侧选择 LLM 模型(如 GPT-4 或 Claude)
     → 设置参数:Temperature 建议 0.3-0.5(更精确)

步骤 7:调试测试

操作:右侧 "预览" 面板 → 输入测试问题
     → 例如:"2型糖尿病患者肠道菌群有什么特点?"
     → 查看回答是否引用了知识库中的内容
     → 如果回答不理想,调整 Prompt 或分块策略

步骤 8:发布并获取 API

操作:点击右上角 "发布" 按钮
     → 发布后可获得:
       1. Web 应用链接(直接分享给别人使用)
       2. 嵌入代码(iframe 嵌入到你的网页)
       3. API 端点(集成到其他系统)

API 调用示例:
# 调用 Dify 对话 API
curl -X POST 'http://localhost/v1/chat-messages' \
  -H 'Authorization: Bearer your-api-key' \        # 替换为你的 API Key
  -H 'Content-Type: application/json' \
  -d '{
    "inputs": {},
    "query": "2型糖尿病患者肠道中哪些菌群显著减少?",
    "response_mode": "blocking",
    "user": "test-user"
  }'

6. 工作流编排实操

6.1 创建工作流应用

操作:工作台 → 创建应用 → 选择 "工作流"
     → 进入可视化画布编辑器

6.2 拖拽节点构建 Agent 流程

示例场景:用户提问 → 判断问题类型 → 不同处理分支

节点1: [开始] 
  ↓ 用户输入问题
节点2: [LLM - 问题分类器]
  → Prompt: "判断以下问题属于哪个类别:A.菌群组成 B.代谢通路 C.治疗方案 D.其他"
  ↓ 输出分类结果
节点3: [条件分支]
  → 如果分类=A → 走知识库检索分支
  → 如果分类=B → 走代谢数据库查询分支
  → 如果分类=D → 直接 LLM 回答
节点4: [知识检索] → 从T2D文献库检索相关段落
节点5: [LLM - 答案生成] → 基于检索结果生成回答
节点6: [结束] → 返回最终答案给用户

6.3 常用工作流节点说明

节点类型功能白话解释
开始接收用户输入流程的入口
LLM调用大语言模型让 AI 思考和生成文本
知识检索从知识库检索去"图书馆"查资料
条件分支if/else 逻辑判断走岔路口,根据条件选方向
代码执行运行 Python/JS 代码做数据处理或计算
HTTP 请求调用外部 API从外部系统获取数据
模板转换Jinja2 模板把数据格式化成想要的样子
变量聚合合并多个分支的结果把多条路的结果汇总
结束返回最终输出流程的出口

7. 连接本地 Ollama 模型

白话:Ollama 是一个本地运行大模型的工具。连接到 Dify 后,你的数据不会发送到外部服务器,完全本地处理,适合处理敏感的生物医学数据。

7.1 前提条件

# 确保 Ollama 已安装并运行
ollama serve                              # 启动 Ollama 服务(默认 11434 端口)
ollama pull llama3                        # 下载 Llama3 模型(约 4.7GB)
ollama pull nomic-embed-text              # 下载嵌入模型(用于 RAG 向量化)

7.2 配置 Ollama 允许外部访问

# Ollama 默认只监听 127.0.0.1(本机)
# 如果 Dify 运行在 Docker 中,需要让 Ollama 监听所有地址

# 方法一:设置环境变量(Linux)
export OLLAMA_HOST=0.0.0.0:11434         # 让 Ollama 监听所有网络接口
ollama serve                              # 重启 Ollama

# 方法二:修改 systemd 配置(如果 Ollama 是系统服务)
sudo systemctl edit ollama                # 编辑服务配置
# 添加以下内容:
# [Service]
# Environment="OLLAMA_HOST=0.0.0.0:11434"
sudo systemctl restart ollama             # 重启服务

7.3 在 Dify 中添加 Ollama

操作:设置 → 模型供应商 → 找到 "Ollama"
     → 点击添加
     → 填写配置:
       模型名称:llama3(和你 ollama pull 的名字一致)
       Base URL:http://host.docker.internal:11434
       (如果是 Linux Docker,用 http://172.17.0.1:11434)
     → 点击保存

嵌入模型同理:
     → 模型类型选 "Text Embedding"
     → 模型名称:nomic-embed-text
     → Base URL 同上

常见问题:Dify 容器访问不到 Ollama? - Docker Desktop(Windows/macOS):用 host.docker.internal - Linux Docker:用宿主机的 Docker 网桥 IP(通常 172.17.0.1) - 验证连通性:docker exec -it dify-api-1 curl http://172.17.0.1:11434/api/tags


8. Dify vs FastGPT vs Coze 对比表

对比维度DifyFastGPTCoze(扣子)
定位通用 LLM 应用开发平台知识库问答系统字节跳动的 AI Bot 平台
开源是(Apache 2.0)是(Apache 2.0)否(商业闭源)
GitHub Stars~140k~28kN/A
自部署支持(Docker)支持(Docker)不支持(仅云端)
数据隐私完全自控完全自控数据在字节服务器
工作流强大(可视化画布)有(较简单)有(可视化)
RAG完善(多种向量库)非常完善(核心功能)支持
AgentFunction Calling + ReAct支持支持(插件生态丰富)
模型支持数百种(API + 本地)主流 API + OllamaOpenAI/Claude 等主流
插件/工具50+ 内置 + 自定义较少丰富(抖音生态)
本地模型支持(Ollama/Xinference)支持(OneAPI/Ollama)不支持
API 输出支持支持支持
协作编辑v1.14.0 新增支持不支持不支持
中文支持非常好(国内团队)非常好(字节)
适合谁想要全功能 AI 平台专注知识库问答想快速搭建 Bot,不介意云端

选型建议: - 数据敏感(如医疗生信)→ Dify 或 FastGPT(可自部署,数据不出服务器) - 只需要知识库问答→ FastGPT(更简单直接) - 需要工作流 + Agent + 多功能→ Dify(功能最全) - 不想运维,快速试用→ Coze(零部署,但数据在云端)


9. 生信应用场景

9.1 文献智能问答系统

场景:上传 50 篇 T2D 肠道菌群相关论文 PDF,搭建文献问答助手
价值:快速定位文献中的关键信息,不用逐篇阅读
示例问题:
  - "Akkermansia muciniphila 在 T2D 中的作用?"
  - "有哪些研究使用了 16S rRNA 测序?"
  - "二甲双胍对肠道菌群的影响有哪些文献支持?"
实现:创建 RAG 知识库应用(见第 5 节教程)

9.2 分析报告自动生成

场景:输入实验数据摘要,自动生成结构化分析报告
价值:节省写报告的时间,保持格式统一
工作流设计:
  用户输入实验参数 → LLM 生成报告大纲 → 知识库检索参考文献 
  → LLM 填充各章节 → 代码节点格式化 → 输出 Markdown 报告

9.3 实验方案建议助手

场景:描述研究目的,AI 推荐实验方案、工具选择、参数设置
价值:帮助新手快速确定实验路线
示例对话:
  用户:"我想比较 T2D 患者和健康人的肠道菌群差异,样本量 30 vs 30"
  AI:"建议使用以下分析流程:
      1. 质控:fastp → KneadData(去宿主)
      2. 物种注释:MetaPhlAn4 或 Kraken2+Bracken
      3. 功能注释:HUMAnN3
      4. 差异分析:LEfSe + MaAsLin2
      5. 可视化:R ggplot2
      样本量建议:宏基因组推荐每组 ≥30,统计检验力足够..."

9.4 生信工具使用手册问答

场景:把 QIIME2/MetaPhlAn/HUMAnN 等工具的官方文档导入知识库
价值:随时问 AI 工具的参数用法、报错解决方案

10. 常见报错及解决方案

报错 1:Docker Compose 启动失败 — 端口冲突

错误信息:Error starting userland proxy: listen tcp4 0.0.0.0:80: bind: address already in use
原因:80 端口被其他程序占用(如 Apache/Nginx)
解决:
  # 方法一:停掉占用 80 端口的程序
  sudo lsof -i :80                        # 查看谁占了 80 端口
  sudo systemctl stop nginx               # 停掉 nginx(举例)

  # 方法二:修改 Dify 端口
  # 编辑 docker-compose.yaml 中 nginx 服务的端口映射
  # 把 "80:80" 改为 "8080:80"
  # 然后访问 http://localhost:8080

报错 2:知识库文档索引失败 — Embedding 模型未配置

错误信息:Embedding model not found / Provider not configured
原因:没有配置嵌入模型(Embedding Model),RAG 需要它把文本转向量
解决:
  设置 → 模型供应商 → 确保添加了支持 Embedding 的模型
  推荐:OpenAI text-embedding-3-small 或本地 nomic-embed-text

报错 3:Ollama 连接失败 — Connection refused

错误信息:Connection refused / Cannot connect to Ollama
原因:Dify Docker 容器无法访问宿主机的 Ollama 服务
解决:
  # 1. 确保 Ollama 监听 0.0.0.0 而不是 127.0.0.1
  export OLLAMA_HOST=0.0.0.0:11434

  # 2. 使用正确的地址
  #    Docker Desktop: http://host.docker.internal:11434
  #    Linux Docker:   http://172.17.0.1:11434

  # 3. 验证连通性
  docker exec -it dify-api-1 curl http://172.17.0.1:11434/api/tags

报错 4:API 调用返回 401 Unauthorized

错误信息:{"code": "unauthorized", "message": "Invalid API key"}
原因:API Key 不正确或过期
解决:
  应用概览页 → 左侧 "API 访问" → 重新生成 API Key
  注意区分 "App API Key"(应用级别)和 "Dataset API Key"(知识库级别)

报错 5:文档上传失败 — 文件太大

错误信息:File too large / Request entity too large
原因:默认文件大小限制(通常 15MB)
解决:
  # 修改 .env 文件中的上传限制
  UPLOAD_FILE_SIZE_LIMIT=50              # 单位 MB,改大一些
  UPLOAD_FILE_BATCH_LIMIT=10             # 批量上传数量限制

  # 重启服务
  docker compose restart api worker

报错 6:Worker 容器频繁重启 — 内存不足

错误信息:worker 容器状态显示 Restarting / OOMKilled
原因:服务器内存不足,索引大文档时内存溢出
解决:
  # 1. 确保服务器至少 4GB 内存(推荐 8GB+)
  free -h                                # 查看内存使用

  # 2. 减少 Celery Worker 数量
  # 编辑 .env:
  CELERY_WORKER_AMOUNT=2                 # 从默认 4 减少到 2

  # 3. 重启
  docker compose restart worker

11. 速查表

部署命令速查

操作命令
首次部署git clone ... && cd dify/docker && cp .env.example .env && docker compose up -d
查看状态docker compose ps
查看日志docker compose logs -f [服务名]
重启服务docker compose restart
停止服务docker compose down
更新版本git pull && docker compose pull && docker compose up -d
备份数据库docker compose exec db_postgres pg_dump -U postgres dify > backup.sql

Dify API 端点速查

端点方法用途
/v1/chat-messagesPOST发送对话消息
/v1/messagesGET获取历史消息
/v1/conversationsGET获取会话列表
/v1/completion-messagesPOST文本生成(非对话)
/v1/files/uploadPOST上传文件
/v1/datasetsGET/POST知识库管理
/v1/datasets/{id}/documentsPOST上传知识库文档

关键配置项速查(.env)

配置项默认值说明
SECRET_KEY预设值安全密钥,生产必改
INIT_PASSWORD管理员初始密码
DB_PASSWORDdifyai123456数据库密码
DIFY_PORT5001API 端口
LOG_LEVELINFO日志级别
MIGRATION_ENABLEDtrue自动数据库迁移
UPLOAD_FILE_SIZE_LIMIT15上传文件大小限制(MB)
CELERY_WORKER_AMOUNT4后台任务并发数

12. 延伸资源

资源链接
Dify 官方文档https://docs.dify.ai
Dify GitHub 仓库https://github.com/langgenius/dify
Dify Cloud(在线试用)https://cloud.dify.ai
Dify 插件市场https://marketplace.dify.ai
Dify 中文社区https://github.com/langgenius/dify/discussions
Ollama 官网https://ollama.com
FastGPT GitHubhttps://github.com/labring/FastGPT
Coze(扣子)官网https://www.coze.com
Docker 官方安装文档https://docs.docker.com/engine/install

本文信息来源:GitHub API 实时查询(2026-05-03)、Dify 官方 README、v1.14.0 Release Notes、docker-compose.yaml 和 .env.example 配置文件。所有版本号和 Star 数据为实时获取,非训练数据。