一、Dify平台介绍
1.1 什么是Dify
Dify是一款开源的LLM应用开发平台,融合了后端即服务(BaaS)的理念,让开发者可以快速搭建生产级的生成式AI应用。即使是非技术人员,也能参与到AI应用的定义和数据运营中。
Dify内置了构建LLM应用所需的关键技术栈:
-
数百个模型的支持
-
直观的Prompt编排界面
-
高质量的RAG引擎
-
稳健的Agent框架
-
灵活的流程编排
同时提供易用的界面和API,为开发者节省了大量重复造轮子的时间。
什么是BaaS?
BaaS(后端即服务)是一种云计算服务模式,为开发者提供预先构建好的后端基础设施和功能服务,让开发者无需从零搭建和维护服务器端系统。就像是为应用开发准备的"标准化后端模块工具箱",让你能像搭积木一样快速构建应用的后端支撑。
1.2 Dify vs Coze
| 维度 | Coze(扣子) | Dify |
|---|---|---|
| 核心定位 | 面向消费者的AI应用商店/生态 | 面向开发者的LLMOps与BaaS平台 |
| 设计理念 | 模块化套件 | 集成化平台,一体化体验 |
| 目标用户 | 非技术人员、产品/运营 | 开发者、AI工程师、企业技术团队 |
| 技术栈 | 后端Golang,前端React | 后端Python/Flask,前端Next.js |
| 模型支持 | 优先字节及国内模型 | 支持50+开源与商用模型 |
| 功能重心 | 卓越对话体验,发布到字节系平台 | 复杂工作流编排与RAG |
| 部署方式 | 以SaaS为主 | 支持强大的私有化部署 |
| 开源协议 | 部分组件开源 | 开源(Apache-2.0) |
如何选择?
-
选Coze:新手/运营/内容创作者,零代码快速搭建,需要发布到抖音/飞书,追求"开箱即用"
-
选Dify:开发者/企业技术团队,需要构建复杂生产级应用,对数据安全有高要求,希望完全控制模型和流程
二、Dify安装部署
2.1 系统要求
-
CPU >= 2 Core
-
RAM >= 4 GiB
2.2 安装WSL(Windows环境)
以管理员身份打开PowerShell,运行:
python
wsl --install
重启电脑完成配置。可通过Microsoft Store搜索Linux并安装Ubuntu版本。
2.3 安装Docker Desktop
从Docker官网下载Windows版本,安装时确保启用WSL 2后端支持。
配置镜像加速(设置 → Docker Engine):
python
{
"registry-mirrors": [
"https://docker.nju.edu.cn",
"https://hub-mirror.c.163.com"
]
}
2.4 安装Dify
python
# 克隆项目
git clone https://github.com/langgenius/dify.git
# 进入docker目录
cd dify/docker
# 重命名环境配置文件
cp .env.example .env
# 启动服务
docker compose up -d
三、第一个Dify案例
3.1 大模型接入
Dify中模型分为三类:
-
系统推理模型:应用中使用,包括对话、名称生成等
-
Embedding模型:知识库文档向量化
-
语音转文字模型:语音交互
在"设置 → 模型供应商"中配置要接入的模型。
3.2 创建应用
在"工作室"创建空白应用。Dify中"应用"是工作流或对话流,而非完整智能体。
搭建简单工作流:
-
开始节点:添加query字段
-
LLM节点:配置系统提示词"你是一个无所不能的助手"
-
结束节点:接收LLM输出并返回
3.3 试运行
输入"西安有什么好吃的",工作流自动执行并返回结果。
四、大语言模型微调语料构建
4.1 什么是微调
微调是指在预训练模型基础上,通过进一步训练适应特定任务。步骤包括:
-
选择预训练模型
-
准备高质量数据集
-
调整模型结构
-
设置训练参数
-
训练、评估、部署
微调语料格式示例:
python
{"messages": [
{"role": "system", "content": "你是职业老炮"},
{"role": "user", "content": "职场上应该怎么如鱼得水?"},
{"role": "assistant", "content": "我跟你讲:向上管理啦啦啦..."}
]}
4.2 工作流构成
| 节点 | 作用 |
|---|---|
| 开始节点 | 接收用户输入和文档 |
| 文档提取器 | 解析上传文档内容(不支持Word) |
| 代码执行节点 | 文本预处理,截取前800字符 |
| LLM节点 | 生成JSONL格式微调数据 |
| 结束节点 | 输出最终结果 |
LLM节点提示词设计:
-
角色:LLM科学家
-
任务:参考内容构造微调数据
-
输出:每行一条JSONL,包含system/user/assistant三条记录
五、RAG与知识库
5.1 什么是RAG
RAG(检索增强生成)结合信息检索与生成式AI,通过动态调用外部知识库提升LLM回答准确性、相关性和时效性。
三个核心环节:
-
检索:根据用户问题从知识库检索相关文档
-
增强:将检索信息整合为上下文
-
生成:LLM结合上下文生成回答
5.2 知识库创建
分段模式:
| 模式 | 特点 | 适用场景 |
|---|---|---|
| 通用模式 | 按规则拆分为独立分段 | 简单文档 |
| 父子模式 | 父分段提供上下文,子分段精准检索 | 需要平衡精度和上下文的场景 |
索引方法:
-
经济模式:每个区块用10个关键词检索,无费用
-
高质量模式:使用Embedding向量化,支持向量检索、全文检索、混合检索
检索方法参数:
-
TopK:筛选相似度最高的文本片段,默认3
-
Score阈值:相似度筛选,默认0.5
-
Rerank模型:重排序优化结果
5.3 在Agent中使用知识库
创建Agent应用后,在"上下文"中添加已创建的知识库即可。
5.4 在工作流中使用知识库
-
添加"知识检索"节点,选择知识库
-
添加LLM节点,上下文选择知识检索结果
-
添加直接回复节点
-
测试验证
六、Dify接入外部知识库(RAGFlow)
6.1 为什么需要外部知识库
Dify内置RAG的不足:
-
知识库设置不够丰富灵活
-
PDF扫描版识别效果差
-
复杂格式文档处理能力有限
6.2 RAGFlow简介
RAGFlow是基于深度文档理解(deepdoc)构建的开源RAG引擎,包含:
-
视觉处理:OCR、布局识别、表结构识别
-
解析器:针对PDF、DOCX、EXCEL、PPT的专用解析器
系统要求:
-
CPU >= 4核
-
内存 >= 16GB
-
硬盘 >= 50GB
-
Docker >= 24.0.0
6.3 RAGFlow安装
python
git clone https://github.com/infiniflow/RAGFlow.git
cd RAGFlow/docker
# 修改配置避免端口冲突
# 修改docker-compose文件中的web端口(改为8880)
# 修改.env和docker-compose-base.yml中的redis配置
docker compose up -d
访问 http://127.0.0.1:8880 完成注册。
6.4 RAGFlow知识库
分片方式:
| 方式 | 适用格式 | 特点 |
|---|---|---|
| General | DOCX/EXCEL/PPT/IMAGE/PDF/TXT | 简单分块 |
| Q&A | Excel/CSV | 问题-答案对 |
| Resume | DOCX/PDF/TXT | 简历解析为结构化数据 |
| Manual | 仅PDF | 按章节切片 |
| Paper | 仅PDF | 按论文结构切片 |
| Book | DOCX/PDF/TXT | 支持页面范围设置 |
| Laws | DOCX/PDF/TXT | 按法律条文粒度切分 |
6.5 Dify接入RAGFlow
配置外部知识库API:
-
Dify知识库页面 → 链接外部知识库
-
填写API Endpoint(格式:
http://宿主机IP:9380/api/v1/dify,不能用127.0.0.1) -
填写RAGFlow生成的API Key
获取外部知识库ID:
从RAGFlow知识库页面的URL中获取
在Agent中使用:
Agent编排页面的"上下文"中添加外部知识库即可。
七、总结
Dify的核心价值在于开源、私有化部署、模型中立。
| 场景 | 推荐方案 |
|---|---|
| 快速原型验证、个人项目 | Coze |
| 企业级复杂应用、数据安全要求高 | Dify |
| 复杂PDF/扫描件解析 | Dify + RAGFlow |
| 多模型切换、避免供应商锁定 | Dify |
| 发布到抖音/飞书等平台 | Coze |
Dify让开发者能够完全掌控AI应用的全生命周期,从模型选择、知识库构建到工作流编排,都可以按需定制。配合RAGFlow等专业RAG引擎,可以构建真正生产级的智能问答系统。