1. RAG 是什么
这是什么:RAG(Retrieval-Augmented Generation,检索增强生成) = 先从资料库里检索素材,再让大模型照着素材作答。
为什么用:大模型不知道你公司的内部文档,一问就编;重新训练它又贵又慢。RAG 让模型开卷考试——带着你给的资料回答,答案有出处,资料也能随时更新。
如何用:本章从「开卷考试」这个比喻讲起,再走一遍一次请求的完整流程,最后说清什么时候该用、什么时候别用。
1.1 一句话原理:开卷考试
大模型像一个记忆力极好但只上过课的人——通用知识它都懂,可你公司内部的文档、这周刚出的规范,它没见过。
于是我们给它开卷:
用户提问
↓
① 检索 Retrieval:拿问题去知识库里搜,捞回最相关的几段原文
↓
② 生成 Generation:把原文 + 问题一起塞给大模型,照着原文作答
↓
带出处的回答
和「把整本手册贴进提示词」的傻办法相比,RAG 只捞相关的几段——省 token、更准、还能更新。
1.2 为什么值得做
| 痛点 | RAG 怎么解 |
|---|---|
| 模型不知道你公司的内部资料 | 把资料检索出来放进提示词 |
| 模型的知识有截止日期 | 资料随时更新,答案跟着更新 |
| 答案无从追溯、像在瞎编 | 答案带出处,可逐句核对 |
| 每次问答都烧 token | 小模型 + 少量精准上下文,成本骤降 |
关键在最后一条:RAG 让你用便宜的小模型也能答准,这是它在工程上真正流行起来的原因。
1.3 一次请求的完整流程
以「公司报销上限是多少」为例:
| 阶段 | 输入 | 输出 |
|---|---|---|
| 切分 | 一份 80 页的《员工手册.pdf》 | 1200 个小块 |
| 向量化 | 1200 个小块 | 1200 个向量 |
| 检索 | 问题 → 向量 | Top-3 相关小块 |
| 生成 | 小块 + 问题 | 「差旅住宿上限为每晚 500 元,见《手册》第 12 页」 |
1.4 什么时候用,什么时候别用
| 适合 RAG | 不适合 RAG |
|---|---|
| 答案能在资料里找到 | 答案需要推理创造 |
| 资料经常更新 | 知识固定不变且模型已掌握 |
| 要求给出处、可追溯 | 只求一个干脆的答案 |
| 资料是长文档(几十页起) | 资料就两三句话(直接放进提示词更快) |
一句话判断:答案在不在你的资料里?在,就上 RAG。
1.5 三个常见误区
| 误区 | 真相 |
|---|---|
| 「RAG = 给模型塞更多上下文」 | 塞全文既贵又容易淹掉重点,RAG 的核心是只捞相关的 |
| 「接上向量库就完事了」 | 大多数 RAG 效果差,是因为切分和检索没调好,不是模型不行 |
| 「RAG 能彻底消灭幻觉」 | RAG 大幅减少幻觉,但模型仍可能曲解资料;关键结论要人工复核 |
1.6 动手改
- 找一份你熟悉的文档(公司的规章、某本书的章节),写下 3 个你希望 RAG 能回答的问题
- 判断一下:这 3 个问题的答案在不在这份文档里?不在的话 RAG 也救不了
1.7 小结
- RAG = 检索 + 生成:先捞资料,再照着资料作答
- 四步:切分 → 向量化 → 检索 → 生成
- 它的价值不只是「让模型知道你的资料」,更是用小模型答准、省钱、可追溯
- 效果好不好,八成取决于切分和检索
下一章:环境搭建与第一个 RAG,三步跑通闭环 🐸