Agent框架横评(五):Dify我的开源LLMOps平台

8次阅读
没有评论

Agent框架横评(五):Dify我的开源LLMOps平台

一、开场:不用写代码也能做AI应用

大家好,我是老金。

有没有想过不用写代码也能做出AI应用?

Dify就是这样的平台:

  • 可视化编排
  • 一键部署
  • 运营分析

今天聊聊Dify。

二、Dify是什么

2.1 定位

Dify是一个开源LLMOps平台,让开发者可以:

  • 可视化创建AI应用
  • 编排Prompt和工作流
  • 部署和运营
  • 分析日志和数据

核心理念:让AI应用开发像搭积木一样简单

2.2 特点

特点 说明
开源 MIT协议,可自托管
可视化 拖拽编排
多模型 支持主流LLM
RAG 内置知识库
API 一键生成API

2.3 界面预览

┌─────────────────────────────────────────────────────────┐
│  Dify 工作台                                            │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  ┌─────────────────────────────────────────────────┐   │
│  │  应用列表                                       │   │
│  │  ┌─────────┐ ┌─────────┐ ┌─────────┐          │   │
│  │  │ 聊天助手 │ │ Agent  │ │ 工作流  │          │   │
│  │  └─────────┘ └─────────┘ └─────────┘          │   │
│  └─────────────────────────────────────────────────┘   │
│                                                         │
│  ┌─────────────────────────────────────────────────┐   │
│  │  可视化编辑器                                    │   │
│  │                                                  │   │
│  │  [开始] → [LLM] → [知识库] → [结束]            │   │
│  │                                                  │   │
│  └─────────────────────────────────────────────────┘   │
│                                                         │
└─────────────────────────────────────────────────────────┘

三、应用类型

3.1 Chatflow(对话流)

适合:客服、助手、问答

┌─────────────────────────────────────────────────────────┐
│                    Chatflow                            │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  开始 → 关键词识别                                      │
│           ↓                                             │
│      ┌───┴───┐                                         │
│      ↓       ↓                                         │
│   知识库    LLM                                         │
│      ↓       ↓                                         │
│      └───┬───┘                                         │
│          ↓                                             │
│       结束                                             │
│                                                         │
└─────────────────────────────────────────────────────────┘

3.2 Workflow(工作流)

适合:内容生成、数据处理、自动化

┌─────────────────────────────────────────────────────────┐
│                    Workflow                             │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  [开始] → [代码执行] → [LLM] → [条件分支]              │
│                ↓         ↓         ↓                   │
│             [错误处理]  [知识库]  [A分支/B分支]         │
│                              ↓         ↓                 │
│                           [LLM]    [LLM]                │
│                              ↓         ↓                 │
│                           [结束A]  [结束B]              │
│                                                         │
└─────────────────────────────────────────────────────────┘

3.3 Agent

适合:复杂任务、工具调用

┌─────────────────────────────────────────────────────────┐
│                    Agent                                │
├─────────────────────────────────────────────────────────┤
│                                                         │
│  用户输入                                               │
│     ↓                                                   │
│  LLM推理                                                │
│     ↓                                                   │
│  ┌────────────────────────┐                            │
│  │     工具选择            │                            │
│  │  🔍搜索 │ 💻代码 │ 📁文件 │                         │
│  └────────────────────────┘                            │
│     ↓                                                   │
│  工具执行                                               │
│     ↓                                                   │
│  结果处理                                               │
│     ↓                                                   │
│  响应输出                                               │
│                                                         │
└─────────────────────────────────────────────────────────┘

四、快速创建应用

4.1 创建聊天助手

# Docker部署
git clone https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env
docker-compose up -d

# 访问
# http://localhost:80

4.2 可视化配置

# 步骤1:创建应用
1. 点击「创建应用」
2. 选择「聊天助手」
3. 输入应用名称:「技术客服」

# 步骤2:配置Prompt
你是一个技术客服助手。

职责:
- 回答技术问题
- 提供代码示例
- 指引文档阅读

规则:
- 回答简洁明了
- 代码要有注释
- 不会就说不知道

# 步骤3:关联知识库
1. 上传文档(PDF/TXT/MD)
2. 向量分段设置
3. 关联到应用

# 步骤4:发布
点击「发布」→ 生成API

4.3 API调用

import requests

# 调用Dify API
response = requests.post(
    "https://your-dify.com/v1/chat-messages",
    headers={
        "Authorization": "Bearer app-xxx",
        "Content-Type": "application/json"
    },
    json={
        "query": "如何部署Docker应用?",
        "user": "user_123",
        "response_mode": "blocking"  # blocking 或 streaming
    }
)

print(response.json())

五、知识库

5.1 上传文档

支持的格式:
- PDF
- Word (.docx)
- TXT
- Markdown
- HTML
- CSV

上传步骤:
1. 进入「知识库」
2. 点击「创建知识库」
3. 上传文档
4. 配置分段规则
5. 等待向量化完成

5.2 分段配置

分段模式:
- 自动分段(推荐)
- 自定义分段

自动分段规则:
- 最大长度:500字符
- 重叠长度:50字符
- 智能识别标题

自定义分段:
- 按段落
- 按句子
- 固定长度

5.3 检索设置

检索设置:
- 相似度阈值:0.6
- 返回数量:5
- 召回模式:
  - 向量检索(推荐)
  - 全文检索
  - 混合检索(向量+全文)

六、工作流编排

6.1 节点类型

节点 功能
LLM 调用大模型
知识库 检索文档
条件 分支判断
代码执行 自定义逻辑
模板转换 格式化输出
HTTP请求 调用外部API
变量赋值 修改变量
迭代 循环处理
文档提取器 解析文档
变量聚合器 合并变量

6.2 工作流示例

# 自动回复邮件工作流

[开始] 
   ↓
[LLM-提取意图]
   ↓
[条件分支]
   ├── 投诉 → [知识库-投诉处理] → [LLM-生成回复] → [结束]
   ├── 咨询 → [知识库-产品文档] → [LLM-生成回复] → [结束]
   └── 其他 → [LLM-通用回复] → [结束]

6.3 代码节点

// 代码节点 - 数据处理
// 输入变量: user_message
// 输出变量: processed_message

const keywords = ['紧急', '马上', '立刻'];
const isUrgent = keywords.some(k => user_message.includes(k));

return {
  processed_message: user_message.trim(),
  is_urgent: isUrgent,
  sentiment: isUrgent ? 'negative' : 'neutral'
};

七、Agent配置

7.1 工具配置

内置工具:
- Bing搜索
- Google搜索
- DDG搜索
- Wikipedia搜索
- 网络抓取

自定义工具:
- HTTP请求
- API调用

7.2 Agent提示词

# Agent配置

角色:你是一个数据分析助手

能力:
1. 可以搜索最新数据
2. 可以执行Python代码
3. 可以生成可视化图表

工作流程:
1. 理解用户需求
2. 获取相关数据
3. 分析数据
4. 生成结论和建议

限制:
- 只处理数据分析相关问题
- 代码必须可执行
- 图表必须清晰

7.3 迭代配置

Agent迭代设置:
- 最大迭代次数:10
- 超时时间:60秒
- 允许工具循环:是
- 反思机制:是

八、运营分析

8.1 数据看板

Dify提供的数据指标:
- 用户对话数
- Token消耗
- 响应时间
- 知识库命中率
- 用户满意度
- 高频问题

8.2 日志管理

日志功能:
- 对话日志
- 完整日志
- 错误日志
- 导出功能

8.3 标注管理

标注功能:
- 手动标注对话
- 优化回答
- 训练模型

九、部署方式

9.1 Docker部署

# docker-compose.yml
version: '3'

services:
  api:
    image: langgenius/dify-api
    environment:
      - SECRET_KEY=your-secret-key
      - INIT_DATA=True
    ports:
      - "5001:5001"

  web:
    image: langgenius/dify-web
    ports:
      - "80:80"

  db:
    image: postgres:15-alpine
    environment:
      - POSTGRES_PASSWORD=dify
      - POSTGRES_DB=dify
    volumes:
      - db_data:/var/lib/postgresql/data

  weaviate:
    image: semitechnologies/weaviate
    ports:
      - "8080:8080"

volumes:
  db_data:

9.2 云服务

官方云服务:
- dify.ai (托管服务)
- 免费额度有限
- 按量付费

第三方托管:
- AWS
- 阿里云
- 腾讯云

十、与同类对比

10.1 vs LangChain

方面 Dify LangChain
编码量
上手难度
定制能力 有限 灵活
适合人群 非程序员 开发者
部署 简单 复杂

10.2 vs Coze

方面 Dify Coze
部署 可自托管 仅云端
开源
费用 自己承担 按需付费
定制 源码可控 有限

十一、优缺点分析

11.1 优点

优点 说明
零代码 可视化操作
开源免费 可自托管
部署简单 Docker一键
RAG内置 知识库功能完善
API生成 一键生成API

11.2 缺点

缺点 说明
定制有限 复杂逻辑受限
性能 有额外开销
文档 部分不完善

十二、总结

适用人群

人群 推荐度
非程序员 ⭐⭐⭐⭐⭐
产品经理 ⭐⭐⭐⭐⭐
创业公司 ⭐⭐⭐⭐
企业 ⭐⭐⭐⭐
深度开发者 ⭐⭐⭐

框架评分

维度 评分
易用性 10/10
功能完整性 8/10
部署难度 8/10
性能 7/10
扩展性 6/10

下期预告

下一篇:Agent框架横评(六):国产框架对比——Dify、Coze、FastGPT哪家强?


相关阅读

正文完
 0
技术老金
版权声明:本站原创文章,由 技术老金 于2026-04-03发表,共计4416字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)