← 返回目录

第 5 讲 知识库:一门课的资料变成能溯源的知识

【可执行状态】需教学套件(知识库建库与检索随套件安装)

【本讲对应资产】知言 · 教师备课助手(专家卡)、lesson-agent 引擎的知识库能力(kb_upload / kb_status)

【本讲原理来源】L3 第 20 课《Function Calling 深度解析》(工具与检索)、吴恩达四大设计模式中的“工具使用”


引子:同一个问题,它答得比你还理直气壮

有位老师问 AI 一句话:“《大数据分析基础》第三章怎么讲?”

它答得又快又好:教学目标三条、教学过程四段、重点难点各两条,还贴心地排了四学时。

问题是——这门课的第三章只有两个学时。

他愣了一下,又换了个问法,得到另一个版本的答案:学时对了,考核比例又不对了。第三次问,连章节顺序都变了。他开始怀疑这东西“不靠谱”。

可它其实没在骗人。它不知道你的课时安排,也不知道你们教务处的考核比例,它手上只有“一般情况下”这四个字。它不是回答错了,它是拿着一本通用教科书在回答一道只有你手上那本校本教材才有的题。

这一讲要做的就是这件事:让它答题之前,先查你的资料,再开口。

一、场景:二十份资料与一句“不像我教的”

一门课的资料有二十份:两份大纲、十八周教案,外加几份教材章节的扫描件。

每次问 AI 关于这门课的问题,答案都是“像那么回事,但不是我教的”。例如问“第三章的考核怎么算”,它会告诉你“平时 20%、期中 30%、期末 50%”——一个在很多学校都成立、但和你这门课无关的比例。你真正的大纲写的是 30/20/50,可它没读过。

再比如问“第六章有没有安排实训”,它会顺口写“建议安排两次实训”——听起来很合理,但你那份大纲里第六章根本没有实训学时,实训全在第九章。

最典型的还是学时。同一句话——“第三章怎么讲”——问三种问法,得三个答案。这就好比你去问一位刚调来的老师:“咱们班月考排在周几?”他凭着经验说:“一般是周三下午吧。”态度没问题,缺的是那本班里的课表。

这一讲要练的动作,是给这门课建一个档案室:让它回答之前,先去你的资料里翻一遍。

二、原理:给它一个档案室

2.1 大模型的两个短板

这两条短板决定了:要它答“我们家的活”,不能只靠它聪明。 打个比方:你请了一位见多识广的老专家,他走过很多学校、见过很多教法,但他没进过你们教研室的门。阅历能替代常识,替代不了档案。

2.2 “先查再答”这件事,是怎么来的

这个做法不新鲜,它是检索这件事走了八十年的结果:

阶段时间核心做法解决了上一阶段什么痛点留下什么新问题
卡片目录十九世纪起图书馆把每本书写成一张卡片,按类排好找书不用一间间屋子翻只能按“书名/作者”找,按“内容”找不了
全文检索二十世纪后期关键词加权重排序,把最相关的段落排前面能按内容找了关键词对不上就找不到:你问“课上怎么讲”,文件里写的是“教学实施”
网页搜索二十世纪末起全网抓取 + 排序,一句大白话就能搜检索入口从“会写检索式”变成“会提问”搜到的是别人的资料,不是你的
检索增强生成二〇二〇年起先从你的资料里取几段,再让它照着这几段作答答案既“像人话”,又能落在具体资料上资料得先清洗、先分块——这是本讲要练的活

这条路走到今天,核心突破只有一句话:把“检索”和“生成”接成了一条链[1]。比如原来的做法是“让专家凭记忆答”,现在的做法是“让专家先调档案、再答”。就像医生看病:老医生凭经验也能说个大概,但真正定诊的是那张化验单。

2.3 三步:先检索、再增强、后生成

做法叫检索增强生成(RAG),拆开三步:

先检索(在你的资料里找出最相关的几段)→ 再增强(把这几段和问题一起交给它)→ 后生成(让它基于这几段作答)。

举个例子:你问“第三章怎么讲”。它先在你的二十份资料里找,命中“第三周教案”和“课程教学大纲(2026 版)”两段;然后带着这两段回答你,写完还告诉你“这一句出自第三份文件”。它从“凭印象”变成了“照着念”。

一句话记住这条链的价值:它的聪明没变,它的依据变了。

2.4 建库有四步,其中第二步最关键

步骤做什么关键点
解析把 PDF/Word 里的文字抽出来扫描件没有文字层,要先识文字;图片型的表格要转成文字
分块把长文切成小段块太大检索不准,太小上下文不足;分块质量决定了知识库的上限
向量化把每段变成一个“语义坐标”这一步由系统做,你不需要懂算法
入库存起来,可以检索之后每次提问都走它

为什么“分块”最关键?打个比方:这就像把一本厚书做成索引。假如你把整本书当成一条索引(不分块),那么问任何问题都会指向“这本书”,等于没索引;假如你把索引做得太碎(一个字一条),你会检索到一堆没有上下文的碎片。索引的粒度,决定了你能不能找到东西。

有一种成熟做法叫父子分块:用小的块(更精准)去检索,命中之后返回它所在的大的块(上下文更完整)。一句话记住:小块负责找得准,大块负责答得全。 好比去医院找科室:先按症状挂到具体的诊室(小),但最后拿到的是一份完整的病历(大)。

顺带说一句:分块这一步做得好不好,最后会以“相似度”的形式露出来。实测中最高的一条相似度是 0.6415,指向第三周教案——这说明那句话确实在你自己的资料里有落点。分数低不代表它错,但分数高的那几条,才是它敢下笔的依据。

2.5 一组真实数据:有库与没库,答案差在哪

一门《大数据分析基础》的资料建库结果:二十份资料 → 三百五十五个子块。随后用同一句话做对照实验:

问法结果
不问知识库,直接问泛化答案:学时写成 4 学时;考核比例写成 20/30/50
先查知识库再问精确答案:第三章对应“大数据的产生(2 学时)”;教学目标、重点难点、教学过程、考核方式全部取自真实大纲;考核比例是真实的 30/20/50

而且每条答案后面带溯源:说明这一句来自哪份文件的哪一段,附带相似度。

这就是可以交给学生和同事的东西:不是“AI 说得挺对”,而是“AI 说的这句,出自第三份文件第几段”。就像一个能在法庭上举证的证人——他不光说,他还指出证据在卷宗的哪一页。

2.6 有人要问:建这个库,是不是要买服务器?

这个问题问得很实在。答案是:不用。

三条理由:

  1. 建库这件事,工具本身就能干。你说一句“把 /我的课程/大数据分析基础/ 里的资料建成知识库”,剩下的解析、分块、入库都是它的事,就像把一箱文件交给档案员,你不用自己贴标签。
  2. 它跑在本机的备课引擎上,资料不出你这个环境——这也是为什么本讲的边界能写得比较松一点:只要你不主动把它发到公网。
  3. 成本不是钱,是“整理”。真正花时间的是把扫描件识别成文字、把新旧版本分开。这部分省不掉,但一次做完,一个学期受用。

2.7 再问一句:什么资料不该进库?

这个问题比“建库难不难”重要得多。三条底线,好记:

三、动手三件套

一句话指令

把 /我的课程/大数据分析基础/ 里的二十份资料建成知识库,建完告诉我分成多少块;
然后回答“第三章怎么讲”,要求:每条结论后面标出来自哪份文件;
检索不到就直说检索不到,不要凭常识补。

三条要求对应三件事:报块数(证明真的建了)、要溯源(证明有依据)、允许说不知道(证明不是编的)。

点名工具的话,第一句是 mcp__lesson-agent__kb_upload,第二句查状态用 mcp__lesson-agent__kb_status:

用 mcp__lesson-agent__kb_upload 上传这个文件夹里的资料建库,再用 mcp__lesson-agent__kb_status 把建库结果报给我。

预期产物

产物内容
知识库资料份数与分块数(例如二十份资料、三百五十五个子块)
带溯源的回答每条结论 + 来源文件 + 所在位置 + 相似度
对照记录同一问题的“有库/无库”两份答案,放在一起对比

校验点

  1. 块数合理:分块数与资料量匹配(二十份资料只有三个块,一定是分块出错了)
  2. 溯源能回原文:抽三条,按它给的位置回原文核对,对得上
  3. 命中率:抽十个本课程真问题,能检索到相关资料的比例(低于一半说明资料或分块有问题)
  4. 答不出就说答不出:问一个资料里压根没有的问题,它应当说“资料里没有”,而不是编一个
  5. 版本是最新的:这学期的资料进库后,旧版本要清掉或标明,否则它会引旧内容
  6. 对照记录留档:把“有库/无库”两份答案存下来,教研活动上直接能给同事看

四、常见错误与排错

错误一:不分块,整份文件直接入库。

现象:问什么都检索到同一份大纲,答案泛泛。

排错:确认分块生效,块数应远大于资料份数。比如二十份资料、三百多个块是正常的量级;二十份资料、二十个块就说明没切。

错误二:资料没清洗就入库。

现象:检索出来的段落是页眉页脚、乱码、或整页扫描图。

排错:先把扫描件做文字识别,把表格转成文字,再入库。这一份辛苦就像整理书架前的分类——花一次,省很多次。

错误三:只看回答,不看溯源。

现象:答案读起来很顺,但引用的是旧版大纲。

排错:养成看溯源的习惯——这是这类系统与“聊天”最大的区别。打个比方:查资料的时候,你总归要看看这段话出自哪本书第几页;看 AI 的答案,也该有这个动作。

错误四:库建完就不管了。

现象:学期中改了考核比例,库还是老的,AI 一直按老比例答。

排错:把这门课的库当成“要维护的资料”:换教材、改大纲、加案例,都要更新。就像冰箱要定期清一次,不然你永远不知道里面哪盒是过期的。

错误五:指望它替你判断。

现象:把“该不该改考核比例”这类问题丢给它。

排错:它给依据,你下判断。这两件事不要混。比如它可以告诉你“现在大纲里实训占 20%”,但“今年要不要提到 30%”,那是专业判断。

错误六:把旧版和新版一起塞进去。

现象:同一份大纲的两个版本都在库里,问同一个问题两次答案不一样。

排错:一个库对应一个学期;旧版移出库,或在文件名里标明版本与生效学期。

五、边界与红线

六、拓展与学科迁移


带走一句话

知识库不负责让它更聪明,只负责让它先查过你的资料再开口。

背后的引擎(本讲速查)

你要做的事工具全名一句话作用
把课程资料建成知识库mcp__lesson-agent__kb_upload上传本机资料,解析、分块、入库
看建库结果mcp__lesson-agent__kb_status报资料份数与分块数
基于知识库出教案mcp__lesson-agent__lesson_gen生成的教案内容取自你的资料
逐讲修改mcp__lesson-agent__lesson_revise按你的意见改某一段

本讲要点(速记)

参考文献

[1] Lewis P, Perez E, Piktus A, et al. Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks[C]. Advances in Neural Information Processing Systems 33, 2020.(检索增强生成的开创性论文:先检索、再生成)

[2] Bush V. As We May Think[J]. The Atlantic Monthly, 1945, 176(1): 101-108.(“memex”设想:把一个人全部的书与记录变成可随时检索的私人档案库——今天知识库的思想源头)

[3] Robertson S, Zaragoza H. The Probabilistic Relevance Framework: BM25 and Beyond[J]. Foundations and Trends in Information Retrieval, 2009, 3(4): 333-389.(关键词检索的经典权重模型 BM25)

[4] Karpukhin V, Oğuz B, Min S, et al. Dense Passage Retrieval for Open-Domain Question Answering[C]. Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing (EMNLP), 2020.(把段落变成语义向量来检索,即“向量检索”的代表工作)

数据与平台:本讲实测数据来自 zhenyuonline.cn 的 lesson-agent 引擎知识库能力(2026-09-17 实跑):

以一门《大数据分析基础》的 20 份资料建库,得到 355 个子块;对照组中,无库回答把第三章学时写成 4 学时、

考核比例写成 20/30/50,有库回答给出第三章“大数据的产生(2 学时)”、考核比例 30/20/50,

最高一条溯源相似度 0.6415,指向第三周教案。所用资料已作脱敏处理。