返回Agent 开发
PATH 01/LESSON 08/20 分钟

RAG 是一条证据管线

拆开切分、召回、重排、生成与引用验证。

课程全目录 · 选择章节

本课学习目标

  • • 切分 — 建立可检索单元
  • • 召回 — 找出候选证据
  • • 重排 — 重新判断相关性
  • • 验证 — 核对答案与引用

完成路径

阅读概念与案例 → 完成动手任务 → 勾选实践检查 → 回答检查点 → 保存完成记录。练习由你自行检查,不会假装成自动代码评分。

01 / 核心概念

RAG 的价值不是把更多文本塞给模型,而是用可检查的过程选择相关证据。每一步都可能引入错误。

高质量系统会保存查询、候选片段、重排分数和最终引用,从而知道错误发生在哪一层。

02 / 心智模型

01

切分

建立可检索单元

02

召回

找出候选证据

03

重排

重新判断相关性

04

验证

核对答案与引用

03 / 代码骨架

TYPESCRIPT / CONCEPT
const evidence = await retrieve(query, { topK: 12 });
const ranked = await rerank(query, evidence);
const answer = await generate({ query, context: ranked.slice(0, 4) });
return validateCitations(answer, ranked);

这是解释结构的代码骨架,外部函数与数据需要在实际项目中实现。

04 / 贯穿案例

放进真实情境里看

知识库同时有 v1 与 v2 的发布说明。问题明确询问 v2,但语义相似度最高的片段来自旧版。直接交给模型会得到流畅却过期的答案。

  1. 01

    检索前限定范围

    给每个片段保存文档 ID、版本、更新时间和章节;从问题中提取版本,先过滤,再做语义召回。

  2. 02

    检查候选是否足够

    看候选覆盖的是问题的哪一部分。重排只改善候选顺序,无法找回召回阶段遗漏的证据。

  3. 03

    把引用当作约束

    答案里的每个关键事实都要指向具体片段;验证引用是否存在、版本是否匹配、片段是否真正支持该句。

05 / 动手做

用自己的产物检验理解

为“新版是否支持批量导出?”设计三条文档片段:一条 v1 肯定、一条 v2 否定、一条无关。写出检索过滤规则和最终回答的依据。

完成时检查

  • 每个片段带版本和来源 ID
  • 旧版片段不会覆盖新版结论
  • 证据不足时允许回答“不确定”

自动保存在当前浏览器,不会同步到账户。

继续到代码练习

06 / 检查点

复杂问题混入旧版文档时,应该优先增加哪一步?

延伸阅读 · 原始资料