Skip to content

第 12 课 · 章节直灌 vs 知识库检索

阅读器答疑最核心、也最容易偷懒的一步:知识怎么喂给模型。 直灌简单但天花板低,RAG 麻烦但可控可扩 —— 分清什么时候用哪个。


本课要解决的问题

第 11 课的架构里,能力层最关键的决策是:回答问题时,把 整节正文塞进 prompt(直灌),还是 检索后只给相关片段(RAG)?

这一步选错,后面 token、成本、质量、出处全受影响。


一、两种做法对比

章节直灌知识库检索(RAG)
做法按章节 ID 把整节正文拼进 prompt切块 + 向量化,按问题检索相关 chunk
实现成本低(拼字符串)中(要建库、切块、检索)
token高,易超窗口 / 被截断低,只塞相关片段
无关内容多(整节都在)少(只取相关)
出处难精确到段可标到章节 / 段落
可扩展差(跨章问题答不了)好(跨章、全库检索)

一句话: 直灌是「把整本书摊开碰运气」,RAG 是「精准翻到相关那几页」。


二、什么时候直灌「可以」

直灌不是一无是处,内容短且明确聚焦当前位置 时,它更简单:

✅ 用户就问「当前这一段」讲什么 → 直接塞当前段落,不必 RAG
✅ 单章很短(几百字)、问题不跨章 → 可直灌该章
✅ 快速原型验证 → 先直灌跑通,再换 RAG

判断法: 要喂的内容 短、且一定相关,直灌够用;否则上 RAG。


三、什么时候必须 RAG

❌ 按章节 ID 拼两节全文(动辄四五千字)→ token 浪费 + 截断 + 答非所问
❌ 跨章节问题(「这个概念在哪几课讲过」)→ 直灌根本覆盖不到
❌ 全教材 / 多教材问答 → 只能检索
❌ 要给精确出处 → 必须 RAG 标来源

最常见翻车: 直灌两节正文却叫「智能 Agent」—— 这是 架构偷懒,不是模型能力问题(呼应第 01 课)。


四、RAG 做对的几个关键

环节要点
切块 Chunking常见 300~800 字;太大不精准 / 费 token,太小丢上下文
Embedding文字转向量,按语义检索(词不同意思近也能找到)
检索数量一般 top 3~5 块
Hybrid 检索关键词 + 语义混合,兼顾精确匹配和语义泛化
Rerank(可选)检索后再排序,把最相关的顶上来,提精度
出处每块记住来自「第 X 节」,答案里带引用

教材天然适合 RAG

教材有 结构化章节 —— 天然是切块和标出处的好素材。按「课 / 节 / 知识点」切,检索精准、出处清晰,比通用文档更好做。


五、成本与质量:一笔账

方案单次 token质量出处跨章
直灌整节中(含噪声)
直灌当前小段高(若问题就在这段)
RAG top 3~5

决策口诀:

问的就是眼前这一小段 → 直灌当前段落
问的是「书里某处 / 跨章 / 要出处」→ RAG
别用「直灌整节」当默认,它是成本与质量双输

本课结论

  1. 直灌 vs RAG,本质是「摊开碰运气」vs「精准翻页」。
  2. 直灌只在「内容短且必相关」时可用(当前段落、单短章、原型)。
  3. 跨章 / 全库 / 要出处 → 必须 RAG。
  4. RAG 做对: 切块 300~800 字、top 3~5、hybrid、可选 rerank、带出处。
  5. 教材结构化章节天然适合 RAG,别偷懒直灌整节。

课后自检(3 分钟)

  • [ ] 我能判断每个问题该「直灌当前段」还是「RAG 检索」
  • [ ] 我没有把「直灌整节」当默认方案
  • [ ] 我的 RAG 切块大小、检索数量是有依据设的
  • [ ] 跨章 / 要出处的问题我都走 RAG
  • [ ] 我的答案带章节引用,便于用户核对

下一课预告

第 13 课 · 从 V1 到 V2 的演进路线 —— 场景篇收尾:一条从最小可用到自主 Agent 的落地路线图。


延伸阅读


© 曹宇春

© 曹宇春 · 个人学习整理,欢迎交流