RAG技术通过“检索-增强-生成”的机制,精准补足了大模型在处理私有、最新或特定领域知识时的短板。本文将通过两个实战案例,深度剖析RAG如何实现信息聚焦与流程控制,让你清晰理解其核心价值。
一、RAG技术为何能解决大模型的核心痛点?
大模型和RAG一样,都是针对用户的问题给出答复。那么,为什么有问题不直接问DeepSeek,还要跑一遍RAG?
RAG的出现,从根本上解决了大模型在处理知识时的一个核心痛点:如何高效、准确且低成本地利用那些未训练过的、私有的或最新的知识来回答问题。
如果我们希望大模型根据某些特定的知识内容生成答案,就必须将这些知识提供给模型。
似乎我们可以把这些知识全部发送给模型,但实际上并不可行:
- 大模型本身的上下文长度有限,无法一次性处理大量内容。
- 即使上下文窗口未来不断扩大,每次提问都传入海量文档也会导致计算成本高昂、响应速度慢,并且可能引入无关信息干扰模型判断。
RAG通过“检索-增强-生成”的方式,针对用户的问题,系统首先在专用知识库中检索最相关的信息片段,仅将这些精选出的上下文传递给大模型。这样既克服了长度限制、降低了成本,也确保了模型作答的依据始终聚焦在我们提供的权威知识内。
同时,借助RAG的工作流设计,我们还可以控制大模型的思考路径,使其按照预设流程推理,而非随意发挥,进一步提升了回答的准确性与可靠性。
小提示: 当你的任务目标不是获取灵感,而是要求基于特定知识做出准确、可靠回答时,RAG就从一个可选项变为了必选项。
二、信息聚焦案例:基于《非暴力沟通》的精准问答改造
举一个沟通问题的例子。
比如我和我的室友沟通不太顺畅,希望AI可以给我一些建议。我希望AI使用《非暴力沟通》这本书的知识来指导我的沟通。
于是我问deepseek:
我的室友经常不收拾屋子,让我很烦躁,所以我跟他说:“你总是不收拾屋子,让我很烦躁”,室友听了后显得很生气并且没有什么改变,我应该怎么跟他沟通才能解决这个问题
很明显,AI虽然给出了回答,但是不是我想要的,因为我希望使用到《非暴力沟通》的知识。
当然,如果在提示词中,直接说明需要使用《非暴力沟通》的知识回答,deepseek也可以给我们想要的答案。这是因为DeepSeek在训练过程中很可能学习过这本书的相关内容,所以它能理解并执行这个指令。
但是实际业务中,可能AI的最初训练资料中没有相关知识,所以你即使指定所用知识,AI也是无法回答的。
此时,我们引入了RAG,来看看AI的回答。
我们使用coze搭建一个简单的RAG。
在COZE中,创建知识库并上传知识内容时,COZE按照一定的规则,做出知识分块、向量化等操作,我们不需要太复杂的工序即可搭建一个RAG。
这里是使用《非暴力沟通》的PDF版本上传后作为一个知识库,然后在Agent中调用这个知识库,让我们看看引入RAG后的回答。
可以看到,我们使用了和给到deepseek相同的提示词,但是在这个回答中,AI给出的第一个回答正是按照书中观察、感受、需要、请求的四个要素给出沟通建议。
当然,如果我们给deepseek的问题中,指定需要用非暴力沟通的方式作答,也是可以满足需求的。
这是因为,当我没有指定用什么知识回答时,deepseek的知识范围是所有的训练内容,那就势必会让知识太过繁杂,导致无法按照我的预想回答。但是当我指定用非暴力沟通的知识回答时,deepseek也可以在他的训练知识中,提取这一块知识来回答。
由此可以看出,当我们想要聚焦知识,或者有些知识不在大模型的初始训练知识内时,使用RAG,是一种实现目的的途径。将需要的信息整理到知识库内,通过知识库内的检索,让AI生成我们需要的答案。
常见问题1: 为什么我的RAG应用无法准确检索到相关内容?
答案: 常见原因包括知识库文档质量不高、分块策略不当(如分块过小或过大)、向量化模型选择不匹配等。建议优化文档结构,确保内容清晰分段,并针对你的业务场景选择合适的向量化模型和检索策略。
常见问题2: 如果大模型本身已经包含了我需要的知识,还有必要使用RAG吗?
答案: 有必要。即使大模型包含相关知识,RAG能确保答案严格基于你提供的权威资料,避免模型“发挥”产生偏差,同时还能控制推理流程,提升答案的一致性和专业性。
三、流程控制案例:通过知识库检索实现定向推理
仅仅让AI“知道”知识还不够,我们更需要它按照我们设定的专业流程来思考和工作,从而保证输出结果的高度一致性和专业性。这就是使用RAG的另一个强大能力——流程控制。
我们以一个非常实际的场景为例:一个自主研发的WMS(仓库管理系统)需要出海,所有界面、菜单、提示的文本都需要翻译成英文。
如果单纯靠人或直接让大模型翻译,会面临很多问题:
- 不统一: 不同的人对同一个词可能有不同的翻译。比如,“库位”有人译成
Location,有人译成Storage Location,甚至可能是Bin。 - 不专业: 某些术语在物流行业有固定叫法。比如,“波次拣货”翻译成
Wa ve Picking是专业术语,而按字面翻译成Batch Order Picking就显得很不专业。 - 风格不一: 对于大小写(是
Order还是order)、动词名词形式(是Confirm还是Confirmation)没有统一规范。
直接提问大模型:“请将‘入库订单’翻译成英文”,你可能会得到各种答案,因为它没有上下文。
而通过RAG,我们可以构建一个专业的翻译工作流,让AI像一支训练有素的本地化团队一样工作。
整体思路如下:
1. 构建知识库
我们创建三个核心知识库:
- 翻译规范库:存放强制性的翻译规则。例如:“‘货品’统一译为
Item,首字母大写”、“所有状态动词统一使用现在分词形式,如‘盘点中’译为Counting...”、“‘库位’统一使用Bin而非Location”。 - 历史翻译库:存放已经审核通过的现有翻译键值对,作为最重要的参考。例如:
{“入库订单”: “Inbound Order”, “出库订单”: “Outbound Order”}。 - 行业术语库:存放物流行业的通用英文术语标准,用于翻译新词或验证专业性。
2. 设计控制流程
当接到一个翻译请求(例如:翻译“待上架货品”)时,AI不会直接回答,而是严格按照以下流程执行:
第一步:检索
- 首先,去翻译规范库检索是否有关于“货品”、“待”等字的强制规则。
- 然后,去历史翻译库精确检索“待上架货品”是否有现成翻译。如果没有,则检索类似结构,如“待收货”、“待入库”的翻译是什么。
- 最后,去行业术语库检索“上架”的标准专业术语是什么(通常是
Putaway或Storing)。
第二步:推理与生成
- AI会综合所有检索到的信息进行推理:“历史库中‘货品’规定译为 Item,‘待’字前缀历史中常用 Pending(如‘待收货’是 Pending Receipt)。行业库中‘上架’是 Putaway。没有强制规则冲突。”
- 最终,它生成的翻译是:Pending Putaway Item。这个结果既符合内部规范,又保持了历史统一性,还具备了行业专业性。
另一个例子:翻译一个全新的词“库存水平预警”。
- 在历史库和规范库中都找不到直接答案。
- AI流程会先在行业库中检索“库存水平”和“预警”的标准说法,可能会找到
Inventory Level和Alert。 - 然后它会参考历史翻译中“预警”是放在前面还是后面(例如“温度预警”是译作
Temperature Alert)。 - 最终组合出符合公司习惯和专业性的 Inventory Level Alert。
通过这样的流程控制,我们不再是简单地向AI提问,而是命令它执行一个复杂的、多步骤的决策程序。这确保了即使负责翻译的人员不断变动,AI也能作为一个永不离职、严格遵循SOP(标准作业程序)的专家,输出稳定、可靠、高质量的翻译结果。
小提示: 为了实现高质量的流程控制,知识库的构建质量至关重要。务必确保每个知识库的内容清晰、无歧义、结构统一,这样AI才能准确理解并执行你的“指令”。
常见问题3: 流程控制中的多个知识库之间存在冲突怎么办?
答案: 需要在提示词或系统设计中明确知识库的优先级。通常建议翻译规范库 > 历史翻译库 > 行业术语库,以强制规则优先,确保业务口径的一致性。
四、总结
总而言之,RAG 的出现并非是为了替代像 DeepSeek 这样的大模型,而是对其能力的一种关键增强。
选择直接提问大模型还是使用RAG,本质上是选择“开放探索”与“精准执行”两种不同的模式。如果任务目标不是获取灵感,而是要求基于特定知识做出准确、可靠回答时,RAG就从一个可选项变为了必选项。它可以让AI从“通用对话”走向“专业赋能”的关键一步。
