中文 / EN
Workshop 2025

Dify x Hong Kong OSS

从入门到生产:构建 GenAI 应用

基于 Dify 平台的工作流编排、知识库管理与生产部署实践

crazywoola (Banana)
Developer Relations @ Dify
banana@dify.ai

Workshop 议程

01
开场与目标
听众背景对齐、今天的核心产出
3min
02
Dify 与 LLM 原生开发
平台定位、应用类型、为什么现在
5min
03
Workflow 核心
节点职责、编排模式、端到端演示
9min
04
Knowledge / RAG 核心
分块策略、检索优化、质量评估
7min
05
生产化要点
部署、生产架构、关键配置
6min
S2
Session 2 (15:50)
进阶实践 · 深度选修 · 实战项目
30min
Session 1 合计 30 min

什么是 Dify?

Dify 是开源的 LLM 应用开发平台,连接大模型能力与生产级应用。

可视化编排
Workflow、Agent、Chatflow 多模式
知识库管理
RAG 全流程,文档到向量检索
插件生态
模型、工具、扩展插件市场
可观测性
全链路日志、Tracing、成本追踪
人工干预 (HITL)
流程中的人工审核与审批节点
技能
可复用的工具能力单元
触发器
定时、事件与 Webhook 驱动流程启动

全球社区数据

开源生态驱动,GitHub Top 100 项目

1M+
Powered by Dify
130K+
GitHub Stars
150+
覆盖国家
1000+
开源贡献者
60+
行业应用
550M+
总下载量

LLM 应用开发生命周期

2017
Transformer
Attention is all you need
2020
GPT-3
Few-shot 涌现能力
2023-24
应用框架
Dify 等平台崛起
2025+
工程化
生产级、标准化
为什么是现在?
算力、模型、数据三大要素齐备,LLM 应用进入工程化阶段

传统开发 vs LLM 原生开发

传统软件开发

核心逻辑 确定性 (Deterministic)
If-Then-Else 严密控制
数据处理 结构化 (SQL/JSON)
Schema 定义先行
测试方法 单元测试 (Pass/Fail)
逻辑覆盖率

LLM 原生开发

核心逻辑 概率性 (Probabilistic)
Prompt + Context 引导
数据处理 非结构化 (Embedding)
语义检索与理解
测试方法 评估 (Eval)
准确率、幻觉率、相关性

Workflow 工作流编排

可视化构建复杂的 AI 处理流程,从简单对话到多步骤自动化。

1
输入定义
Schema 校验
2
知识检索
RAG 增强
3
LLM 处理
智能生成
4
输出格式化
结果返回

四种应用类型

Chatbot

低复杂度

对话式 AI,保持上下文记忆,适合客服、问答场景

多轮对话 上下文保持

Agent

中复杂度

自主任务执行,工具调用能力,适合研究、分析场景

工具调用 自主决策

核心节点类型

分类 节点 功能说明
输入/输出 Start 定义输入参数 Schema,触发工作流执行
End 定义输出格式,终止工作流
处理 Code Python/Node.js 代码执行,数据转换
Template 字符串模板渲染,Prompt 构建
AI LLM 大模型调用,支持多供应商、参数配置
Knowledge 知识库检索,RAG 上下文注入
控制流 If/Else 条件分支,基于表达式的路由
Iteration 列表迭代,批量处理数据

可观测性与调试

Execution Trace • Run ID: wf_8f3a9b2c
0.01s Start Input validated
0.45s Knowledge Retrieval 3 chunks retrieved (score > 0.75)
0.78s LLM Call 342 tokens generated
1.24s End Execution complete
Tokens: 1,245 prompt | 342 completion Cost: $0.0042
变量检查器
每步变量值查看
节点重试
失败节点重新执行
差异对比
多轮执行对比

Knowledge 知识库

完整的 RAG 解决方案:从文档摄入到智能检索的全流程管理。

Ingest Pipeline
1. 文档接入 PDF / DOCX / MD
2. 分块策略 Recursive / Semantic / Markdown
3. 向量化 text-embedding-3-large
4. 向量存储 Weaviate / Milvus / Qdrant
Query Pipeline
1. Query Rewrite 统一意图 + 补全上下文
2. Hybrid Search 向量检索 + 关键词检索
3. Rerank 重排 Top-K 候选片段
4. Context Assembly 拼接上下文后送入 LLM
关键结论:Ingest 决定召回上限,Query 决定最终答案质量。

分块策略

策略 适用场景 分块大小 重叠
Recursive 通用文档处理 500-1000 chars 50-100
Semantic 技术内容、代码 句子级别 N/A
Fixed 结构化数据 自定义 0
Markdown 文档、Wiki 标题层级 上下文
推荐配置
CHUNKING
methodrecursive
chunk_size800
chunk_overlap80
separators\\n\\n, \\n, . , 空格
INDEXING
embedding_modeltext-embedding-3-large
vector_dbweaviate
rerankenabled
top_k5

检索优化

基础检索

methodsemantic_search
top_k5
score_threshold0.75

混合检索 + Rerank

methodhybrid_search
top_k20 (初筛)
rerank_modelcohere-rerank-v3
top_n5 (最终)
filtermetadata.source = official_docs
语义搜索
基于向量相似度
关键词搜索
BM25 算法
混合搜索
语义 + 关键词

部署与集成

使用 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
                        

生产架构

入口层
CDN / WAF Nginx Load Balancer
应用层
Dify API (Multi Pods) Web / Console Worker Nodes
数据层
PostgreSQL (HA) Redis (Sentinel) Weaviate / Milvus Cluster
异步任务层
Celery Queue Scheduled Jobs Retry / Dead Letter

安全检查清单

  • 修改默认密码
  • 启用 HTTPS / SSL 证书
  • 配置 CORS 策略
  • 设置限流策略
  • 开启审计日志
  • 网络隔离向量数据库
  • 关键环境变量

    变量 说明 示例值
    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

    Session 2

    深度进阶 · 动手实战

    进阶实践
    Code Node · 低代码 vs 专业代码 · 插件生态
    深度选修 & 实战项目
    RAG 评估 · Agent 架构 · 安全护栏
    Apple Watch 工作流 · GDPR 合规机器人

    Code Node 最佳实践

    使用 Python/Node.js 扩展 Workflow 能力

    适用场景

    • • 复杂数据转换与清洗
    • • 自定义业务逻辑判断
    • • 调用外部算法模型
    • • 敏感数据脱敏处理

    安全限制

    • • 执行超时:默认 60 秒
    • • 内存限制:512 MB
    • • 禁止网络请求(沙箱)
    • • 标准库可用,三方库受限
    示例:风险评分逻辑
    
    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}
                                

    低代码 vs 专业代码

    找到可视化编排与代码的最佳结合点

    维度 低代码编排 (DSL) 专业代码 (Pro-Code)
    核心用途 流程编排、条件分支、RAG 管道 复杂算法、自定义业务逻辑
    交付速度 快速迭代,业务人员可参与 需要开发周期,但灵活性高
    可维护性 可视化直观,易于理解 需要文档,代码审查保障
    最佳实践 80% DSL + 20% Code — 胶水逻辑用可视化,核心计算用代码
    黄金法则
    可视化负责「编排」,代码负责「计算」。两者通过变量无缝传递数据。

    插件生态系统

    扩展 Dify 能力边界,集成第三方服务与自定义工具。

    模型插件

    接入 OpenAI、Claude、Llama 等 LLM

    工具插件

    Google 搜索、代码执行、数据库查询

    Agent 策略

    Function Calling、ReAct、计划执行

    插件市场
    官方维护 + 社区贡献,持续增长的工具生态
    访问市场

    RAG 评估方法(可选深入)

    系统化评估检索质量与生成效果

    检索质量指标

    召回率 (Recall) 相关文档被成功检索的比例
    精确率 (Precision) 检索结果中相关文档的比例
    MRR 首个相关文档的平均排名倒数
    NDCG 考虑排序的加权相关性评分

    生成质量指标

    忠实度 答案是否基于检索上下文
    相关性 答案与问题的匹配程度
    完整性 是否覆盖问题的各个方面
    幻觉率 编造未提供的信息的比例
    黄金测试集 (Gold Set)
    建立 50-100 个标注好的问答对,作为回归测试基准。每次策略调整前跑一遍,确保不退化。

    Agent 架构设计(可选深入)

    从简单对话到自主任务执行的演进

    推理 (Reasoning)
    理解任务目标
    行动 (Acting)
    调用工具执行
    观察 (Observing)
    获取执行结果
    迭代 (Iterating)
    循环直至完成
    策略模式
    Function Calling
    结构化工具调用
    策略模式
    ReAct
    推理与行动交替
    策略模式
    Plan & Execute
    先规划再执行

    知识库 Pipeline 深度解析(可选深入)

    从原始文档到可用记忆的完整流程

    Ingest Pipeline
    Parse PDF / Markdown / HTML
    Chunking Semantic / Markdown / Fixed
    Enrich Summary 补充摘要与元数据
    Embedding + Store Milvus / Weaviate
    Query Pipeline
    Query Rewrite 重写问题,增强召回
    Hybrid Search Vector + BM25
    Rerank 排序最相关 Top-N
    Context Assembly 拼接上下文交给 LLM
    Garbage In, Garbage Out —— 上游质量决定下游效果

    安全与护栏 (Guardrails)(可选深入)

    保护应用免受滥用与攻击

    输入防护

    • • 敏感词过滤与内容审核
    • • Prompt 注入检测
    • • 请求频率限制 (Rate Limit)
    • • 用户身份验证与授权

    输出防护

    • • 幻觉检测与事实校验
    • • PII 数据脱敏
    • • 输出长度限制
    • • 有害内容过滤
    预算护栏 (Budget Guardrails)
    设置单次请求 Token 上限、每日消费上限,防止成本失控。当触发阈值时自动降级或熔断。

    可观测性深度实践(可选深入)

    从日志到指标,全链路追踪应用表现

    日志 (Logs)

    执行轨迹、变量值、错误堆栈

    指标 (Metrics)

    延迟、Token 消耗、成功率

    追踪 (Traces)

    跨节点调用链、依赖关系

    成本分析看板
    1.2M
    总 Token 数
    $42.5
    今日消费
    2.3s
    P99 延迟
    99.8%
    成功率

    调试技巧与故障排查(可选深入)

    系统化定位与解决问题

    常见问题

    超时错误 → 检查 LLM 节点超时设置
    变量未找到 → 检查节点输出变量名
    检索质量差 → 调整分块策略或阈值
    API 限流 → 添加重试或降级逻辑

    排查步骤

    1 查看执行日志,定位错误节点
    2 检查变量面板,验证数据流
    3 使用预览模式,逐步执行测试
    4 启用 Trace,查看详细调用链
    5 对比历史成功/失败执行差异

    参与社区贡献(可选)

    从使用者成长为贡献者,共建开源生态。

    贡献代码

    提交 PR,修复 Bug,实现新功能

    开发插件

    为社区创建 Model/Tool/Agent 插件

    翻译文档

    帮助文档多语言化,降低使用门槛

    Discord 社区
    GitHub Discussions
    @dify_ai

    实战项目一

    Apple Watch 录音转录工作流

    自动转录 Apple Watch 语音备忘录,生成结构化笔记并同步到 Notion。

    语音输入
    Apple Watch
    Whisper 转录
    语音 → 文字
    LLM 总结
    提取要点
    同步 Notion
    结构化存储

    实战项目二

    GDPR 合规问答机器人

    知识库构建

    • • GDPR 官方文档
    • • ICO 指南
    • • 公司内部隐私政策
    • • 数据处理协议

    合规特性

    • • 每回答必有来源引用
    • • 置信度评分
    • • 低置信度转人工
    • • 免责声明自动追加
    
    chatbot:
      system_prompt: |
        你是 GDPR 合规助手。必须:
        1. 引用具体条款回答问题
        2. 标注置信度 (高/中/低)
        3. 复杂情况建议咨询法务
        4. 不提供法律意见,仅提供信息
      guardrails:
        confidence_threshold: 0.6
        fallback: "需要更多上下文,将为您转接人工。"
                            

    学习资源

    官方文档

    docs.dify.ai

    访问 →

    GitHub

    github.com/langgenius/dify

    Star →

    社区讨论

    Discord Community

    加入 →

    后续步骤

    加入 Discord 社区
    Star GitHub 仓库
    部署你的第一个实例
    分享你的工作流
    🙏

    感谢参与

    有问题?欢迎随时联系

    crazywoola (Banana)
    banana@dify.ai
    Dify Developer Relations