03RAG:让模型回答它没学过的东西
约 60 分钟
模型不知道你公司的报销制度、产品文档、上周的会议纪要。RAG(检索增强生成)解决的就是这个:问问题之前,先从你的资料里找出相关段落,塞进 prompt 让模型照着答。
流程只有三步
文档 → 切块 → 向量化 → 存向量库
↓
问题 → 向量化 → 检索 top-k 相关块 → 拼进 prompt → 模型生成答案
切块:质量的第一道分水岭
最常见错误是按固定长度切,把一段话拦腰截断。好一点的策略:
- 按文档结构切(标题、段落边界)
- 块大小 300-500 字,相邻块留 10% 重叠
- 每块带上元数据:来源文档、章节、页码
切块决定了检索的上限。 检索不到对的块,后面全白搭。
检索:向量不是万能的
纯向量检索擅长语义相近(“退货”能命中“退款”),但对专有名词、编号、缩写很差。生产环境几乎都用混合检索:向量 + 关键词(BM25),再加一个重排序模型做精排。
生成:把答案拴在材料上
prompt 里必须写死两条:
- “只根据以下材料回答,材料里没有就说不知道”
- “回答末尾标注引用的材料编号”
没有这两条,模型会把检索不到的内容靠想象补上——RAG 系统最大的幻觉来源。
练习
拿一份你公司的真实文档(制度、手册均可),用任意向量库跑通三步流程,然后用 10 个问题测试:几个答对、几个检索偏了、几个编了。记录失败类型比记录准确率更有用。
下一课讲 Agent:当一次调用解决不了问题的时候。