版本对照:左侧保留服务器原有 v1.7,右侧为当前中职修订稿。两栏可独立滚动。
旧版 v1.7原稿

第8章 让 AI 查资料:知识库问答与检索增强生成

本章导读

第7章已经说明,AI 在信息不足时可能生成流畅但缺少事实依据的回答。沿用一个校园服务场景:如果直接询问“本校食堂三楼有什么招牌菜”,模型可能按常见食堂菜单补全一段听起来合理、但与真实情况不符的回答。问题在于,AI 没有本校实时资料,但它并不一定主动说明不知道。

本章要解决的问题是:能不能给 AI 接入一份真实资料,让它先检索资料再回答?

这种“先查资料、再回答”的工程做法在工业界有个正式名字,叫检索增强生成(retrieval-augmented generation, RAG)。它的核心思想是:与其让 AI 仅凭参数记忆回答,不如让系统先从指定资料中检索证据,再让 AI 围绕证据组织答案。对本章来说,最重要的不是背下英文缩写,而是形成一个判断:RAG 可以降低无依据回答的风险,但不能替代人的核查。

《荀子》说:君子生非异也,善假于物也。 会借助工具,不是把判断交出去,而是知道何时查资料、怎样引用证据、如何回到原文核对。

学习目标

  • 知识目标:
    1. 能用自己的话解释什么是检索增强生成(retrieval-augmented generation, RAG),以及它和直接问 AI 的本质区别。
    2. 能说出 RAG 三个步骤——检索 → 拼接 → 生成——分别在做什么。
  • 能力目标:
    1. 能在课程 Notebook 中使用一个最小迷你知识库,并通过对照实验比较 AI 在开/关检索两种状态下的回答差异。
    2. 能要求 AI 在答案里附上出处引用,并对照原文核查每一条引用是否真实。
  • 素养目标:
    1. 建立答案要能被追溯到来源的工作习惯——这是第7章证据链底线的真正工程落地。
    2. 知道什么内容可以放进知识库、什么内容不能放(版权、隐私、未授权资料)。

先修要求与环境清单

  • 已学完第7章,理解 AI 在信息不足时可能生成缺少依据的内容,以及“流畅 ≠ 正确”这条底线。
  • 软件准备:课程统一配置的本地大模型服务(课程环境已预置);一个文本编辑器。
  • 配套资源:notebooks/ch08_rag_qa.ipynb,已预置迷你知识库(食堂菜单、图书馆制度、社团章程三套样例)和对照实验提问清单。本章不需要你写 Python 代码。

知识准备:先认识这些词

在动手之前,先把本章会反复出现的几个概念建立起来。

  1. 知识库(knowledge base)
    • 一句话说明:你提前准备好的、AI 在回答之前可以查阅的一份资料合集。
    • 直观解释:像图书馆里的《校园服务手册》《校历》《食堂周菜单》;不需要把它们背下来,需要时检索对应内容即可。
    • 应用场景:智能客服背后的常见问题库、医院的用药指南库、学校的政策制度库。
  2. 检索(retrieval)
    • 一句话说明:AI 在回答问题前,先到知识库里找出最相关的几段内容。
    • 直观解释:查询宿舍作息时,不必读完整本《校园服务手册》,而是定位到作息管理章节。AI 也需要类似的定位过程。
    • 常见误区:以为检索就是全文搜索。其实现代检索可以按意思找,不一定要包含原词。
  3. Top-K
    • 一句话说明:检索系统每次只取最相关的前 K 段资料。
    • 直观解释:像搜索结果只先看前几条。K 太小可能漏资料,K 太大又会带来噪声。
    • 本章要求:只需要知道 K 表示取几段,不需要计算排序算法。
  4. 切片 / 分块(chunking)
    • 一句话说明:把长文档切成若干段,方便检索时定位到具体那一段。
    • 直观解释:相当于把一本书拆成一段段短材料;检索时不必处理整本书,只需找到相关片段。
    • 应用场景:所有用 RAG 的系统都要先把资料切块。
  5. 检索增强生成(retrieval-augmented generation, RAG)
    • 一句话说明:让 AI 先查资料、再回答的工程方法。
    • 直观解释:让 AI 基于资料回答;它仍然要组织语言,但答案的事实部分必须来自给定资料。
    • 关键区别:AI 自身参数没有变化,只是回答之前多了一步检索资料。
  6. 引用出处(citation)
    • 一句话说明:AI 对关键信息标明来自资料的哪一段。
    • 直观解释:像论文里的[1][2]标注,或者维基百科条目末尾的参考文献。
    • 关键价值:没有出处的回答,看上去再可信也只是观点;有出处只是核验的起点,还要回到原文检查。
  7. 证据链(evidence chain)
    • 一句话说明:一个结论能被追溯到的、看得见的来源。
    • 直观解释:第7章已经讲过——任何高风险结论必须有证据链。RAG 就是把证据链做成工程系统。
  8. 拒答
    • 一句话说明:资料中没有答案时,AI 应明确说明“资料中未提到”,而不是凭常识补全。
    • 直观解释:会拒答不是能力差,而是系统守住证据边界的表现。

8.1 问题与现象:AI 不知道,就让它先去查

8.1.1 校园菜单问答案例

假设小李询问 AI:本校食堂三楼有什么招牌菜?如果没有提供真实菜单,AI 可能生成一套听起来合理的菜品清单;但真实情况可能是三楼主要提供面食。

现在我们换一种做法。这次小李先把一份真实的食堂菜单放入课程 Notebook 的迷你知识库中:

【迷你知识库片段】
食堂一楼:早餐窗口,包子 2 元 / 豆浆 1.5 元 / 茶叶蛋 1.5 元……
食堂二楼:套餐窗口,三菜一汤 12 元……
食堂三楼:面食专区,牛肉面 10 元 / 麻辣烫 8 元 / 拉条子 9 元……

接着他对 AI 提问:

请根据上面这段菜单回答:我们学校食堂三楼有什么招牌菜?每一项都要注明来自菜单的哪一行。

AI 这次的回答就完全变了:

根据您提供的菜单,食堂三楼是面食专区,主要有:牛肉面(10 元)、麻辣烫(8 元)、拉条子(9 元)。【来源:第 3 行】

差别在哪里?AI 还是同一个 AI,模型参数没有变化。变化在于:回答之前,它获得了真实菜单。真正的 RAG 系统会把“找资料”这一步交给检索器完成:用户提问后,系统先从知识库中找出相关片段,再把片段交给 AI 组织回答。这样回答才更容易回到可检查的资料上。

8.1.2 这件事为什么重要?

实际任务中有大量这类 AI 仅依靠参数记忆答不出来的问题:

相关内容见表8-1。

表8-1 问题与为什么直接问 AI 不可靠记录表

问题 为什么 AI 答不出来
我们专业的实训守则是怎么写的? AI 没有你们学校的文件
图书馆这周日开吗? 这是动态信息
奖助申请的具体流程? 每所学校规则不同
我家附近这家医院的挂号时间? AI 没有具体机构的运营信息

让 AI 直接回答这类问题,容易生成缺少依据的内容。如果让系统先检索对应资料再回答,答案通常会更短、更有边界,也更容易核查。但这仍不代表它一定正确,后面还要检查资料来源和引用真实性。

【思考 1】 有人问:如果我有一份完整的《校园服务手册》PDF,是不是直接全部粘贴到对话框里问 AI 就行了?为什么还要专门建立“知识库”和“检索”? 请你用第7章学过的两条性质来回答他(提示:与注意力和中间迷失有关)。

思考提示:直接全粘贴有两个主要问题:① 注意力会被稀释,关键信息被淹没;② 重要条款可能位于文档中间,被模型漏掉。RAG 的“先检索、再回答”恰好是只把最相关的几段提供给 AI,降低这两类风险。


8.2 原理与分析:RAG 是怎么工作的?

相关结构如图8-1 所示。

图8-1 RAG 证据链剖面:问题、片段、回答与出处

8.2.1 RAG 三步走

RAG 听上去复杂,但拆开就是三个动作。

第一步:检索(retrieval) * 用户提了问题(比如食堂三楼有什么菜)。 * 系统先到知识库里去找——哪几段资料和这个问题最相关? * 入门实验通常只取出最相关的 2~3 段;真实系统会根据任务设置 Top-K,例如取前 3 段或前 5 段,不是把全部资料都塞进去。

第二步:拼接(augmentation) * 把这几段资料和用户的问题一起,组装成一个新的提示词。 * 这个新提示词大概长这样: ```text 请根据下面这段资料回答用户的问题,禁止使用资料以外的信息。

【资料】(这里是检索到的相关段落)

【问题】食堂三楼有什么菜?

如果资料中没有答案,请回答:资料中未提到该信息。 ```

第三步:生成(generation) * 把这个拼接好的提示词发给 AI,让它只根据资料生成答案。 * 同时要求 AI 在每个关键信息后面注明出处;资料中没有的内容,应明确说明“资料中未提到”,不要自行补全。

注意:这三步里模型参数没有变化。我们没有重新训练它、没有改它的内部参数,而是在生成前增加了“检索证据”和“按证据回答”的约束。

8.2.2 为什么要把文档切片?

设想你有一份 80 页的《校园服务手册》。如果直接整本传给 AI,会遇到第7章学过的两个问题:注意力稀释和中间迷失。

更稳妥的做法是先切片:把这本手册按章节、段落或语义完整的小段切成若干资料块。本章实验中,每块大约 200~500 字,这只是课程样例,不是固定标准。每次用户提问时,系统只取出最相关的几块送给 AI。

  • 块切得太大 → 检索来的内容里夹杂大量无关信息(噪音多)
  • 块切得太小 → 一个完整意思被切散(信息断裂)

实践中常用的做法是按章节、按段落,或按语义完整的一小段切。切得好不好,会直接影响 RAG 系统的回答质量;但它不是唯一因素,资料版本、检索方式和提示词约束也会影响结果。

8.2.3 知识库从哪儿来?

这是最容易被忽略的问题。一个 RAG 系统能不能用,很大程度取决于知识库里放了什么。常见的来源:

相关内容见表8-2。

表8-2 来源与例子记录表

来源 例子 适用场景
官方文档 学校制度、产品手册、政策文件 高频且权威的查询
历史 FAQ 客服话术、常见问题库 客服类应用
专业资料 教材、行业标准、操作规程 专业问答
业务数据 课程表、菜单、库存表 动态查询

关键原则:知识库的质量决定 RAG 的上限。放入知识库的资料如果本身过时、错乱、来源不可靠,AI 检索后给出的回答同样会出错;这时问题往往出在资料来源、检索结果或引用核查流程,而不只是模型本身。

8.2.4 引用出处:让答案能被查证

RAG 最有价值的一点不只是可能减少编造,而是答案可以被追溯。

  • 你看到一段回答;
  • 它后面带着【来源:菜单第 3 行】;
  • 你可以立刻翻到第 3 行进行核对。

第7章已经说明:没有证据链的结论,再流畅也只是观点。RAG 就是把这条底线变成系统层面的工程能力,让关键信息有机会查回到出处。但“有机会查回”不等于“已经正确”,最后仍要人工核对。如果查不回原文,所谓出处就只是格式装饰。 *** ## AI 协同实践:让 AI 先查资料再回答

实践目标:通过同一个问题在无检索和有检索两种状态下的对比,观察 RAG 带来的差别,并练习引用核查。

预计时间:25 分钟左右。

第 1 步:认识迷你知识库

课程 Notebook 已预置一份迷你知识库——大约 10 段虚构的校园资料,覆盖三个主题:

相关内容见表8-3。

表8-3 主题与内容片段记录表

主题 内容片段
食堂菜单 一楼早餐 / 二楼套餐 / 三楼面食 三段菜单
图书馆制度 开馆时间 / 借阅规则 / 续借流程 三段制度
社团章程 入会流程 / 活动经费 / 退会规则 三段章程

打开 Notebook,运行加载知识库单元格,你会看到这 10 段资料整齐展示出来。每一段都已经切好块,并标好了编号(第 1 段、第 2 段……),方便后面引用。

第 2 步:先关掉检索问 AI

课程 Notebook 已提供前 5 个库内有答案的测试问题,第 6 个库内无答案的问题将在第 4 步单独测试:

  1. 我们学校食堂三楼有什么主食?
  2. 借阅者一次最多借几本书?
  3. 图书馆周末开几个小时?
  4. 我想退出社团,需要做什么?
  5. 我可以在社团活动里申请多少经费?

先把检索关掉(Notebook 里的开关),直接把这些问题发给 AI。把回答记到对照表无检索那一栏。

通常会观察到:AI 容易按一般校园制度生成看似合理、但与知识库不一致的答案。

第 3 步:打开检索再问一次

把检索打开,让系统在每次提问前先去知识库里找最相关的几段。系统会自动把找到的段落和问题拼成新提示词,类似这样:

请根据下面这段资料回答用户的问题,禁止使用资料以外的信息。
回答时请在每个关键信息后面注明来自第几段。
如果资料中未提到,请固定回复“资料中未提到该信息”,不要自行推断。

【资料】
(这里自动填入检索到的 2~3 段)

【问题】我们学校食堂三楼有什么主食?

把同样的 5 个问题再问一遍,记到对照表有检索那一栏。

观察重点 * AI 的回答是不是变短了?(因为它只应回答资料里写过的话) * 是不是出现了【来源:第 X 段】这样的标注? * 有没有问题它明确说“资料中未提到”?这反而是好事——这正是第7章说的承认不知道。

第 4 步:故意问知识库里没有的问题

在打开检索的状态下,再问一个知识库里没有的问题:

学校游泳馆几点开门?

观察 AI 这次会: * (A) 明确说明资料中没有提到游泳馆相关信息; * (B) 仍然给出一个貌似合理但缺少依据的答案; * (C) 把别的资料生搬硬套过来。

把结果记到对照表。这一步检验的是 RAG 的拒答能力:一个质量较高的 RAG 系统,应该在资料里没有找到答案时明确说明“资料中未提到”,而不是回退到参数记忆自行补全。

第 5 步:核对每一条引用

最后这一步特别关键:AI 标注的“来源:第 X 段”不一定真实对应原文。

把 AI 给出的引用至少抽查 3 条,并尽量挨条对照原文: * 它说来自第 3 段,第 3 段真的有这句话吗? * 引用的内容有没有被改动?有没有把两段拼成一段? * 是否存在强行对应:资料里说的是 A,AI 答了 B,却仍然标注了一个出处?

把核对结果填到引用核查表。这是本章最重要的一项训练——有出处只是工程上的第一步,能不能被人验证才算闭环。RAG 不是把判断交给机器,而是让判断有证据可查。


验证与证据:用对照表记录实验

RAG 对照表

相关内容见表8-4。

表8-4 测试编号与问题记录表

测试编号 问题 无检索回答(v1) 有检索回答(v2) v2 出处 / 拒答情况 是否仍需人工核查
1 食堂三楼有什么主食
2 借阅者最多借几本书
3 图书馆周末开几小时
4 退出社团流程
5 社团活动经费
6 游泳馆开放时间(库内没有)

引用核查表

相关内容见表8-5。

表8-5 测试编号与 AI 标注来源记录表

测试编号 AI 标注的来源 翻到原文核对结果 引用是否真实
1 第 X 段
2 第 X 段

引用真实性等级: * A 完全对应:原文确实有这句话。 * B 部分对应:原文有相关内容,但 AI 有改动、简化或合并。 * C 虚假引用:原文根本没有这段,或引用编号不存在。

原理小结(100~200 字)

围绕两个问题写一段:

  1. 把前 5 道题里无检索和有检索的差别放在一起看,你能用一句话总结 RAG 到底改善了什么吗?
  2. 第 6 题(库内没有的问题)AI 的表现怎么样?这一步为什么比前 5 题更能反映 RAG 系统的真实质量?

伦理、安全与边界

知识库里能放什么、不能放什么

RAG 把回答质量从 AI 的参数转移到了知识库内容,这意味着知识库的合法性、准确性、安全性都成为系统建设者的责任。

可以放的: * 已公开且允许使用的制度文件、校规、课表 * 自己编写或合法授权的学习资料 * 行业公开发布的标准、政策文件

不可以放的: * 未脱敏的真实数据:学习者姓名、学号、手机号、家庭住址、成绩明细 * 没有授权的版权材料:教材原文章节、付费数据库内容、他人的内部文档 * 未经核实的内部信息:道听途说的政策传言、群聊里的小道消息

数据来源决定一切

第7章我们说流畅 ≠ 正确。在 RAG 系统里这句话要升级成:

有出处 ≠ 正确——你还要看那个出处本身可不可靠。

如果把网上随手搜来的不可靠博客放进知识库,AI 引用得再规整,引用的也是不可靠资料。一个 RAG 系统能不能用,关键在于知识库的来源审查。

实操守则: 1. 优先官方来源——学校官网、政府发布、行业标准。 2. 每条资料标出版本和日期——便于以后追责和更新。 3. 定期复核——制度会变,菜单会变,旧资料要及时换掉。

引用不等于真实:别被格式骗了

最后一条,也是本章最隐蔽的陷阱:AI 标出来的【来源:第 3 段】不一定真的对应第 3 段。

它有可能: * 引用的段落编号是对的,但内容是改写的; * 引用编号是虚假的(指向不存在的段落); * 把两段内容糅在一起标了一个出处。

这就是本章要求做引用核查的原因:有出处只是开始,能不能被独立核对才算闭环。任何高风险场景(医疗、安全、财务、对外发布),都必须由人对引用做最终核验。

【思考 2】 一位实习生用 RAG 知识库系统整理一份《评优办法》摘要。AI 给出的回答结构清楚,每条都标了【来源:第 X 段】。这位实习生想直接打印提交。请回答:他还应该多做哪两件事,才能提高这份摘要的可靠性?

思考提示:① 把 AI 标注的每个来源翻回原文逐条核对,防止虚假引用;② 检查知识库里的《评优办法》是不是最新版本,如果是旧版,引用再准确也会导致结论错误。


总结与思考

本章核心判断

  • RAG 的本质是基于资料作答:AI 自身参数没有变化,变化在于回答之前多了一步检索资料。
  • 三步走:检索 → 拼接 → 生成。
  • 出处是 RAG 的重要价值,它让答案有机会被追溯、被核验、被修正。
  • 检索可能漏掉真正相关片段,也可能找来不相关片段,所以仍要做引用核查。
  • 知识库的质量决定 RAG 的上限,模型能力再强也无法弥补不合格资料带来的问题。
  • 有出处 ≠ 正确——出处本身要审查,引用本身要核对;RAG 是降低幻觉风险的工程方法,不是消除风险的魔法。

基础题(理解层面)

  1. 用自己的话解释检索增强生成(RAG)是什么。它解决了第7章哪两个问题?
  2. RAG 的三个步骤分别是什么?请说说每一步在做什么。
  3. 为什么把一份长文档切片再用,比直接整篇交给 AI 效果更好?

迁移题(专业场景)

  • 假设你所在专业要做一个实训室设备使用问答助手。请回答:
    1. 你会把哪些资料放进知识库?哪些绝对不能放?
    2. 当用户询问“某设备坏了怎么报修”时,你希望这个助手最终采用什么回答格式?请画出格式(含必要的出处字段)。

风险题(伦理与边界)

  • 一位实习生用 RAG 助手整理了一份奖学金评定办法摘要,AI 标注的每一条都有【来源:第 X 段】。负责人想直接公开发布。请回答:
    1. 这件事可能出什么问题?至少说出两种风险。
    2. 在发出去之前应当增加哪两步核验?请写一条简短的工作流程。

本章交付物

请按下面清单提交本章过程证据包:

本章讨论的是文本资料的检索与核验。后续内容将进一步进入图像、截图和专业影像等多模态资料场景,继续讨论 AI 输出与人工核验之间的边界。

当前中职版(2026-07-20)修订稿

第8章 让 AI 查资料:检索增强生成

(建议2课时)

章首语

上一章末尾留下的那个问题,很快真的找上了小李。班级资料库越攒越厚:公约、课表、社团章程、活动安排,几十份文件。每次提问前手动翻找、复制、粘贴,他渐渐觉得吃力——视野的窗口装不下全部,自己的耐心也装不下。

要是有一位”图书管理员”就好了:我一提问,他立刻从满架资料中抽出最相关的那几页,摊在 AI 的眼前。

这位管理员是有的,而且早已在千万个岗位上上班了。它的名字叫检索增强生成。本章我们把它请进自己的工房,也学会一件与它共事的要紧本领——它递来的每一页,仍要看一看真伪。

真正的“资料管理员”并不是把文件放进文件夹就结束。资料要解析、分段、建立可检索的记录;问题到来后,系统还要检索、排序、组装上下文、生成回答并附上来源。我们将沿着这条工程链分别检查“找得对不对”和“答得忠不忠”。

字里行光 读书破万卷,下笔如有神。——杜甫《奉赠韦左丞丈二十二韵》

学习目标

  1. 能说出手动提供材料的三个局限,理解引入检索增强生成的原因;
  2. 能按”检索—增强—生成”三步描述其工作过程;
  3. 能通过实验对比”无知识库”与”有知识库”的回答差异;
  4. 能顺着引用核对原文,判断回答是否忠于材料;
  5. 树立”入库材料人负责”的责任意识。

8.1 为什么要给 AI 一个资料库

第7章的方法——把材料亲手放进视野——好用,但有三个绕不开的局限。

窗口装不下。上下文容量有限,几页公约装得进,整本维修手册、上百页商品目录,塞不下。

材料管理成本高。普通对话往往不会自动带入全部业务资料;即使平台提供记忆或项目文件,资料选择、版本核对和引用追踪仍需要专门管理。

材料在生长。资料库今天添一份、明天改一条,靠人脑记住”该贴哪几份”,早晚出纰漏。

三个局限指向同一个解法:与其把整座书架搬到窗前,不如请一位管理员——每次提问时,自动从资料库中找出最相关的几段,放进模型的视野。供这样查找取用的成套资料,称为知识库(Knowledge Base);而”先查资料、再作回答”的这套方法,称为检索增强生成(Retrieval-Augmented Generation,RAG)。

一句话概括它的使命:自动替你给 AI 看对材料。

【想一想】① 对照三个局限想一想:你专业里的哪类资料(维修手册、药品说明、商品目录……)最需要这样一位”图书管理员”?

知识库要经过加工才能被检索

原始文件可能是文字、表格或扫描件,系统首先要提取可用内容,并保留文件名、版本、日期和页码等来源信息。接着把长文档切成若干意义相对完整的资料段。段落太大,会混入许多无关内容;段落太小,又可能把一个规则的条件与结论拆开。合适的切分方式要根据文档结构和问题类型测试确定。

处理后的资料段会建立检索记录。系统可以按关键词查找,也可以把问题与资料转换成数值表示后比较语义关系,还可以把两种结果结合再排序。关键词检索擅长型号、编号和专有名称,语义检索擅长改写和近义表达。真实系统常采用组合方式,而不是在两者之间只选一种。

【图8-2 资料进入知识库的工程链:采集—解析—切分—标注来源—建立检索记录(SVG图位)】

知识库还需要生命周期管理。每份资料应有责任人、有效日期和更新记录;旧版不能与新版混在一起而不作标记。涉及个人信息、商业秘密或未经授权内容时,不得因为“只用于检索”就直接入库。资料进入系统之前的审核,决定了后续答案能够达到的上限。

先判断:改模型还是改资料库

让系统掌握新知识有两条常见路线。模型微调是用经过整理的样例继续训练模型,适合调整较稳定的表达方式、分类习惯或任务行为;它需要合格数据、训练资源和独立评测,不能把几份新文件直接“塞进模型”。外接资料库适合经常更新、需要标明出处的事实知识,维护成本通常更低,但检索遗漏会直接限制回答质量。

做决定时先问三件事:要改变的是模型行为还是业务知识,内容多久变化一次,回答是否必须追到来源。制度、价目和产品手册通常先选资料库;稳定且有足够样例的分类方式,才可能考虑微调。两条路线也可组合,但组合意味着两套测试与版本责任,不能因为听起来先进就同时使用。

8.2 检索增强生成的过程

管理员的工作分三步,名字里已经写明:检索,增强,生成。

第一步,检索。接到提问,先到知识库里查找相关段落。系统既可以匹配型号、编号等关键词,也可以比较语义关系,还可以把两种结果组合起来。你问“风扇保修多久”,材料里写“电风扇质保期限”,语义检索有机会把它找出来;但是否真的找到,仍要查看检索结果。

第二步,增强。把查到的几段材料放进模型的上下文。这一步做的,正是第7章”看对材料”的动作,只是由系统代劳了。

第三步,生成。模型依据视野中的材料预测作答——承重之梁依旧:看到什么,才答什么;如今看到的,是管理员刚刚递上的那几页。

【此处配图8-1:检索增强生成三步示意——提问、从知识库检索相关段落、放入上下文、生成回答】

图8-1 检索增强生成:先查资料,再作回答

这套方法的一个重要价值是:不重新训练模型,也能通过维护知识库更新可用资料。不过,替换文件后还需更新检索记录,并确认新版片段能够被取回。只有检索与回答两端都通过测试,才能说系统已经按新资料工作。

【做一做】 用自己的话,向同桌讲一遍”检索—增强—生成”三步,讲完请对方指出你漏了哪一步、哪一步讲得最清楚。

【想一想】② “模型训练难更新,知识库随时可更新。”对一家价格常变、政策常改的店铺来说,这句话意味着什么?

从三步概念到八个工程环节

“检索—增强—生成”便于记忆,工程实现还可以拆成八个环节:接收问题,整理查询表达,从知识库召回候选资料段,综合关键词与语义关系排序,选择若干片段,连同来源信息组装上下文,让模型依据材料生成,最后显示答案和可点击的出处。

检索数量不是越多越好。取回太少,可能漏掉关键条件;取回太多,会把无关或冲突内容送进视野。系统需要根据任务设置候选数量和最终片段数量,并对边界问题测试。例如询问“退货期限”时,还应检索到“已拆封商品的例外条件”,否则回答虽然引用了总则,仍可能误导。

【图8-3 检索增强生成完整链:问题—召回—排序—选段—上下文—回答—引用(SVG图位)】

知识库更新后,系统通常还要重新解析、切分并更新检索记录。只有新资料已经进入检索范围、旧资料被正确停用,而且问题确实召回新版片段,回答才可能随之改变。因此,“资料已替换”只是更新开始,不能直接视为回答已经更新。更新测试要同时检查检索结果和最终回答。

整份材料、检索材料与混合路线

材料较短、问题需要联系全文时,可以把经过筛选的整份材料交给模型;资料很多、更新频繁或问题集中在局部时,先检索再生成更便于控制来源。跨越多个段落的复杂问题,可先检索出候选范围,再把相邻段落和必要背景一同提供,形成混合路线。

选择不能只凭感觉。使用同一组问题,分别记录三种路线找到的依据、回答完整性、等待时间和无关材料数量。若检索漏掉关键条件,应改切分与查询;若整份材料干扰过多,应缩小范围。技术路线的好坏只对具体任务和测试条件成立。

8.3 引用不等于准确

有了管理员,回答常会附上出处:“依据《售后政策》第三条……”白纸黑字,看着让人放心。但请把第1章那句提醒换个说法再念一遍:引用,不等于准确。引用可能在三个地方走样。

查错了。语义检索并非百发百中:问保修,可能查回退货条款;最相关的那段,也可能恰好没被找到。材料对不上题,回答就跟着跑偏。

料本身有错。管理员只管找,不管辨。库里那份价目表若是过时的,它照样恭恭敬敬递上来,模型照样一本正经引用——第4章”源头浑浊,流水难清”的道理,在知识库里一样成立。

引而不实。材料只说了一半,模型可能顺着预测把另一半补齐,补出的话却挂在原有出处名下——幻觉披上了引用的外衣,更难识破。

应对之道,是把第7章的三问核验落到引用上,我们称之为顺藤摸瓜:它引了哪一条,就翻开哪一条——出处存在吗?原文与它转述的一致吗?超出原文的话,按无依据对待。藤在手上,瓜就跑不掉。

【旁注】(楷体) 图书管理员再敬业,也不替读者读书。资料找来了,读没读懂、信不信得过,仍是读者自己的功课。

【想一想】③ 为什么说”披着引用外衣的幻觉更难识破”?顺藤摸瓜的三步中,哪一步专门对付它?


把“找资料”和“写答案”分开评价

一条错误回答可能来自两个不同环节。第一类是检索失败:正确资料没有被取回,或者旧资料排在前面。第二类是生成失败:正确资料已经取回,模型却遗漏条件、错误归纳或增加了材料外内容。只有先看检索面板,再看回答,才能定位应当改资料、改检索设置还是改回答约束。

检索评价可以记录“正确资料是否出现、排在第几位、是否带回必要条件”。生成评价可以记录“答案是否由材料支持、是否完整、引用是否对应、无答案时是否正确停止”。两组指标不能合成一个笼统分数,因为提高回答文采并不能修复检索遗漏,提高召回数量也可能增加无关内容。

工程测试还要准备无答案问题、相似条款问题、过期资料问题和跨两份材料才能回答的问题。对无答案问题,合格结果应说明知识库未提供依据,而不是借用模型原有知识补写。对冲突资料,系统应展示冲突并请求确认。能处理这些失败条件,才说明检索系统有可用边界。

工程案例:售后知识库的一次版本事故

某虚构店铺把新版退货政策加入知识库,却没有停用旧版。顾客询问“拆封耳机能否七日退货”,系统先取回旧版总则,又取回新版例外条款。模型只引用总则回答“可以”,看起来有出处,实际遗漏了卫生类商品的限制条件。问题同时涉及资料版本、检索排序和回答完整性。

小组先查看候选资料段,确认正确条款是否出现。若没有出现,属于检索失败;若已出现却未被回答采用,属于生成失败;若新旧两版都出现而系统未提示冲突,资料管理和排序也有责任。不同故障要采取不同修正,不能只把指令改成“请更准确”。

检查点 观察 判断 修正方向
资料状态 新旧版同时有效 版本管理失败 停用旧版并留记录
候选片段 新版排在后面 排序风险 加强版本与条款匹配
最终上下文 缺少例外条件 选段失败 保留总则与例外
回答与引用 只引总则 生成不完整 要求逐条对应

更新后不能只重问这一道题。小组还要运行固定样例:普通商品、拆封卫生商品、超过期限、材料中无答案和政策冲突。每条样例检查正确资料是否进入、回答是否忠于材料、出处是否可追。旧问题修好而其他问题退步,说明更新尚未通过回归检查。

课堂知识库规模很小,但管理原则与岗位一致:入库有来源,版本有状态,修改有记录,检索能诊断,回答可回查,无答案会停下。完成案例后提交一张故障树,从“回答错误”向下分成资料、检索、上下文和生成四类原因,并用本次日志为每个实际判断提供证据。

实践活动 请管理员上岗

打开本章实训页(labs/ch08),完成三步验证。实训页已内置班级知识库:《班级公约》《社团简介》《作息时间表》,另有一份用于测试的《旧版活动经费标准》。

第1步 有无对照。 关闭知识库开关,提问:“我校航模社的活动时间和报名条件是什么?”记录回答。打开知识库开关,重问一次。对照两次回答与《社团简介》原文,把差异填入记录单。

第2步 顺藤摸瓜。 就作息时间提一个问题,要求回答注明出处。按三步核对:出处存在吗?原文一致吗?有无超出原文的内容?

第3步 更新实验。 在教师指导下修改《作息时间表》并保存新版本,更新检索记录后重新提问。先确认检索面板取回新版片段,再检查回答是否改变;若未改变,记录问题出在资料、检索还是生成环节。

第4步 坏材料实验。 打开《旧版活动经费标准》入库开关,提问经费标准。观察它是否引用了过时材料,回答口气是否依旧笃定。想一想:这一关,该由谁在什么时候把住?

第5步 填写记录单。 将四个实验结果填入《引用核对记录单》。

【编者注:此处配实训页实际截图,待实训页定稿后补充】


增加检索诊断面板

实训页除显示最终回答,还要显示候选资料段、排序、来源版本和实际送入模型的片段。每个问题先判断“应当找到哪份资料”,再查看系统是否找到;随后核对回答是否只使用了这些材料。记录单分成“检索检查”和“生成检查”两栏,避免把所有错误都归给模型。

更新实验改为四步:修改资料并保存版本号,点击“更新检索记录”,确认新版片段可被找到,最后再次提问并核对引用。再准备一个知识库中没有答案的问题,检查系统是否明确停下。活动完成后提交一张故障定位表,至少记录一次检索失败或生成失败及其依据。

进行一次故障会诊

实训页随机提供四种故障之一:正确资料未入库、检索没有召回、旧版排在前面、模型超出材料补写。小组先不修改系统,只查看资料状态、候选片段、实际上下文和最终回答,按顺序排除。诊断表必须写“看到什么证据,所以判断哪一层”,不能只写故障名称。

修正后运行五条固定问题,其中至少一条无答案、一条需要两份材料、一条涉及版本冲突。对每条分别检查正确资料是否出现和回答是否忠于材料。若召回了正确资料却答错,不能把“检索成功”写成“系统成功”。

最后交换知识库更新记录。复核者确认旧版状态、更新日期、检索记录更新时间和回归结果是否齐全。完成这一步,学生提交的不是一次问答截图,而是一份从资料到回答都可追溯的检索系统记录。

检索与回答双表

一条问题使用两张相连的记录。检索表写预期资料、实际候选、排序和版本;回答表写关键结论、对应片段、是否超出材料和处理决定。两张表使用同一问题编号,便于从错误回答回到候选片段。

问题编号 预期资料 实际取回 正确资料排名 检索判断

无答案问题也要填写。检索没有正确资料时,回答表的预期是“说明资料不足”,而不是空着不评。冲突资料问题则记录系统是否同时展示两个版本、是否请求人工确认。通过这些样例,学生能够区分“没有找到”和“找到了却没用对”。

活动总结不写“有知识库就更准确”。更合格的结论是:在本次哪些问题上,哪些资料被正确取回,回答在哪些条件下得到支持,还有哪些故障未解决。结论越具体,越能指导下一次更新。

岗位迁移:建立一个可维护的小知识库

电商方向选择虚构商品与售后资料,数媒方向选择虚构素材规范与交付标准,汽修、护理或物流方向选择教学版维修提示、护理制度或仓储作业说明。资料总量控制在能够人工核对的范围,每份标明来源、版本、有效状态和责任角色。

把文档按意义完整的小段切分,保留标题和位置。准备五类问题:直接命中、换一种说法、需要两段资料、知识库无答案、旧版与新版冲突。运行时同时查看候选片段和最终回答,分别判断检索与生成。

模拟更新一条资料时,依次完成新版本入库、旧版本停用、检索记录更新和固定问题回归。若回答没有变化,先检查新版片段是否被取回;若已经取回仍答旧内容,再检查上下文和生成。不能用反复重问代替定位。

知识库交给另一组后,对方随机抽取一个答案,沿引用回到原文。找不到来源、来源不支持或版本过期,均判为未通过。可维护的知识库不是文件集合,而是资料状态、检索结果、回答引用和更新记录相互连接的系统。

贯穿项目:班级 AI 助手 v0.8

本章项目阶段是“知识库检索”。接入带版本和来源的班级资料库,分别检查检索片段与最终回答,不把一条流畅回答当作系统合格。这一版不是另起一个无关作业,而是在上一版项目档案上增加一项可验证能力;新增、保留和取消的内容都要写入版本记录。

同时把本章最值得保留的一次失败写入《失败样例册》。记录项目版本、输入条件、预期与实际、错误起点、修改动作和回归结果;暂时无法定位时写“证据不足”,不得为了完整而虚构原因。

安全与责任

本章红线 放进知识库的每一份材料,都由人负责其真实与时效。

知识库是 AI 的粮仓,也是差错的源头:一份过时的价目表入了库,它便一遍遍以最可信的口吻报出旧价。入库先核实,过期即清理,改动留记录——管好知识库,将来在许多岗位上,就是一项写进职责的正经工作。

本章小结

这一章,我们请到了那位图书管理员。手动喂料有三难——窗口有限、搬运劳神、材料常新;检索增强生成以三步解之——按语义检索,放入视野增强,依据材料生成。它的可贵在于知识库常改常新,它的软肋在于引用未必准确:查错、料错、引而不实,三处都可能走样。顺藤摸瓜,翻开原文对一对,引用才配得上信任。万卷藏于库,取用有了神;而辨其真伪的那双眼睛,始终长在人的身上。

习题

基础题

  1. 手动提供材料有哪三个局限?检索增强生成分别怎样化解?
  2. 写出”检索—增强—生成”三步,并说明第一步为什么依靠语义而非关键词。
  3. 引用可能在哪三个地方走样?各用一句话说明。

应用题

  1. 一家维修厂把五年来的维修工单建成知识库,供 AI 辅助报价。请指出这个知识库最可能出现的两类问题,并各提一条管理建议。
  2. 在本班知识库中挑一份材料做”入库审查员”:检查它有无过时、含糊之处,写出一条修订建议。

拓展题(选做)

  1. 有同学说:“既然有了知识库,模型训练时读的那些数据就没用了。”结合承重之梁与本章内容,谈谈你的看法。

本章交付物

交付物 要求
《引用核对记录单》 一张,四个实验记录完整
自评勾选单 逐条自查勾选

《引用核对记录单》

项目 记录
有无对照:两次回答的差异
顺藤摸瓜:三步核对结果
更新实验:改动前后的回答变化
坏材料实验:现象与我的把关方案
我的一点心得

自评勾选单