Skip to content

第 8 章 上下文构造与答案生成 ​

先给结论:RAG 的后半程,决定的不是“有没有证据”,而是“证据能不能被模型稳定用好”。到了这一章,重点已经不再是继续把更多内容找出来,而是如何把已经找到的内容组织成可用上下文,并让模型在这个上下文上尽量忠实、稳定地回答。

前面几章已经解决了很多关键问题:

  • 数据怎么准备
  • 块怎么切
  • metadata 怎么设计
  • 索引和更新怎么做
  • 查询怎么理解
  • 候选怎么召回、重排和精选

但真实系统到这里仍然会卡住,因为即使这些步骤都做得不差,最后仍然可能出现:

  • 上下文给得太多,答案变散
  • 上下文组织得不对,模型抓错重点
  • 长上下文里关键证据失焦
  • Prompt 没把证据边界讲清楚,模型开始补猜
  • 明明引用了来源,答案仍然不忠实

所以这一章真正关注的是:

  • 检索之后,如何把证据变成更适合生成的输入
  • 生成时,如何让模型更稳定地围绕这些证据回答

本章要解决什么问题 ​

这一章主要回答五类问题:

  • 为什么检索结果不能原样全塞给模型
  • 为什么不同任务需要不同的上下文组织方式
  • 为什么长上下文不等于问题已经解决
  • 为什么 RAG Prompt 必须显式约束证据边界
  • 为什么生成阶段仍然会出现答非所问、半忠实、半对半错的错误

如果说第 7 章更偏“检索结果怎么排、怎么选”,那么这一章更偏:

  • 选完之后,怎样把它们组织成模型真正能用好的上下文

学这一章时,最值得先建立的判断 ​

  • 进入 Prompt 的内容,不是越多越好,而是越适合当前任务越好
  • 上下文构造和 Prompt 设计,都是生成质量控制的一部分
  • 长上下文只是预算变大,不代表证据组织问题自动消失
  • “有来源”“有证据”不等于“回答忠实”,生成阶段仍然需要单独排查

建议阅读顺序 ​

  1. 8.1 为什么检索结果不能原样全塞给模型
  2. 8.2 不同任务的上下文组织方式
  3. 8.3 长上下文问题
  4. 8.4 RAG Prompt 设计
  5. 8.5 生成阶段常见错误

主题模块 ​

学完这一章后,你最好能更稳地判断 ​

  • 当前系统的问题更像上下文构造失败,还是生成控制失败
  • 什么情况下应该给模型更少、更精、更结构化的材料
  • 为什么同一批候选,用不同组织方式喂给模型,结果会差很多
  • 为什么“回答已经带来源”仍然不等于“答案足够忠实”

关联章节 ​