你问模型一个只有你们公司才知道的问题,比如“我们去年的退款政策是什么”,它大概率会编一个听起来合理的答案糊弄你。这不是模型笨,是它训练时根本没见过你们的内部资料。检索增强生成(Retrieval-Augmented Generation,简称 RAG)就是给模型配一个“边查边答”的能力:回答前先去你的知识库里翻一翻,把找到的相关内容拼进问题,再让模型基于这些材料作答。本文把一个能落地的 RAG 流程拆开讲清楚。
没有 RAG,模型靠什么答你
大语言模型的知识来自训练时吃进去的海量文本,截止时间是固定的,而且它学不到你私有的、最新的、细碎的业务信息。它生成答案时是在预测下一个最可能合理的词,不是在查事实。所以遇到内部政策、最新价格、专有名词,它会一本正经地猜。这种猜错比直接说不知道更危险,因为普通人看不出破绽,还会照着错的内容去做决定。
RAG 背后的知识库三层
落地 RAG,真正费劲的是知识库那半边:数据源进来,先切片、向量化,再进向量库供检索。模型侧反而简单。三层画清楚,排错时有方向。
拆开看,RAG 就三步,理解成“先翻书再答题”最直观。
- 检索:把用户的问题转成可检索的向量,去知识库里找最相近的几段材料。
- 拼接:把找到的材料和问题合在一起,组成一段带上下文的提示。
- 生成:模型只读这段提示来回答,不再凭空发挥。
关键在第二步——模型看到的不再是“凭记忆答”,而是“看着这几份材料答”。材料里没有的,它就失去了乱说的依据。这等于把模型的嘴从“自由发挥”改成了“照本宣科”,靠谱程度一下就上去了。
知识库这一步最容易被轻视
RAG 答得好不好,七成取决于知识库本身的准备。材料没整理好,检索再花哨也白搭。下面三件事先把住。
- 切分要合理:一段太长模型抓不住重点,太短又断章取义。按语义边界切,而不是死板按字数切。
- 去掉噪声:重复页、广告语、过期版本先清掉,免得检索把它们当成正经答案顶上来。
- 标好来源:每段材料留出处,方便回答时带引用,也方便你事后核对哪句话来自哪份文件。
实操提醒:知识库不是一次性建完就完事。资料在变,索引就要跟着更新,否则模型查到的还是旧版本,回答自然也旧。
一个能照着搭的最小流程
最小可用版就五步:上传资料、自动切片、向量化入库、用户提问时检索、拼进提示词让模型作答。先跑通这条线,再谈高级玩法。
不必一上来就搞复杂架构。先跑通下面这条线,你就有了“答得有据”的雏形。
| 环节 | 怎么做 | 注意 |
|---|---|---|
| 上传资料 | 把文档丢进向量库 | 先小批试,别一上来全量 |
| 问题转向量 | 用嵌入模型把问题变成向量 | 和文档用同一个嵌入模型 |
| 取前 N 段 | 返回相似度最高的几段 | N 取 3 到 5 段较稳 |
| 拼提示作答 | 材料加问题交给模型 | 明确写“只依据材料答” |
这条线转起来以后,再慢慢加引用展示、加访问权限、加多轮追问,一口吃不成胖子。
几个常踩的坑
- 检索回来一堆不相关的:多半是切分或嵌入模型没配对,先调检索再调提示。
- 模型无视材料自说自话:在提示里写清“不知道就直说,别编”,并给一两个示例。
- 答案对但过时:检查索引多久没重建,设个定期任务自动更新。
小结:RAG 不是把模型换掉,而是给它接上你自己的资料。它最值钱的地方,是让回答从猜变成查。先把知识库整干净,再让流程转起来,比追新花样有用得多。等这条线稳了,你才会真正体会到,模型原来可以这么“懂”你的业务。
怎么判断 RAG 靠不靠谱
上线前先做一组固定题目,一半是你真遇到过的难答问题,一半是故意刁难它的边界题。每答完一题看两点:材料有没有被真正用到,答案能不能在材料里找到出处。如果模型答得顺但材料里根本没这句,说明它在凭记忆编,这条检索线还没接稳。另一样要盯的是拒答表现——太敢答和太不敢答都说明阈值没调好,正常的系统应该在材料不足时老实说查不到。
进阶一点能玩什么
- 带引用的回答:让模型每句话标出来源段落,用户能点开核对,信任感立刻上来。
- 多路检索:同一问题从几个知识库分别取,再合并,适合资料分散在不同系统。
- 追问补全:用户问得含糊时,先让它从材料反推还缺什么信息,反问清楚再答。
这些都不是必须一上来就做。先把“能查、能答、答得准”这条主线跑顺,再按业务痛点往上加。功能堆得早,不如主线扎得稳。你后面会发现有引用和无引用的回答,用户信任度差出一大截,那才是 RAG 真正值钱的地方。
举个具体场景:客服知识库里有三百篇产品文档,用户问海外版怎么开票。纯模型可能按国内流程答,直接错。RAG 先把问题转成向量,捞出海外版开票那几段,连同问题一起交给模型,它自然照着海外规则答,还顺手带上文档链接。这一步没改模型半点权重,只换了它手边的资料,效果却天差地别。把它跑通,你才算真正用上了自己的知识。


