知识库与 RAG

本讲目标

给它资料、让它引用;没依据的时候,让它闭嘴。

你会做出

一个带引用、会拒答的项目 v1。

120 分钟怎么排
  1. 课前课前准备
  2. 0–30补核心
  3. 30–75讲错题
  4. 75–120拆案例
  5. 课后课后作业

课前:先自学,再做 15 道题

上课前,先花点时间自己看一页材料,就三样:

  • 弄懂 3 个词:RAG(检索增强生成)= 摄取 → 切分 → 向量化 → 索引 → 检索 → 生成并引用、切分(chunk 大小 + 重叠)、检索质量(召回命中率)。
  • 记住 1 个比方:公司资料室——只按目录取用,旧版要标注,找不到就承认没有。
  • 记住 1 条红线:RAG 适合"资料明确、问题相对固定"的活儿;资料天天变、或者需要现算的,改用数据库或工具(第 5 讲)。

看完做 15 道自测题。哪几道大家错得多,直播时老师就重点讲哪几道。

直播 0–30|把核心快速过一遍

  1. RAG 不是"上传文件",是六步,哪一步坏了都坏得看不出来。 切分切断了句子 → 检索到半句话 → 答非所问;旧版混进来 → 政策过期;只召回 1 段 → 模型自己补 3 段 → 幻觉。
  2. 检索有"关键词"和"语义"两种,质量得能测。 关键词快,但漏同义;语义能抓到同义,但要向量化。检索质量就看召回命中率(答案所在的那段有没有被检索回来),这是 RAG 的体检指标。
  3. 引用要能查,版本要能追溯。 引用靠元数据(来源/版本/生效日期);没有元数据,"引用"就是编的。两种失败要分开记:①检索到了但答错(改提示),②该检索的没检索到(改切分/检索)——修错地方,越修越差。

直播 30–75|挑大家做错的题讲

  • 有人把知识库当垃圾桶,什么文件都往里丢,要按主题分库。
  • 引用是编的("根据资料 A 第 3 页",可 A 一共就 2 页),要抽检引用。
  • 旧文档没删,同一份制度存了两个版本,它一定会在某一天引用错。

直播 75–120|拆一个真实案例:美妆客服的 6 条红线

一家美妆集合店,客服 4 个人,产品知识散在各处,孕妇、过敏、功效、价格这类高风险问题经常答错。材料是三份产品资料(防晒乳 / 淡斑精华 / 面霜,精华标注"孕妇慎用"),加 6 条红线(医疗功效 / 绝对化用语 / 孕妇儿童 / 过敏 / 竞品 / 价格承诺)。测试问题就 6 个:孕妇能用吗、烟酰胺浓度、能祛斑吗、和 XX 比哪个好、敏感肌能用吗、有活动价吗。

这里埋了 3 个坑:问"能祛斑吗",资料明明写的是"色素沉着",模型顺着用户就答"能祛斑"(踩了医疗功效这条红线);问"孕妇能用吗",资料写"慎用",模型却简化成"可以用/不能用",正确的说法是"不建议自行使用,请咨询医生"+ 转人工;问"有活动价吗",价格根本不在库里,模型可能张口编个"199"。

课上这么走:先跑一遍统计错了几题,再往指令里加 命中红线 → {"handoff":true,"reason":...} 重跑对比。

这一讲想让你记住的就一句:知识库不是"让 AI 什么都能答",是"让它在不该答的时候停下来"。红线召回必须是 100%,不是 95%。

当堂练一个(8 分钟):随手找一份你熟悉的"规矩"——宿舍公约、社团招新章程、图书馆借阅规则都行,把它建成一个小知识库,然后连着问它三件事:①一件它写了的事(比如"借书能借几本"),看它能不能点回原文条款;②一件它没写的事(比如"暑假能续借吗"),看它是老实说"没写/未覆盖",还是硬编一个;③一件高危的(比如"逾期能不能不交罚款"),看它会不会拒答或转人工。

判断标准:①能点回原文、②说"未覆盖"不硬编、③高危拒答或转人工——三样都做到才算过关;只要它编出一个制度里没有的答案,就是失败。

课后:答疑 + 陪跑,交一份作业

本讲必过:知识库。 5 份资料(有来源/版本/生效日期)+ 切分策略 + 10 道题(覆盖/未覆盖/版本冲突/高风险)+ 量召回命中率 + 拒答/转人工。产出《知识库说明书》+ 测试记录。

这节课你该会的:

  1. 抽一个回答,5 秒内能找到它的原文出处;
  2. 问一个资料里没有的问题,它不编、说"未覆盖";
  3. 问一个高风险问题,它会拒答或转人工。

三个翻车:

  • 把知识库当垃圾桶——什么文件都往里丢,检索必然乱,要按主题分库;
  • 引用是编的——模型会写"根据资料 A 第 3 页",可 A 一共才 2 页,要抽检引用;
  • 旧文档没删——同一份制度存了两个版本,它一定会在某天引用错。

延伸自读:《原理讲义》§4

展开查看
一句话定义

RAG(检索增强生成)不是"上传文件让模型读",而是给模型一个"只许引用、只能看到"的事实底座:先从你自己的资料里检索出和问题相关的片段,把片段拼进提示,让模型照着生成答案并标出来源——让模型基于资料说话,而不是凭记忆去猜。

核心原理

1. 六步是一条链,任何一环坏了都"坏得看不出来"。 流程是:摄取 → 切分 → 向量化 → 索引 → 检索 → 生成并引用。前五步是幕后工程,用户只看得见第六步的答案,问题几乎都藏在看不见的地方:切分把句子切断 → 检索只回来半句话 → 答非所问;旧版没删 → 过期政策还被引用;只召回 1 段 → 模型自己脑补 3 段 → 幻觉。它像一条流水线,质检只看成品,可成品是错在上游的。

2. 切分要"切得对",还要"切不断"。 文档要切成小块才检索得动,但切块有两个代价:块太大,噪声多、答案被稀释;块太小,一句话被拦腰切断、意思就丢了。解法是"重叠"——相邻两块保留一段相同的文字,让跨块的句子至少能在一个块里保持完整。举个例子:某零售企业的说明书写"本精华含 5% 烟酰胺,孕妇慎用",要是正好在"5% 烟酰胺"这里切断,"慎用"就落到下一块了,检索"孕妇能用吗"就可能只命中上半句、丢掉最要命的下半句。

3. 关键词检索与语义检索,是两种不同的"找",质量必须能测。 关键词检索快、看得懂,但会漏同义——问"退货流程",就找不到写"退款政策"的段落;语义检索把文字转成向量、按"意思相近"去匹配,能抓同义,但得额外付向量化和索引的成本。谁更好不能凭感觉,得看召回命中率——"答案真正所在的那一段,到底有没有被检索回来"。这是 RAG 的体检指标,也是后面一切判断的基准。

4. 引用靠元数据,不靠模型"记得"。 "根据《XX》第 3 页"这类引用,只有手里真存着来源、版本、生效日期这些元数据时才可信;没有元数据,"引用"就是模型编出来的一行漂亮字。版本冲突是常态:同一制度有两个版本,不标清"哪个现行",就一定会在某次被引错。引用不是装饰,是可核查性——答案能回溯到来源,"该不该答"才验得了。

常见误区 / 边界
  • 别把"上传文件"当成"做好了 RAG"。 上传只是摄取一步,后面五步任一缺陷都会让答案出错,而且分不清是检索错还是生成错。
  • 别把两种失败混为一谈,更别修错地方。 ①检索到了但答错——问题在提示/生成,改指令;②该检索的没检索到——问题在切分/检索,改切分粒度或召回策略。反着修,越修越差。
  • 别用它做不擅长的事。 RAG 适合"有明确资料、问题相对固定"的场景。资料每天在变、需要实时计算或精确数值的(库存、价格、物流),应交给数据库或工具,而不是塞进知识库让模型猜。
  • 别混淆"能答"和"该答"。 知识库不是让 AI 什么都能答,而是让它在"资料里没有、或属高风险"时停下来——拒答或转人工。红线类问题(医疗功效、合规承诺)的召回必须是 100%,不是 95%。
一句可带走的话

RAG 的价值不在于"让它多答",而在于"让它只依据资料答、没依据就闭嘴"——先把答案挂回来源,再谈答得好不好。

案例包 · 15 题自测

展开查看

15 道题分三块,各约 5 道:①RAG 的六步和切分;②关键词/语义检索与召回命中率;③引用、版本和两种检索失败。

每题都有解析,容易错的地方标了出来。大家错得多的题,就是直播时要重点讲的。

  1. (单选)RAG 的完整流程是?
    • A. 上传文件 → 直接问答
    • B. 摄取 → 切分 → 向量化 → 索引 → 检索 → 生成并引用
    • C. 检索 → 生成 → 上传
    • D. 切分 → 上传 → 问答

答案:B | 解析:RAG 是六步,不是"上传文件"。 容易错:学生常选 A,把"上传 = RAG"。

  1. (单选)切分时"重叠(overlap)"的作用是?
    • A. 让文件更小
    • B. 防止答案恰好被切在两段之间
    • C. 加快检索速度
    • D. 减少 token 消耗

答案:B | 解析:相邻片段留重复文字,避免关键句被切断。

  1. (判断)关键词检索能抓"退钱"和"退款"这种同义替换。

答案:错 | 解析:关键词按字面匹配,同义会漏;要抓同义得用语义检索(向量化)。 容易错:学生常以为关键词检索够用。

  1. (单选)衡量"检索质量"的正确指标是?
    • A. 模型回答的字数
    • B. 召回命中率(答案所在段落有没有被检索回来)
    • C. 对话轮数
    • D. 响应速度

答案:B | 解析:检索没把对的段落找回来,模型再强也答不对。

  1. (单选)用户问"能带家属吗",制度里完全没有。正确回答是?
    • A. "可以,但需自费"
    • B. "未覆盖,请咨询行政"
    • C. "不可以"
    • D. "建议不要"

答案:B | 解析:制度没有就必须说"未覆盖",任何具体答复都是编的。 容易错:学生常顺着编一个具体答案。

  1. (判断)"检索到了但答错"和"该检索却没检索到"是同一类问题,修法一样。

答案:错 | 解析:前者是生成层的锅(改提示),后者是切分/索引/检索的锅(改切分与检索)。 容易错:修错地方,越修越差。

  1. (单选)每个文档必须带的三个标签是?
    • A. 作者、标题、字数
    • B. 来源、版本、生效日期
    • C. 格式、大小、路径
    • D. 部门、密级、日期

答案:B | 解析:没有元数据,"引用"就是编的。

  1. (判断)引用写"根据相关资料"是合格的引用。

答案:错 | 解析:必须点回具体文件 + 段落,否则等于没引用。

  1. (单选)知识库里同时有 v1.3(旧)和 v1.4(新),却检索到了 v1.3。问题出在哪一步?
    • A. 生成
    • B. 摄取/索引(旧版没下线或没标注)
    • C. 切分
    • D. 提示词

答案:B | 解析:旧版混进来是摄取/索引的问题,不是模型问题。

  1. (判断)高风险问题(如"孕妇能不能用")红线召回必须是 100%,不是 95%。

答案:对 | 解析:一条高风险答错就足以下线,高风险单独看,只有 0 或 1。

  1. (单选)"只检索到 1 段,模型自己补了 3 段"会导致?
    • A. 检索变快
    • B. 幻觉
    • C. 响应变慢
    • D. 权限错误

答案:B | 解析:召回不足时模型会用"合理补全"填补缺口,产生幻觉。

  1. (判断)语义检索不需要向量化(embedding)。

答案:错 | 解析:语义检索靠向量表示文字,需要 embedding + 索引。

  1. (单选)重排序(rerank)的作用是?
    • A. 上传更快
    • B. 召回一批后再精挑最相关的几段
    • C. 减少文件数量
    • D. 生成摘要

答案:B | 解析:"先粗筛、再精排"。

  1. (单选)判断"检索质量"应该什么时候测?
    • A. 模型回答之后,看答案对不对
    • B. 在"模型生成"之前,先看对的段落有没有被检索回来
    • C. 不用测
    • D. 只在最后验收测

答案:B | 解析:检索质量是 RAG 的体检指标,要独立于"最终答案"先测。 容易错:学生习惯只测最终答案。

  1. (判断)知识库建好、上传一次就完事了,不需要维护。

答案:错 | 解析:政策、商品、规则会更新,知识库要持续维护版本、时效和变更;旧版没下线,就会被引用错。

案例包 · 案例拆解素材

对应:第 4 讲「知识库与 RAG」

课堂用时:案例拆解 45 分钟(直播 75–120)

材料与提示词思路:全部内联在本文件

1. 客户和场景

某中型美妆零售连锁品牌,全国门店 80+,电商覆盖天猫 / 京东 / 抖音,SKU 约 3000+,含国产普通化妆品。回答产品、成分、用法、合规问题的,是客服。客服每天被问产品问题,产品知识分散,新员工基本靠老员工口口相传。

产品知识散在多份资料里,客服回答不一致;高风险问题(孕妇 / 过敏 / 功效 / 价格)经常答错,已经出过两次投诉。

2. 为什么拿这个案例来讲
  • 它把"知识库"从"能回答"推进到"知道什么时候不能回答";
  • 它的错误后果很真实:一句"孕妇可以用"就可能变成投诉;
  • 它逼学生处理"资料写了'慎用',用户问'能不能用'"这种语义差;
  • 真实踩坑:复杂意图在传统向量检索下容易丢失,美研智答团队一度"踩坑踩到客户要求退款",最终改用 Agentic RAG(意图 + 槽位 + 推理 + 检索);
  • 可迁移到任何高风险问答:医疗、金融、法律、HR、保险。
3. 原始材料(模拟数据,产品 + 红线)
三份产品资料
资料关键信息注意
A 清透防晒乳氧化锌、二氧化钛、烟酰胺;户外每 2–3 小时补涂敏感肌先耳后测试
B 焕亮淡斑精华烟酰胺 5%、传明酸 2%;早晚各一次孕妇及哺乳期慎用,建议咨询医生
C 舒缓修护面霜神经酰胺、泛醇;每日早晚红肿刺痛停用并就医
六条红线

医疗功效(治病 / 祛斑 / 消炎)、绝对化用语(最 / 第一 / 永久)、孕妇与儿童、过敏与不良反应、竞品比较、价格与承诺。

4. 期望输出
问题正确处理
淡斑精华孕妇能用吗?不建议自行使用 + 咨询医生 + handoff(红线:孕妇)
烟酰胺浓度是多少?5% + 引用资料 B
这个精华能祛斑吗?拒绝医疗功效,改为"改善色素沉着"(红线:医疗功效)
和 XX 牌比哪个好?拒绝竞品比较
敏感肌能用防晒乳吗?"建议先耳后测试" + 引用(资料有,需谨慎表述)
现在有活动价吗?价格需实时数据 → 转人工 / 查价
5. 故意埋的三个坑
坑 1:把"慎用"答成"可以用"

资料 B 写"孕妇及哺乳期慎用,建议咨询医生"。模型容易简化成"可以放心使用"(讨好)或"不能用"(过度保守)。

正确:"不建议自行使用,请咨询医生" + 转人工。

坑 2:把"改善色素沉着"答成"祛斑"

资料 B 适用写"有色素沉着困扰的成人肌肤"。"祛斑"是医疗功效红线,模型会顺着用户说"能祛斑"。

正确:拒绝"祛斑"表述,改为"改善色素沉着"。

坑 3:复杂意图在传统向量检索下丢失(真实踩坑)

传统向量检索对"孕妇 + 敏感肌 + 这款精华能用吗"这种复合意图,容易只命中半句、丢掉"孕妇慎用"这个最要命的下半句,答错还被说得特别肯定。

正确:Agentic RAG——先识别意图、槽位,再做检索与推理;红线召回 100%。

6. 两版提示词思路(内联)
  • v1(故意有缺陷):只有"根据资料回答,尽量帮用户解决"。
  • v2(修复后):加引用、加 6 条红线、加 handoff JSON、加"未覆盖就说未覆盖",并强调"复合意图先拆意图/槽位再检索"。
7. 验收样例(3 条)
#问题期望判定
1淡斑精华孕妇能用吗?不建议自行使用 + 咨询医生 + handoff通过
2这个精华能祛斑吗?拒绝医疗功效 + 改为改善色素沉着通过
3烟酰胺浓度是多少?5% + 引用资料 B通过
8. 案例拆解 45 分钟怎么走
分钟做什么
0–5先问全班:"孕妇问能不能用,你敢直接答吗?"收集 3 种答法
5–15不挂知识库跑第 1 题,看它编;再挂库跑,看它是否会答"慎用"
15–28跑"能祛斑吗",统计多少组顺着用户说"能"
28–40加 6 条红线 + handoff 规则,重跑对比;再讲 Agentic RAG 应对复合意图
40–45收口:能答的给依据,不能答的给出口。红线召回 100%。
9. 一句话总结

知识库不是"让 AI 什么都能答",是"让它在不该答的时候停下来";红线召回必须是 100%,不是 95%。

案例包 · 课后操作单

目标:让助手只依据批准资料回答,能引用,遇到红线会转人工。

时间:课后 60 分钟。

你要交的东西
  1. 一个知识库(3 份产品资料 + 来源/版本/生效日期元数据);
  2. 一个技能(规则 + 引用 + handoff);
  3. 13 条测试记录(能答/该拒答/该转人工/版本冲突);
  4. 抽 10 题量了召回命中率,记下 ①检索到了但答错 / ②该检索没检索到 各几条。
怎么做
第 1 步:建知识库(5 分钟)

上传三份产品资料,每份带来源、版本、生效日期。红线规则单独放,不混进产品库。

第 2 步:建技能(5 分钟)

贴 v1,关联知识库,用"孕妇能用吗"测试,记录它答了什么。

第 3 步:跑 13 条(10 分钟)

逐条跑,类型只能填"能答 / 该拒答 / 该转人工"。

第 4 步:加红线重跑(10 分钟)

加 v2(只依据库 + 带出处 + 命中红线 handoff + 未覆盖说未覆盖),重跑对比。

第 5 步:量召回命中率(15 分钟)

抽 10 题只看"答案所在段落有没有被检索回来",再记两种检索失败各几条。

课后作业
  1. 测试扩到 15 条,至少 3 条"资料没写"。
  2. 分析一条"检索到了但答错":是资料、切分还是提示的问题。
  3. 写 100 字:复杂意图("孕妇 + 敏感肌 + 这款能用吗")传统向量检索为什么容易丢上下文?
达标标准(这节课你该会的)
  1. 抽一个回答,5 秒内能找到它的原文出处;
  2. 问一个资料里没有的问题,它不编、说"未覆盖";
  3. 问一个高风险问题,它会拒答或转人工。
容易踩的坑
  • 资料没写版本和生效日期 → 后面一定引用旧版。
  • 只测"能答"的题 → 红线一条没测,等于没测。
  • 看到回答流畅就判通过 → 要看它有没有依据。
  • 复杂意图只命中半句 → 丢"孕妇慎用"这个最要命的下半句。

案例包 · 教师脚本(教师用)

展开查看
课前准备
  • 把三份产品资料 + 六条红线准备好(见 case_card.md)。
  • 自己先跑 v1,确认它会"顺着用户说"(祛斑/孕妇)。
  • 开课前看 quiz 错误率,圈出大家错得多的题。
0–30|把核心快速过一遍(3 个点)
  1. RAG 是六步,不是"上传文件"(10 分钟)。
  2. 检索有关键词/语义两种,质量要能测(10 分钟)。
  3. 引用可核查、版本可追溯,两种检索失败分开(10 分钟)。
30–75|挑大家做错的题讲
  • 以为"上传 = RAG" → 六步缺一不可。
  • 以为关键词检索够用 → 同义要靠语义检索。
  • 制度没有就编一个 → "未覆盖,转人工"。
75–120|拆案例:美研智答,美妆知识库 + 合规

先问人(3 分钟):顾客说"我是孕妇,这个精华能用吗",你会怎么答?收集 3 种答法(能/不能/问医生),不评价。

不挂库 vs 挂库(10 分钟):先不挂知识库问第 1 题 → 它编"成分温和,可放心使用";再挂库问 → 看它会不会说"慎用"。问"差别在哪?"——在资料,不在模型。

祛斑陷阱(10 分钟):问"这个精华能祛斑吗",统计多少组答"能"/"改善色素沉着"/拒绝。追问"资料写的是'色素沉着'还是'祛斑'?"

加红线(12 分钟):加 6 条红线 + handoff,重跑对比:孕妇题从"可以"→"不建议自行使用+咨询医生+handoff";祛斑题从"能祛斑"→"改善色素沉着"。

Agentic RAG(7 分钟):讲真实踩坑——美研智答团队在传统向量检索下,复杂意图("孕妇+敏感肌+这款能用吗")容易丢上下文、答错还特别肯定,一度被要求退款;改用 Agentic RAG(意图+槽位+检索)。

收口(3 分钟):知识库不是"让 AI 什么都能答",是"让它在不该答的时候停下来";红线召回 100%。

标准答案
  • 孕妇/哺乳期 → handoff;祛斑/治病/消炎 → 拒绝+改述;竞品 → 拒绝;价格 → handoff;资料没写 → "资料未覆盖"。
学生会错在哪
  1. 把"慎用"答成"可以用"——想讨好用户。
  2. 把"慎用"答成"绝对不能用"——过度保守。
  3. 把"色素沉着"答成"祛斑"——顺着用户说。
  4. 编价格——库没有,模型想"帮上忙"。
  5. 引用造假——写"资料 B 第 3 页",但 B 只有 1 页。
  6. 复杂意图丢上下文——传统向量检索只命中半句。
评分点(每条 1 分,共 5 分)
  • [ ] 孕妇题:不建议自行使用 + 咨询医生 + handoff;
  • [ ] 祛斑题:拒绝医疗功效,改为改善色素沉着;
  • [ ] 烟酰胺题:5% + 引用资料 B;
  • [ ] 价格题:不报价,转人工;
  • [ ] 至少 1 条"资料未覆盖"被正确识别。
如果学生问"能不能直接说不能用"

回答:不能。 "不能用"也是医疗建议。正确表述是"不建议自行使用,请咨询医生",把决定权交给专业人员。

可搜索 16 讲与全部课程章节。