检索增强生成(RAG)、智能体与产品落地
检索增强生成(RAG)基础:索引、检索与上下文组装
学习目标
- 理解检索增强生成(RAG)的基本链路。
- 能区分索引、检索和上下文组装。
- 知道检索增强生成不是自动正确的保证。
核心概念
检索增强生成(RAG)是 Retrieval-Augmented Generation 的常用缩写。它的思路是:先从外部知识库找到与问题相关的材料,再把这些材料作为上下文交给模型生成答案。
检索增强生成通常分为两个阶段。离线或后台索引阶段处理文档,生成切片、向量和元数据。在线查询阶段根据用户问题检索相关片段,组装上下文,调用模型,并返回带依据的回答。
检索增强生成的价值是让模型看到当前、私有或长尾知识。但它不会自动保证正确。如果检索错了、上下文缺失或提示词要求不清楚,模型仍可能答错。
示例与拆解
用户问:
人工智能知识助手项目最终要提交什么?
检索结果:
1[ 2 { 3 "source": "project:ai-knowledge-assistant", 4 "text": "交付物包括可运行的知识助手、基础知识库导入与检索逻辑、最小评测说明和产品说明。" 5 } 6]
组装给模型的上下文可以是:
1请只基于资料回答,并列出引用。 2 3资料: 4[1] 人工智能知识助手项目:交付物包括可运行的知识助手、基础知识库导入与检索逻辑、最小评测说明和产品说明。 5 6问题:人工智能知识助手项目最终要提交什么?
期望输出:
你需要提交可运行的知识助手、知识库导入与检索逻辑、最小评测说明和产品说明。引用:[1]
常见误区
- 误区一:以为接入向量数据库就完成了检索增强生成。检索、组装、引用和评测同样重要。
- 误区二:把检索结果原样全部塞给模型。上下文需要排序、去重和截断。
- 误区三:没有引用。没有引用时用户很难判断答案依据。
小练习
为一个课程常见问题设计检索增强生成查询链路,写出索引数据、查询输入、检索结果和最终上下文模板。
实操检查点
至少准备 3 个常见问题,并为每个问题指定应该命中的片段 id。先检查检索结果,再看最终回答。不要直接从最终答案判断检索增强生成是否有效。
1{ 2 "question": "人工智能知识助手要交什么?", 3 "expected_chunk_ids": ["project_ai_knowledge_assistant_deliverables"], 4 "answer_rule": "必须引用命中的项目交付物片段" 5}
如果 top 3 检索结果没有目标片段,优先修索引和切分,不要先改回答提示词。
随堂测验
完成本章测验,重点检查你是否理解检索增强生成的三段链路。
本章总结
检索增强生成用检索补充模型上下文。它的效果取决于索引质量、召回相关性、上下文组装和回答约束。
下一步学习指引
下一章深入文档切分、嵌入(Embedding)和召回质量,这是检索增强生成效果的关键。