ARTICLE · 1266184
【AI工具链】跟着敲一遍⑨:Dify 知识库引用跑通



.
.
阅读本文 
系列:跟着敲一遍 · 21 天本地 AI 工具链 Day 9(第 9/21 篇) 前情:⑧ 把 Dify 的 15 个容器跑通了;⑨ 让它"懂你的资料"。 实测环境:openEuler 22.03 / 16GB / Dify 1.16.1 / qwen2.5:1.5b / nomic-embed-text
文档传进 Dify 知识库了,索引也显示"可用",可一问还是通用闲聊——不引用原文,也没有来源标注。问题通常不在模型,而在三个开关:挂载、注入、标注。少一个,RAG 就退化成裸模型。这篇把三个开关一次讲清,照着开完,回答就会引用你的资料。
qwen2.5:1.5b | |
nomic-embed-textbge-m3(1.2GB,中文更优) | |
http://172.17.0.1:11434 |
16GB 内存可以放心跑 1.5b + embedding;8GB 环境严禁 7B。

[1] 来源 | |
三种现象对应三个不同的开关,不要混着调。

① 建知识库并索引
Dify → 知识库 → 创建知识库 名称:day9_kb_test 上传:文本型 Markdown(不要扫描 PDF) embedding:nomic-embed-text 或 bge-m3 等待状态:可用(Available) 
📖 初学者讲解:扫描 PDF 没有文本层,Dify 默认无 OCR,会"索引成功但 0 分段"。优先用 Markdown 或文本型 PDF。
② 创建 Chat 应用,挂载知识库(开关一)
工作室 → 创建应用 → 聊天助手(Chat) 名称:day9_kb_chat 编排页 → 上下文 → 添加 → 选择 day9_kb_test 📖 初学者讲解:应用不挂知识库,就不会去检索——这是第一个开关。类型必须选 Chat,不要选 Chatflow(本环境 WebSocket 会卡"同步数据中")。
③ 提示词插入 {{#context#}}(开关二)
你是一个严谨的技术助手。请仅依据下方资料回答问题。 资料: {{#context#}} 如果资料没有相关信息,请回答「资料未提及」。 
📖 初学者讲解:{{#context#}} 是 Dify 的上下文占位符,运行时会被"检索到的片段"替换。少了它,检索结果进不了提示词,模型只能凭记忆回答——这就是"回答像闲聊"的根因。
④ 开启引用与归属(开关三)
应用 → 编排 → 右上角设置 开启:引用和归属(Citation & Attribution) 📖 初学者讲解:不开这个,回答可能正确,但不会显示 [1] day9_kb_test 这样的来源编号。RAG 的价值一半在"可溯源",这个开关必须开。
⑤ 发布并验证
点「发布」→ 调试框提问一个只可能在文档中出现的问题 预期:引用原文 + 末尾带来源编号 再问一个资料外的问题 → 应回答「资料未提及」 📖 初学者讲解:第二个问题很关键——它证明模型真的在"查资料",而不是凭训练记忆编。

| 挂载 | ||
| 注入 | {{#context#}} | |
| 标注 |

RAG 的链路是四步:
检索(挂载) → 注入({{#context#}}) → 生成(模型) → 标注(引用开关) 没挂载:第一步就断了,模型不知道有资料 没注入:检索结果在系统里,但没拼进提示词 没标注:答案对了,但读者无法验证出处
三个开关是串联的,不是并联的——任何一个关着,整条链都不完整。

docker start docker-weaviate-1docker compose up -d weaviate | ||
{{#context#}} | ||
qwen2.5:1.5b | ||
知识库状态「可用」,分段数 > 0 应用「上下文」里能看到 day9_kb_test提示词里能看到 {{#context#}}引用与归属开关为开启 提问资料内问题 → 引用原文 + 来源编号 提问资料外问题 → 回答「资料未提及」

一、选择题(每题4个选项)
1. RAG 里负责"把文档变成向量"的模型是?
A. qwen2.5:1.5b
B. nomic-embed-text
C. nginx
D. redis
2. 应用不挂知识库,会发生什么?
A. 正常引用
B. 完全不检索
C. 只标注来源
D. 自动建库
3. 提示词缺 {{#context#}} 的后果是?
A. 模型无法启动
B. 检索结果进不了提示词
C. 知识库被删
D. 索引变慢
4. 回答正确但没有来源编号,应该开哪个开关?
A. 挂载
B. 注入
C. 引用和归属
D. 重新索引
5. 扫描版 PDF 上传后 0 分段,正确做法是?
A. 换更大模型
B. 换文本型 Markdown / PDF
C. 重启 Dify
D. 加内存
二、填空题(2 题)
1. Dify 的上下文变量占位符是 ________。
2. 三个开关是:挂载、注入、__。

🎁 答对粉丝福利:
将答案按顺序发至评论区, 全部答对的前50位粉丝,将获得:
✅ 赠送完整的《21天工具链接实验手册 》


















































































