Dify开源AI应用开发平台深度体验
在AI应用开发领域,如何快速将大模型能力转化为可用的产品是一个核心挑战。Dify 作为一个开源的 LLM 应用开发平台,通过可视化编排、RAG 管道和 Agent 能力,大幅降低了AI应用的开发门槛。本文将深度体验 Dify 的核心功能。
Dify 是什么
Dify 是一个开源的 LLM 应用开发平台,它的定位是"AI 应用的 IDE"。核心能力包括:
部署安装
Docker Compose 部署(推荐)
# 克隆仓库
git clone https://github.com/langgenius/dify.git
cd dify/docker
# 复制环境变量配置
cp .env.example .env
# 启动服务
docker compose up -d
# 访问 http://localhost/install 完成初始化环境变量关键配置
# .env 文件关键配置
# 模型提供商配置
OPENAI_API_KEY=sk-your-key
ANTHROPIC_API_KEY=sk-your-key
# 本地 Ollama 连接
OLLAMA_API_BASE_URL=http://host.docker.internal:11434
# 向量数据库(默认使用 Weaviate)
VECTOR_STORE=weaviate
# 文件存储
STORAGE_TYPE=local
STORAGE_LOCAL_PATH=/app/api/storage核心功能体验
1. 创建AI应用
Dify 支持四种应用类型:
2. Prompt 工程(Prompt IDE)
Dify 的 Prompt IDE 让提示词调试变得直观高效:
# 聊天助手配置示例
名称: 技术文档翻译助手
模型: qwen2.5:14b
温度: 0.3
最大Token: 4096
系统提示词: |
你是一位专业的技术文档翻译专家。
请将用户输入的英文技术文档翻译为中文,要求:
1. 保留原文的技术术语(首次出现时附上英文)
2. 代码块和命令不翻译
3. 保持原文的格式和结构
4. 翻译自然流畅,符合中文技术文档习惯
开场白: "你好!我是技术文档翻译助手,请输入需要翻译的英文技术内容。"3. RAG 知识库
这是 Dify 最强大的功能之一。创建知识库的流程:
步骤1:上传文档
支持 PDF、Word、TXT、Markdown、CSV 等多种格式。
步骤2:分段设置
# Dify 的分段策略配置
分段方式: 自动 # 或自定义
分段长度: 500 # 每段最大字符数
分段重叠: 50 # 相邻段重叠字符数
清洗规则: 去除多余空格和换行
# 索引方式
索引方法: 高质量 # 使用向量嵌入
嵌入模型: bge-large-zh # 中文嵌入模型步骤3:检索配置
检索模式: 混合检索 # 向量 + 关键词
Top-K: 5
Score阈值: 0.5
重排序: 开启
重排序模型: bge-reranker-large步骤4:在应用中关联知识库
在应用设置中关联知识库后,AI 回答时会自动检索相关文档片段作为上下文。
4. 工作流编排
工作流是 Dify 最具特色的功能,支持可视化拖拽编排:
# 示例工作流:智能客服
节点1 [开始]:
输入变量: user_question (string)
节点2 [知识库检索]:
查询变量: {{user_question}}
知识库: 产品FAQ
Top-K: 3
节点3 [条件判断]:
条件: 检索结果.score > 0.7
是 -> 节点4
否 -> 节点5
节点4 [LLM生成]:
模型: qwen2.5:14b
系统提示: 基于检索结果回答用户问题
上下文: {{节点2.results}}
用户输入: {{user_question}}
节点5 [LLM兜底]:
模型: qwen2.5:14b
系统提示: 知识库中未找到相关信息,请礼貌告知用户并转人工客服
用户输入: {{user_question}}
节点6 [结束]:
输出: {{节点4.text}} 或 {{节点5.text}}工作流支持的核心节点类型:
| 节点类型 | 功能 |
|---------|------|
| LLM | 大模型推理 |
| 知识库检索 | RAG检索 |
| 条件分支 | 逻辑判断 |
| 代码执行 | 运行Python代码 |
| HTTP请求 | 调用外部API |
| 模板转换 | 变量拼接 |
| 变量赋值 | 数据处理 |
| 迭代 | 循环处理 |
5. 代码节点实战
在工作流中可以插入代码节点执行自定义逻辑:
# 代码节点示例:提取并格式化信息
def main(user_input: str) -> dict:
"""从用户输入中提取关键信息"""
import re
# 提取邮箱
emails = re.findall(r'[\w.-]+@[\w.-]+\.\w+', user_input)
# 提取手机号
phones = re.findall(r'1[3-9]\d{9}', user_input)
# 提取URL
urls = re.findall(r'https?://[\w./-]+', user_input)
return {
"emails": emails,
"phones": phones,
"urls": urls,
"has_contact": bool(emails or phones),
}6. Agent 智能体
Dify 的 Agent 支持工具调用,可以执行搜索、计算、API调用等操作:
Agent配置:
模型: qwen2.5:14b
策略: Function Calling # 或 ReAct
工具:
- 联网搜索 (Tavily/SerpAPI)
- 数学计算
- 网页抓取
- 自定义HTTP工具
- DALL-E 绘图
- 代码解释器
最大迭代次数: 57. 自定义工具(API工具)
你可以将任意外部 API 注册为 Dify 工具:
# 自定义工具配置
工具名称: 天气查询
描述: 查询指定城市的天气信息
OpenAPI Schema:
openapi: 3.0.0
info:
title: Weather API
paths:
/weather:
get:
summary: 查询天气
parameters:
- name: city
in: query
required: true
schema:
type: string
鉴权:
类型: API Key
Header: X-API-Key
值: your-api-keyAPI 发布与集成
发布为 API
Dify 可以将任何应用一键发布为 REST API:
import requests
# Dify API 调用
API_URL = "http://localhost/v1/chat-messages"
API_KEY = "app-your-api-key"
response = requests.post(
API_URL,
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
},
json={
"inputs": {},
"query": "Dify支持哪些向量数据库?",
"response_mode": "streaming",
"user": "user-123",
},
stream=True,
)
for line in response.iter_lines():
if line:
print(line.decode())嵌入到网页
<!-- Dify 聊天气泡嵌入 -->
<script>
window.difyChatbotConfig = {
token: 'your-app-token',
baseUrl: 'http://localhost'
}
</script>
<script src="http://localhost/embed.min.js" defer></script>运维与扩展
数据库管理
# Dify 使用 PostgreSQL + Redis + Weaviate
# 查看服务状态
docker compose ps
# 查看日志
docker compose logs api --tail 100
# 数据备份
docker exec dify-postgres pg_dump dify > dify-backup.sql性能调优
# .env 性能相关配置
# 工作线程数
SERVER_THREAD_WORKERS=10
# Celery Worker 数量
CELERY_WORKER_CLASS=gevent
CELERY_WORKER_AMOUNT=4
# 向量检索缓存
RETRIEVAL_CACHE_ENABLED=trueDify vs 其他平台
| 特性 | Dify | LangChain | Flowise |
|------|------|-----------|---------|
| 可视化编排 | 优秀 | 无 | 良好 |
| RAG能力 | 开箱即用 | 需手动构建 | 基础 |
| Agent | 支持 | 支持 | 基础 |
| API发布 | 一键 | 需自己写 | 支持 |
| 多用户 | 支持 | 无 | 无 |
| 学习曲线 | 低 | 高 | 低 |
| 生产就绪 | 是 | 需封装 | 一般 |
总结
Dify 是目前功能最完整的开源 LLM 应用开发平台。它的可视化工作流编排让复杂AI流程的构建变得直观,RAG 管道开箱即用,Agent 能力让应用更加智能,而一键 API 发布则让集成变得简单。无论你是想要快速构建原型,还是部署生产级AI应用,Dify 都是一个值得深入使用的平台。对于企业团队,Dify 的多用户管理和权限控制也满足了协作需求。开源的力量让你可以完全掌控AI应用的每一个环节。
💬 评论区 (0)
暂无评论,快来抢沙发吧!