从入门到生产:构建 GenAI 应用
基于 Dify 平台的工作流编排、知识库管理与生产部署实践
Dify 是开源的 LLM 应用开发平台,连接大模型能力与生产级应用。
开源生态驱动,GitHub Top 100 项目
| 核心逻辑 | 确定性 (Deterministic) If-Then-Else 严密控制 |
| 数据处理 | 结构化 (SQL/JSON) Schema 定义先行 |
| 测试方法 | 单元测试 (Pass/Fail) 逻辑覆盖率 |
| 核心逻辑 | 概率性 (Probabilistic) Prompt + Context 引导 |
| 数据处理 | 非结构化 (Embedding) 语义检索与理解 |
| 测试方法 | 评估 (Eval) 准确率、幻觉率、相关性 |
可视化构建复杂的 AI 处理流程,从简单对话到多步骤自动化。
对话式 AI,保持上下文记忆,适合客服、问答场景
自主任务执行,工具调用能力,适合研究、分析场景
多轮对话流程,条件分支处理,适合表单、向导场景
批量处理、自动化任务,无状态执行,适合数据处理场景
| 分类 | 节点 | 功能说明 |
|---|---|---|
| 输入/输出 | Start | 定义输入参数 Schema,触发工作流执行 |
| End | 定义输出格式,终止工作流 | |
| 处理 | Code | Python/Node.js 代码执行,数据转换 |
| Template | 字符串模板渲染,Prompt 构建 | |
| AI | LLM | 大模型调用,支持多供应商、参数配置 |
| Knowledge | 知识库检索,RAG 上下文注入 | |
| 控制流 | If/Else | 条件分支,基于表达式的路由 |
| Iteration | 列表迭代,批量处理数据 |
完整的 RAG 解决方案:从文档摄入到智能检索的全流程管理。
| 策略 | 适用场景 | 分块大小 | 重叠 |
|---|---|---|---|
| Recursive | 通用文档处理 | 500-1000 chars | 50-100 |
| Semantic | 技术内容、代码 | 句子级别 | N/A |
| Fixed | 结构化数据 | 自定义 | 0 |
| Markdown | 文档、Wiki | 标题层级 | 上下文 |
使用 Docker 快速部署 Dify,配置生产环境。
# 1. 克隆仓库
git clone https://github.com/langgenius/dify.git
cd dify/docker
# 2. 配置环境变量
cp .env.example .env
# 编辑 .env 设置 OPENAI_API_KEY, SECRET_KEY 等
# 3. 启动服务
docker compose up -d
# 4. 访问控制台
open http://localhost/install
| 变量 | 说明 | 示例值 |
|---|---|---|
| CONSOLE_API_URL | 控制台 API 地址 | http://localhost:5001 |
| APP_API_URL | 应用 API 地址 | http://localhost:5001 |
| DB_DATABASE | PostgreSQL 数据库名 | dify |
| REDIS_HOST | Redis 主机 | redis |
| VECTOR_STORE | 向量数据库类型 | weaviate/qdrant/milvus |
| S3_BUCKET_NAME | 文件存储桶名 | dify-files |
深度进阶 · 动手实战
使用 Python/Node.js 扩展 Workflow 能力
def main(payload: dict) -> dict:
country = payload.get("country", "")
score = payload.get("risk_score", 0)
# 自定义路由逻辑
if country in ["US", "UK"] and score < 0.3:
return {"route": "fast-lane", "reason": "low_risk"}
elif score > 0.8:
return {"route": "block", "reason": "high_risk"}
return {"route": "standard", "score": score}
找到可视化编排与代码的最佳结合点
| 维度 | 低代码编排 (DSL) | 专业代码 (Pro-Code) |
|---|---|---|
| 核心用途 | 流程编排、条件分支、RAG 管道 | 复杂算法、自定义业务逻辑 |
| 交付速度 | 快速迭代,业务人员可参与 | 需要开发周期,但灵活性高 |
| 可维护性 | 可视化直观,易于理解 | 需要文档,代码审查保障 |
| 最佳实践 | 80% DSL + 20% Code — 胶水逻辑用可视化,核心计算用代码 | |
扩展 Dify 能力边界,集成第三方服务与自定义工具。
接入 OpenAI、Claude、Llama 等 LLM
Google 搜索、代码执行、数据库查询
Function Calling、ReAct、计划执行
系统化评估检索质量与生成效果
| 召回率 (Recall) | 相关文档被成功检索的比例 |
| 精确率 (Precision) | 检索结果中相关文档的比例 |
| MRR | 首个相关文档的平均排名倒数 |
| NDCG | 考虑排序的加权相关性评分 |
| 忠实度 | 答案是否基于检索上下文 |
| 相关性 | 答案与问题的匹配程度 |
| 完整性 | 是否覆盖问题的各个方面 |
| 幻觉率 | 编造未提供的信息的比例 |
从简单对话到自主任务执行的演进
从原始文档到可用记忆的完整流程
保护应用免受滥用与攻击
从日志到指标,全链路追踪应用表现
执行轨迹、变量值、错误堆栈
延迟、Token 消耗、成功率
跨节点调用链、依赖关系
系统化定位与解决问题
从使用者成长为贡献者,共建开源生态。
提交 PR,修复 Bug,实现新功能
为社区创建 Model/Tool/Agent 插件
帮助文档多语言化,降低使用门槛
自动转录 Apple Watch 语音备忘录,生成结构化笔记并同步到 Notion。
chatbot:
system_prompt: |
你是 GDPR 合规助手。必须:
1. 引用具体条款回答问题
2. 标注置信度 (高/中/低)
3. 复杂情况建议咨询法务
4. 不提供法律意见,仅提供信息
guardrails:
confidence_threshold: 0.6
fallback: "需要更多上下文,将为您转接人工。"
有问题?欢迎随时联系