本阶段课程 · 知识库、检索与 RAG
知识库:文档解析、分段与版本
上传之后还发生什么,为什么资料质量会直接影响回答。
为什么需要一份可维护的知识来源
大语言模型不一定知道你公司的最新政策、你自己的笔记或某个活动的规则。要回答这些问题,需要把相关资料提供给应用。资料少时可以直接粘贴;资料多时,应用可以建立知识库,按问题找到相关内容。
知识库不是一种让任何文件自动变准确的能力。它通常保存原始资料、处理后的文字或片段,以及用于查找的索引。资料本身重复、过期或矛盾,问答系统就会继承这些问题。
文件上传后,为什么还要解析
文件里的内容可能是普通文字、扫描图像、复杂表格或多栏排版。应用首先需要把它们读成可以处理的内容。扫描件可能经过文字识别,表格可能被转换为行列或文本,网页可能去除导航和广告。
这一步可能丢失结构。例如退款表里“提前24小时”和“全额退”属于同一行,解析后若错配到另一行,就会改变规则。建立知识库时,应先检查读取结果,而不是只看文件名是否出现在列表里。
文档为什么要分成片段
长文档不适合每次完整交给模型。应用常把文档拆成较小的片段,提问时只取回相关部分。这些片段常被称为chunk。分段要兼顾查找效率与信息完整性。
假设原文是:“提前至少24小时取消可以全额退款;不足24小时不退款,但可以转让名额。”若片段只保留“可以全额退款”,之后的回答就容易漏掉时限。反过来,把整本手册当一个片段,又可能带入太多无关信息。
| 需要保留的信息 | 为什么有用 |
|---|---|
| 标题与所属章节 | 说明片段讲的是什么 |
| 完整条件与例外 | 避免只取到结论,丢失限制 |
| 生效时间与版本 | 判断是否仍适用 |
| 来源位置 | 回到原文核对 |
| 访问范围 | 避免把无权读取的资料取给用户 |
新旧版本怎样管理
如果知识库同时保存旧版48小时退款规则与新版24小时规则,检索可能把两份都找出来。最好在资料管理或检索阶段明确有效版本,而不是仅依赖模型每次自行发现哪一份过期。
历史文档可以保留,但应与当前规则区分,并让系统知道查询是在问现行政策还是历史变化。更新一份来源后,还要检查旧片段是否继续被使用,不能只确认新文件上传成功。
从小规模资料开始验证
第一版可以只放一页规则,准备几个有明确答案的问题,再加一个资料没有覆盖的问题。这样能判断系统是否读对内容、找对片段,以及能否保留未知。发现问题后,也更容易定位是哪份材料造成的。
整理好来源后,下一步是找到与问题相关的片段。下节会解释关键词搜索、语义检索和嵌入各自起什么作用。
检查一下理解
本节参考与继续阅读
下列章节用于核对概念与机制。本站以中文重新组织讲解,例子和练习为独立编写。
- Microsoft · RAG and Vector Databases
对应资料准备、检索与生成链路;向量与原文需保存对应关系,本站不把相似度或RAG本身当成准确性保证。
- Dify · 用知识库回答问题
参考上传文档、查看片段、检索测试与连接回答节点的操作;不采用“知识库保证正确”等过度概括。
可选练习得到一份能上传或直接粘贴的活动规则,并清楚标出未知信息。
得到一份能上传或直接粘贴的活动规则,并清楚标出未知信息。
打开你常用的 AI 对话工具,选择“新建对话”或“新建聊天”。在输入框粘贴下面的内容,点击发送。后续步骤留在同一段对话里;只有明确要求时才新开对话。
青禾读书会活动规则|当前版本2026-09 活动时间:周日14:00—16:00。 人数:最多12人。 退费:活动开始前24小时可全额退款;不足24小时不退款,可转让名额。 阅读:不要求读完整本书,带来一个问题也可以参加。 停车:本规则没有提供停车费用信息。
跟着做一遍
下面的结果是本站编写的对照示例。实际工具的措辞可能不同,按每步的关键条件检查即可。
先确认哪份是当前规则
复制上面的规则,保存到你的笔记或下载为文字文件。暂时不需要创建任何知识库。
请阅读下面的活动规则,提取“活动时间、人数、退费、阅读、停车”五项。只整理,不新增政策。 青禾读书会活动规则|当前版本2026-09 活动时间:周日14:00—16:00。 人数:最多12人。 退费:活动开始前24小时可全额退款;不足24小时不退款,可转让名额。 阅读:不要求读完整本书,带来一个问题也可以参加。 停车:本规则没有提供停车费用信息。
做完后,展开结果对照
时间周日14—16点;人数最多12;提前24小时可全额退;不要求读完;停车费用未知。
为什么这样做干净的材料能让后面的问答更容易核查。把更新时间写出来,也方便发现混入的旧规则。
试一个容易切坏的段落
让 AI 按主题分段,并检查退费的时间条件和例外是否仍在同一段。
把规则拆成带小标题的短段落,每段保留完整条件。退费的24小时时限、不退款与可转让必须留在同一段。
做完后,展开结果对照
“退费与转让”段应同时包含提前24小时全额退款、不足24小时不退款、可转让三个条件。
为什么这样做若只取到“可全额退款”而丢了时间限制,之后的回答就可能出错。段落越短不一定越好。
加一条旧规则,练习隔离版本
这里故意加入已失效内容,让它整理为版本清单。
当前2026-09规则:不足24小时不退款,可转让。旧版2025-01规则:至少提前48小时取消才可退款,已失效。请列出当前适用内容,把旧版单独标为历史,不合并成一条政策。
做完后,展开结果对照
当前:不足24小时不退款、可转让。历史:至少提前48小时才可退,已失效。
为什么这样做真实资料中要实际隔离或过滤旧版,不能只期待模型总能看见一个小小的“旧”字。
资料片段
为了查找而拆出的文档段落;每段需要保留能理解它的标题与关键条件。
没做出来?从这里排查
文件上传后出现乱码
先用纯文字文件或直接粘贴,确认中文和段落能正常读取。
回答引用了旧版本
移出旧文档,或在检索前按有效版本过滤,再重新提问验证。
换一个例子验证
整理一页你经常需要回答的规则。
- 加标题、当前版本和适用对象。
- 把互相依赖的条件放在一起。
- 标出三个已知问题和一个资料没有回答的问题。
完成状态仅保存在当前浏览器,可再次点击取消。