Dify配置指引_v1.md 7.71 KB

Dify 知识库 + 飞书 Bot 配置指引

目标:把 knowledge/*.md 导入 Dify,配置业务问答 + 需求预评审两个能力,发布到飞书机器人。


总览:三步走

Step 1  上传知识库        knowledge/*.md → Dify 知识库
Step 2  配置应用          创建 Chatbot,写系统提示词,挂载知识库
Step 3  接入飞书          Dify 发布 → 飞书自定义机器人

Step 1:创建并上传知识库

1.1 新建知识库

进入 Dify → 左侧「知识库」→ 右上角「创建知识库」

字段 填写
知识库名称 产品规则库-v1
描述 医生App产品规则,含认证/提现/问诊/门诊/患者等模块

1.2 上传文件

优先上传这 7 个主模块(其余小模块可合并进来或后续追加):

knowledge/AUTH_rules.md          医师认证   545条  173KB
knowledge/INCOME_rules.md        收入提现   162条   70KB
knowledge/INQUIRY_rules.md       问诊咨询   257条   79KB
knowledge/CLINIC_rules.md        门诊排班   174条   55KB
knowledge/PATIENT_rules.md       患者管理   178条   54KB
knowledge/NOTIFICATION_rules.md  通知消息    33条    9KB
knowledge/BACKSTAGE_rules.md     运营后台    23条    7KB

1.3 分段设置(关键!)

上传时选择「自定义分段」:

参数 推荐值 原因
分段标识符 \n\n (双换行) 每条规则之间有空行,自然分段
最大分段长度 500 tokens 一条规则平均 100~200 字,500 保证上下文完整
分段重叠 50 tokens 保证相邻规则有关联时不断链
过滤空白段 开启 去掉只有 --- 的分隔行

1.4 索引模式

选「高质量」→ 使用 Embedding 模型(建议 text-embedding-3-smallbge-m3

⚠️ 高质量模式会消耗 token,但检索准确率显著更高,必选。

1.5 检索设置

参数 推荐值
检索方式 混合检索(全文 + 语义)
Top K 6
Score 阈值 0.5
Rerank 开启(如有 Rerank 模型)

Step 2:创建应用(Chatbot)

2.1 新建应用

「工作室」→「创建应用」→ 选「聊天助手」→ 基础编排

字段 填写
应用名称 产品知识助手
描述 回答产品业务规则,支持需求预评审

2.2 挂载知识库

在「上下文」区域 → 点击「+」→ 选择 产品规则库-v1

2.3 系统提示词(直接复制)

你是医生App的产品知识助手,专职回答产品业务规则问题。知识来自内部规则库(含测试用例、Figma设计稿,培训文档补充中)。

## 一、能力范围

支持:认证、提现/收入、问诊、门诊、患者管理、通知等模块的产品规则查询、版本演进说明、需求预评审。

不支持:技术实现细节、UI视觉规范、运营策略、数据统计分析。遇到此类问题,说明超出范围并建议找对应同学。

## 二、回答规则

**版本处理**
- 检索到同一功能多个版本的记录时:以最新版本为准,如各版本行为有明显差异则主动说明演变过程
- 只有文档明确写明"功能废弃/不再支持"时,才判断为已删除;否则最新版有记录即视为当前有效
- 用户指定版本查询时,优先引用该版本来源的规则

**来源可信度**
- 来自📚培训文档:权威可信,直接引用
- 来自🧪测试用例:行为层面可信;涉及关键决策时提示用户确认最新产品文档
- 来自🎨Figma设计稿:设计层参考,培训文档和测试用例优先

**数据质量处理**
- 规则结果仅为"满足预期"且无具体内容时:说明该功能经测试验证可用,但详细规则待文档补充
- 规则中出现"[截图]"占位符时:忽略该占位符,只呈现文字内容

**知识缺口**
- 知识库无相关内容:明确告知"当前知识库未覆盖此规则",不编造,不猜测

**模糊问题**
- 问题涉及多种场景或角色(如未说明医生类型/认证状态)时:先追问明确再回答,不要乱猜

## 三、回答格式(自适应)

简单问题:结论前置,直接给规则 + 来源版本,简短回答。

复杂问题(多条规则或有版本差异):
  当前规则(最新版):...
  版本演进(如有变化):
    · vX.XX:...
    · vX.XX:...
  来源:版本号 · 数据类型

需求预评审(用户输入含"评审"/"新增"/"修改"/"改动"时):
  影响模块:...
  涉及规则:...
  潜在冲突:(有则列出,无则说明"暂未发现冲突")
  建议:...

## 四、表达方式

- 将知识库中的"前提/操作/结果"结构综合成自然语言表达,不要机械地照搬三段式格式
- 简洁专业,结论前置,不啰嗦
- 简单问题不超过200字,复杂问题按需展开

2.4 模型参数

参数 推荐值
模型 claude-3-5-sonnetgpt-4o(推荐)
Temperature 0.3(保证规则回答稳定,不发散)
最大 tokens 2000

2.5 开场白(可选)

你好!我是产品知识助手,可以帮你:
- 🔍 查询产品业务规则(如:医生提现有哪些限制?)
- 📋 需求预评审(如:评审 新增提现手续费功能)

直接提问即可。

2.6 发布前测试

在调试区依次测试:

  • 医生提现失败的原因有哪些?
  • 第1类医师和第2类医师的区别
  • 评审 新增医生端消息免打扰功能

确认回答引用了知识库内容后再发布。


Step 3:接入飞书

方式选择

方式 适合场景 配置难度
Dify 官方飞书渠道(推荐) 直接在 Dify 配置,无需代码 ⭐⭐
飞书自定义机器人 + Webhook 需要自己写消息转发服务 ⭐⭐⭐⭐

3.1 Dify 官方飞书渠道配置

  1. 应用发布页 → 「访问 API」→ 复制 API Key 和 API URL

  2. 飞书开放平台(open.feishu.cn)→ 创建企业自建应用

  3. 应用权限勾选:

    • im:message(接收消息)
    • im:message:send_as_bot(发送消息)
    • im:chat(群聊)
  4. 事件订阅 → 添加事件 接收消息 im.message.receive_v1

    • 请求地址填:Dify 提供的 Webhook 地址
  5. 回到 Dify → 「发布」→「飞书」渠道 → 填入飞书应用的:

    • App ID
    • App Secret
    • Verification Token
    • Encrypt Key
  6. 飞书应用发布上线 → 在飞书群内 @ 机器人测试

3.2 飞书群使用方式

群内直接 @ 机器人:
@产品知识助手 医生工作室开通的条件是什么?

私聊机器人:
直接发消息,不需要 @

Step 4:后续知识库更新流程

每次有新版本 atoms 时:

# 1. 重新生成知识文档
python3 scripts/build_knowledge_docs.py

# 2. 去 Dify 知识库 → 选对应文件 → "更新文件"
# (Dify 支持直接替换文件,无需重新配置)

💡 未来培训文档 doc_atoms 补充后,重新跑脚本生成更高质量的文档,再更新到 Dify 即可。


常见问题

Q:检索结果不准确,回答了不相关的内容?

  • 调高 Score 阈值到 0.6
  • 检查分段是否合理(每段应该是一条完整规则)

Q:回答太长、太啰嗦?

  • 系统提示词加:「回答控制在 300 字以内,用列表格式」

Q:飞书群里 @ 没有反应?

  • 检查飞书应用是否已发布并添加到群
  • 检查 Dify Webhook 地址是否正确配置了事件订阅

Q:知识库更新后旧内容还在被引用?

  • Dify 知识库更新文件后需要重新建索引(约 1~5 分钟),等待完成后再测试