第 1 期:Dify 是什么?开源 LLM 平台全景概览
为什么选择 Dify?
当你想构建一个基于大语言模型的应用时,通常面临以下几条路线:
- 纯代码路线(LangChain / LlamaIndex)— 灵活但开发成本高
- 纯 SaaS 路线(ChatGPT / Claude)— 简单但无法定制
- 平台路线(Dify)— 可视化 + API + 开源自部署,兼顾灵活与效率
Dify 的定位是 Production-ready platform for agentic workflow development(面向生产环境的智能工作流开发平台)。它不是一个玩具,而是一个已经被大量企业在生产环境中使用的严肃平台。
核心功能矩阵
graph TB
A[Dify Platform] --> B[Workflow Engine]
A --> C[RAG Pipeline]
A --> D[Agent Framework]
A --> E[Model Management]
A --> F[LLMOps]
A --> G[Backend-as-a-Service]
B --> B1[可视化画布编排]
B --> B2[20+ 节点类型]
B --> B3[DSL 导入导出]
C --> C1[文档导入/分段]
C --> C2[向量/全文/混合检索]
C --> C3[多 Embedding 模型支持]
D --> D1[Function Calling]
D --> D2[ReAct 推理]
D --> D3[50+ 内置工具]
E --> E1[数百模型一键接入]
E --> E2[OpenAI/Gemini/Ollama]
E --> E3[负载均衡/配额管理]
F --> F1[Dashboard 数据分析]
F --> F2[日志追踪]
F --> F3[Langfuse/Opik 集成]四大核心概念
1. Dify App(应用)
Dify 中的每个 AI 应用都是一个独立的 App。你可以把它理解为一个"AI 微服务",拥有自己的 Prompt、模型配置、工具集和发布渠道。
2. Workflow(工作流)
Workflow 是 Dify 最强大的编排引擎。它可以通过可视化画布,将 LLM 调用、代码执行、API 请求、条件判断等节点串联成复杂的自动化流程。
# Workflow 的本质就是一个有向无环图 (DAG)
# 每个节点接收上游输出,处理后传递给下游
workflow = {
"nodes": [
{"id": "start", "type": "start"},
{"id": "llm_1", "type": "llm", "model": "gpt-4"},
{"id": "code_1", "type": "code", "language": "python3"},
{"id": "end", "type": "end"}
],
"edges": [
{"source": "start", "target": "llm_1"},
{"source": "llm_1", "target": "code_1"},
{"source": "code_1", "target": "end"}
]
}
3. Chatflow(对话流)
Chatflow 是 Workflow 的变体,专门针对多轮对话场景。它内置了对话历史记忆管理,支持 sys.conversation_id、sys.dialogue_count 等会话级系统变量。
4. Dify DSL
DSL (Domain Specific Language) 是 Dify 应用的序列化格式(YAML)。你可以将任何应用导出为 DSL 文件,在团队间分享或版本控制。
# 一个最简的 Dify DSL 示例
app:
name: "Hello World Bot"
mode: chatbot
model_config:
provider: openai
model: gpt-4o-mini
parameters:
temperature: 0.7
prompt_template:
system: "你是一个友好的 AI 助手。"
技术栈一览
| 层级 | 技术 |
|---|---|
| 前端 | Next.js (TypeScript) |
| 后端 | Flask (Python) |
| 数据库 | PostgreSQL |
| 缓存 | Redis |
| 向量数据库 | Weaviate / Qdrant / Milvus / pgvector |
| 消息队列 | Celery |
| 容器化 | Docker Compose / Kubernetes |