保姆级教程 · 面向希望让 AI 使用自己资料的创作者
项目 信息 课程系列 AI 创作入门 · L1-D 智能体/自动化 课程编号 L1D-05 难度等级 ★★★☆☆ 适用人群 有历史文章、脚本、产品资料或团队文档,想搭建资料问答助手的人 预计学时 80-100 分钟 前置课程 L1D-01、L1D-03;参考 L0-2 名词词典 更新日期 2026 年 8 月 内容声明 RAG 只能提高资料可追溯性,不能自动保证资料真实、完整或拥有商用授权。
学完本教程后,你将能够:
2026-08-01-账号定位说明-v2.md。文件名混乱会让后续管理非常痛苦。RAG(Retrieval-Augmented Generation,检索增强生成)= 先检索,再生成。
用户提问时,系统先在你的知识库里找相关片段,再把这些片段连同问题交给模型回答,并要求标出依据。
用户提问
│
▼
检索:在知识库中找相关片段(Top-K 个)
│
▼
拼入:把找到的片段 + 问题一起交给模型
│
▼
生成:模型基于片段回答,标注来源
│
▼
返回:答案 + 来源引用
| 方法 | 做法 | 优点 | 缺点 |
|---|---|---|---|
| 全塞进提示词 | 把所有资料放在 Prompt 里 | 简单直接 | 资料一多就超长度限制,成本高,模型容易"迷路" |
| RAG | 先检索相关片段,只把片段交给模型 | 突破长度限制,成本可控,可引用来源 | 检索不到就答不了,依赖切分和检索质量 |
打个比方:全塞进提示词像"考试时把整本书翻开放在桌上,翻到哪算哪";RAG 像"考试前先查目录找到相关页,只带这几页进考场"。后者更高效,但前提是目录(检索)要准。
RAG 不是万能的:
核心认知:RAG 让答案更容易追溯(有来源),但不让答案更"正确"。资料的质量决定回答的质量。
在上传任何文件之前,先列一张清单:
| 字段 | 示例 |
|---|---|
| 文档名称 | 账号定位说明 v2 |
| 来源 | 负责人张三 / 链接 / 原始文件路径 |
| 生效日期 | 2026-08-01 |
| 版本 | v2 |
| 状态 | 有效 / 过期 / 待审核 |
| 可回答范围 | 账号语气、栏目设置、禁用表达 |
为什么需要清单:过期文档、互相矛盾的版本和未经确认的草稿不要混在一起。RAG 会忠实检索进去的内容,却不会替你判断哪个版本更应该生效。没有清单,你连"知识库里到底有什么"都不知道。
一篇文章不能总是作为一个巨大块,也不应从任意字符处切断。
切分原则:
文档标题 + 小节标题 + 一个完整段落
为什么这样切:
初始切分建议:按 300-800 个汉字尝试,再用测试问题调整。
❌ 从第 347 个字符处切断(可能把一句话切成两半)
✅ 按"## 小节标题"切分,每个片段包含:
- 文档标题(标注来源)
- 小节标题
- 一个完整段落
| 策略 | 做法 | 适合 |
|---|---|---|
| 按段落切 | 每个自然段一个片段 | 短文章、FAQ |
| 按标题切 | 每个"## 小节"一个片段 | 长文章、手册 |
| 固定长度切 | 每 500 字一个片段(有重叠) | 格式不统一的文档 |
| 按问答切 | 每个问答对一个片段 | FAQ、客服文档 |
新手建议:先用"按标题切"开始,大部分文档都适用。跑通后再根据测试结果调整。
是什么:系统把文字转换成可比较的数字表示(向量),用于寻找语义相近的片段。
为什么重要:不同向量模型对中文、代码、表格和混合语言的表现不同。默认的向量模型不一定最适合你的资料。
调优方向:
常见错误:用默认向量模型不管不问,结果检索质量很差,却以为是切分或 Top-K 的问题。
是什么:每次检索取回多少个候选片段。K=3 就是取最相关的 3 个片段。
怎么调:
| K 值 | 效果 | 风险 |
|---|---|---|
| K=1 | 只取最相关的 1 个 | 可能漏掉关键定义 |
| K=3-5 | 取 3-5 个候选 | 平衡精准和覆盖(推荐起点) |
| K=10+ | 取很多个 | 无关信息多,成本高,模型可能"迷路" |
调优方法:先用 K=3 测试,观察"有没有因为漏检索而答错的问题"。如果有,加到 5。如果加到 5 后无关信息变多,尝试用重排序优化。
是什么:初步检索按语义相似度找候选(可能找到很多),重排序再结合问题细节把更相关的片段排前。
为什么有用:初步检索(向量相似度)是"粗筛",重排序是"精排"。涉及数字、版本、专有名词时,重排序通常很有帮助。
打个比方:初步检索像"在图书馆用关键词搜到 20 本书",重排序像"馆员帮你把最相关的 3 本挑出来放最前面"。
使用建议:如果平台支持重排序功能,建议开启。特别是资料中有很多相似但不同版本的文档时,重排序能帮你在 v1 和 v2 之间选对版本。
是什么:给片段增加标签(平台、日期、栏目、版本、权限),检索时先按标签过滤,再按语义搜索。
示例:
问题:"当前账号的禁用词有哪些?"
检索流程:
1. 元数据过滤:status = "有效"(排除过期文档)
2. 语义搜索:在有效文档中找"禁用词"相关片段
3. 重排序:把最相关的排前
4. 返回 Top-3 片段
为什么重要:没有元数据过滤,系统可能返回一份 2024 年的过期规则,而不是 2026 年的最新规则。版本问题是 RAG 最容易踩的坑之一。
你是资料问答助手。
1. 只依据检索到的资料回答,不把常识当作本库事实。
2. 每个关键结论后给出文档名称、版本和小节。
3. 资料没有覆盖问题时,明确回答"当前资料不足",
列出需要补充的资料。
4. 如果资料之间冲突,分别列出版本和冲突点,不自行裁决。
5. 不输出用户没有权限查看的内容,
不泄露检索上下文中的无关信息。
6. 不要根据常识补充资料中没有的数字、日期和具体规则。
结论:___________________________
依据:___________________________
(文档名称 + 版本 + 小节)
适用版本/日期:_________________
仍需确认:_____________________
拒答不是失败,而是可靠助手的标志。以下情况必须拒答:
拒答格式:
当前资料不足以回答这个问题。
已检索到以下相关但不充分的资料:
- [文档名称,版本]
建议补充以下资料:
- _________________
关键认知:一个会拒答的助手,比一个"什么都能答但答错"的助手可靠得多。用户信任的是"说不知道的勇气",不是"什么都说"的自信。
把已经发布的 20 篇文章整理为 Markdown,文件名包含日期和标题;另外提供账号定位、禁用词和栏目规则。
status: effective。| 编号 | 问题类型 | 示例问题 | 期望表现 |
|---|---|---|---|
| Q1 | 原文事实 | "账号过去写过哪些素材归档方法?" | 找到正确片段,引用准确 |
| Q2 | 原文事实 | "禁用词有哪些?" | 列出禁用词,附来源 |
| Q3 | 同义表达 | "这个账号不碰什么话题?"(换一种问法) | 仍能检索到禁用词 |
| Q4 | 跨文档总结 | "这个账号的内容风格有什么特点?" | 引用多篇文章,不混淆 |
| Q5 | 版本问题 | "当前的栏目设置是什么?" | 优先返回最新版本 |
| Q6 | 时间敏感 | "下个月平台一定奖励什么内容?" | 拒答或标记"需要查最新规则" |
| Q7 | 资料外问题 | "明天天气怎样?" | 明确拒答 |
| Q8 | 资料外问题 | "某产品的最新价格是多少?" | 拒答,建议查官方渠道 |
| Q9 | 冲突问题 | (如果 v1 和 v2 有矛盾) | 展示冲突,不私自合并 |
| Q10 | 错别字 | "禁用词有哪写?"(错别字) | 仍能检索到 |
| Q11 | 超长问题 | 一段 500 字的提问 | 能提取关键信息并回答 |
| Q12 | 敏感问题 | 涉及医疗建议的问题 | 拒答或提示咨询专业人士 |
| 问题类型 | 测试问题 | 检索是否命中 | 引用是否支持结论 | 回答是否添加了资料没有的内容 | 合格? |
|---|---|---|---|---|---|
| 原文事实 | ☐ ☐ | ☐ ☐ | ☐ ☐ | ☐ | |
| 同义表达 | ☐ ☐ | ☐ ☐ | ☐ ☐ | ☐ | |
| 版本问题 | ☐ ☐ | ☐ ☐ | ☐ ☐ | ☐ | |
| 多文档总结 | ☐ ☐ | ☐ ☐ | ☐ ☐ | ☐ | |
| 资料外问题 | ☐ ☐ | ☐ ☐ | ☐ ☐ | ☐ | |
| 冲突资料 | ☐ ☐ | ☐ ☐ | ☐ ☐ | ☐ |
测试 12-20 个问题
→ 记录检索命中率和引用准确率
→ 如果命中率低:
→ 检查切分是否太小或太大
→ 检查向量模型是否适合中文
→ 调整 Top-K(从 3 调到 5)
→ 如果命中率 OK 但引用不准:
→ 开启重排序
→ 调整系统提示词(更强调"只依据资料")
→ 如果资料外问题没有拒答:
→ 加强拒答规则
→ 检查是否模型在用常识补充
调优前提:优化切分和 K 值前,先确认问题本身覆盖了真实使用场景。用不真实的问题调优,只会越调越偏。
可能是以下原因之一:
排查顺序:先看检索到的片段(大多数平台能看到检索结果),判断是"没找到"还是"找到了但回答错了"。前者调检索,后者调提示词。
不能。它让答案更容易追溯(有来源引用),但资料本身仍可能错误。涉及日期、价格、规则和法律判断,必须查原始来源。RAG 是"帮你快速找到资料中的相关段落",不是"帮你确认资料是否正确"。
不是。无关、重复和过期资料会降低命中质量。小而干净、版本清楚的知识库更容易维护。一个 30 份高质量文档的知识库,效果通常好过 300 份混杂数据的知识库。
可以,但有前提:
核心原理相同(检索 + 生成),但切分方式、向量模型、重排序能力和配置灵活度有差异。建议用同一组测试问题在 2 个平台上对比,选择命中率更高、拒答更可靠的。不要只看"界面好不好看"。
现象:一次性把几百个文件全传上去,结果回答质量很差,而且不知道是哪些文件造成的。
原因:没有建立资料目录和版本规则,混杂数据互相干扰。过期资料和有效资料混在一起,系统分不清该用哪个。
处理:先建立资料目录和版本规则,分批加入并测试。每加一批,跑一次测试集,确认质量不下降。如果加了某批后质量骤降,就是那批资料有问题(可能是格式不对、内容过期或与现有资料矛盾)。
现象:测试时只问"账号定位是什么"这类直接能从标题找到答案的问题,觉得"挺好用",上线后用户问了各种刁钻问题,系统各种答错。
原因:只测了简单情况,没有覆盖边缘情况。
处理:一定加入以下五类问题:
现象:知识库运行了半年,里面的资料早就过期了,但还在被检索和引用,导致回答越来越不准。
原因:知识库没有负责人和过期处理周期。失效资料继续可检索,风险会随着自动化扩大。
处理:
expiry_date 元数据。资料问答解决了"依据什么回答",下一篇《L1D-06 工具调用与外部集成:让 Agent 能安全使用 API》会继续讲搜索、图片、TTS、数据库和 MCP 工具的接入。其中会专门讲如何把本项目 vbox 的对外 TTS API 封装成一个 Agent 工具节点。
教程版本:v1.0 最后更新:2026-08 内容时效:知识库产品的切分、检索和隐私配置会更新,正式使用前请复核平台条款。涉及用户数据时,确认数据存储位置和隐私政策。