RAG是什么?为什么检索增强生成是大模型落地的首选方案
RAG是什么为什么它是大模型落地的首选方案工具篇讲完了从这一篇开始我们进入RAG篇。RAG是Retrieval-Augmented Generation的缩写中文叫检索增强生成。名字听起来有点学术做的事情其实很朴素。就是让大模型在回答问题之前先去知识库搜相关资料再根据搜到的内容生成答案。为什么要费这个劲。因为大模型有两个老大难问题知识截止和幻觉。RAG就是冲着解决这两个问题来的。这一篇我们从零讲起。RAG到底是什么它解决了什么问题基本原理是什么为什么说它是大模型落地最成熟的方案。大模型的两个痛点先说背景。大模型很厉害但它不是万能的。用在实际业务里有两个问题绕不开。第一个问题知识有截止日期。大模型的知识来自训练数据训练数据是有截止日期的。比如GPT-4的训练数据截止到2024年中那之后发生的事它就不知道了。你问它2025年的新产品、新政策、新数据它要么说不知道要么瞎编。企业内部的知识它更不知道。公司的产品文档、内部规章、历史案例这些东西不可能出现在公开训练数据里。第二个问题幻觉。大模型有时候会一本正经地胡说八道。它说的话听起来很有道理事实却是错的。引用不存在的论文编造不存在的API参数给出错误的数字。普通用户很难分辨真假。做聊天应用幻觉是个体验问题。做企业应用幻觉就是个事故问题。客服给用户说错了产品参数法律助手给了错误的建议知识库问答引用了不存在的规定这些都是要出大事的。怎么解决这两个问题。有两条路。一条路是微调。把领域知识喂给模型继续训练让模型学会这些知识。这条路效果有但成本高、周期长、更新慢。知识变了还得重新微调跟不上业务变化的速度。另一条路就是RAG。不教模型新知识而是把知识存在外部的知识库里。回答问题的时候先去库里搜相关内容再基于搜到的内容回答。模型不用改知识随时可以更新。两条路各有适用场景。大部分企业级应用RAG是更务实的选择。RAG的基本原理RAG的流程说起来很简单就三步。第一步用户提问。第二步去知识库检索跟问题相关的内容。第三步把搜到的内容和问题一起发给大模型让它根据搜到的内容生成答案。就这么三步。为什么这样就能解决知识截止和幻觉的问题。知识截止的问题好理解。答案的来源是知识库不是模型的训练数据。知识库是最新的答案就是最新的。你更新知识库就行不用动模型。幻觉的问题怎么解决。因为大模型回答的时候有参考依据了。它不再凭记忆瞎说会先看搜到的原文再根据原文来回答。有据可查准确率就高多了。而且你还能溯源。用户问为什么这么回答你可以把引用的原文片段找出来给他看。答案是从哪来的清清楚楚。这个在企业场景里特别重要。一个最简单的RAG例子光说原理不够直观我们写一个最简单的RAG。不用向量数据库也不用复杂的框架。就用Python写十几行代码感受一下RAG是怎么回事。fromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAI load_dotenv()modelChatOpenAI(modelgpt-3.5-turbo,temperature0)# 模拟知识库knowledge_base[公司A产品的价格是2999元发布于2025年3月。,公司A产品的保修期是一年非人为损坏免费维修。,公司B产品的价格是4999元发布于2025年6月。,公司B产品支持7天无理由退换货15天质量问题包换。,]defsimple_search(query):最简单的关键词搜索results[]foriteminknowledge_base:# 简单的关键词匹配forwordinquery:ifwordinitem:results.append(item)breakreturn\n.join(results)defrag_answer(question):# 第一步检索相关内容contextsimple_search(question)# 第二步带着上下文提问promptf请根据下面的参考资料回答用户的问题。 如果参考资料里没有答案就说我不知道。 不要编造资料里没有的内容。 参考资料{context}用户问题{question}responsemodel.invoke(prompt)returnresponse.content# 测试print(rag_answer(A产品多少钱))print(rag_answer(B产品保修期多长))print(rag_answer(C产品价格是多少))运行一下你会看到。第一个问题A产品的价格它能从知识库找到正确答案。第二个问题B产品的保修期知识库没写B产品的保修它可能会说不知道或者答错。这就是检索不准的问题。第三个问题C产品知识库没有它应该说我不知道。这个例子很简陋搜索是关键词匹配知识库只有四条。但麻雀虽小五脏俱全RAG的基本流程就是这样的。后面所有复杂的RAG系统都是在这个基础上一步步优化出来的。为什么需要向量检索刚才的例子用的是关键词搜索。关键词搜索有个问题。用户问的话和知识库的文字不一定对得上。比如知识库写的是产品享有一年质保服务用户问的是保修期有多久。关键词匹配可能就搜不到因为句子里没有保修这两个字。人能理解质保和保修是一个意思关键词匹配理解不了。怎么解决这个问题。用向量检索也叫语义检索。向量检索的思路是把文字转换成向量然后用向量之间的相似度来判断语义的接近程度。意思相近的句子向量距离就近。意思不相关的向量距离就远。“产品享有一年质保服务和保修期有多久”字面上不一样语义上很接近。转换成向量以后它们的相似度很高就能被检索到。这就是为什么现在的RAG系统基本都用向量数据库。向量检索比关键词检索更懂语义搜得更准。当然向量检索也不是完美的。它也有搜不准的时候有时候会漏掉相关内容有时候会搜到不相关的。所以实际的RAG系统往往是关键词检索和向量检索一起用各取所长。RAG的优势和局限说清楚了原理我们来客观地看看RAG的优缺点。优势第一知识可以随时更新。今天加了新文档明天就能搜到。不用重新训练模型。第二答案有据可查。每个回答都能找到对应的原文片段可溯源可验证。出了问题也能定位是哪里的问题。第三成本低。相比微调RAG的成本低很多。不需要GPU不需要大量训练数据一个向量数据库就够了。第四数据安全。企业的敏感数据不用喂给模型训练存在自己的向量库里就行。局限第一检索质量决定回答质量。搜不到相关内容再强的模型也答不好。搜到的内容不对答案也会错。第二不擅长深度推理。RAG擅长找事实性的答案比如价格、参数、规定。需要深度推理、综合分析的问题光靠检索不够。第三上下文长度有限。能塞进上下文的内容是有限的太多了模型处理不了还会稀释有效信息。第四不能学习新知识。RAG只是检索和引用它不会把知识内化到模型里。每次回答都要重新搜。了解了这些你就知道RAG适合做什么、不适合做什么。知识库问答、客服咨询、文档检索这类场景RAG是首选。需要深度思考和创造的场景RAG就不够用了。为什么说RAG是大模型落地的首选现在行业里有个共识大模型落地RAG是首选方案。为什么。第一个原因效果可预期。RAG的效果好不好你大概能估计出来。知识库质量高检索做得好回答质量就不会太差。不像端到端的模型效果很难预估。第二个原因成本可控。不需要大量标注数据不需要昂贵的训练资源。几台服务器一个向量数据库就能搭起来。第三个原因风险可控。答案有来源可以溯源可以审核。出了问题能定位也能修正。企业用着放心。第四个原因见效快。从0到1搭一个能用的RAG系统快的话一两周就能搞定。然后可以持续优化一步步提升效果。这些特点加起来让RAG成了企业引入大模型最稳妥的路径。先从知识库问答切入跑通了再扩展到其他场景。风险小见效快ROI清晰。这也是为什么这个专栏用了整整一个模块来讲RAG。做Agent落地RAG是绕不开的。下一篇我们讲文档处理流水线。知识库的质量直接决定RAG的效果。文档怎么解析、怎么切块、怎么处理不同格式里面学问很多。

相关新闻

TJA1145 CAN FD收发器实战指南:硬件设计、软件驱动与调试避坑

TJA1145 CAN FD收发器实战指南:硬件设计、软件驱动与调试避坑

1. 项目概述:为什么TJA1145值得你投入精力?如果你正在做汽车电子,尤其是车身控制、网关或者新能源车的BMS、VCU,那你大概率绕不开CAN FD总线。而当你开始选型CAN FD收发器时,TJA1145这个名字一定会反复出现在供应商的推…

2026/8/7 4:53:47 阅读更多 →
83个公共Tracker终极配置指南:告别BT下载龟速时代

83个公共Tracker终极配置指南:告别BT下载龟速时代

83个公共Tracker终极配置指南:告别BT下载龟速时代 【免费下载链接】trackerslist Updated list of public BitTorrent trackers 项目地址: https://gitcode.com/GitHub_Trending/tr/trackerslist 你是否曾面对BT下载进度条停滞不前,看着个位数的K…

2026/8/7 4:53:47 阅读更多 →
基于OpenStreetMap与Godot的程序化3D城市生成实战

基于OpenStreetMap与Godot的程序化3D城市生成实战

1. 项目概述:从地图数据到游戏世界的桥梁最近在做一个开放世界小游戏的Demo,需要快速搭建一个看起来像模像样的城市街区环境。手动在Blender里拉方块、铺道路?效率太低,而且缺乏真实感。直接用现成的3D城市资产包?风格…

2026/8/7 4:52:47 阅读更多 →

最新新闻

专为RAG设计的PDF解析器OpenDataLoader PDF:原理、配置与实战集成指南

专为RAG设计的PDF解析器OpenDataLoader PDF:原理、配置与实战集成指南

1. 项目概述:为什么RAG需要一个专门的PDF解析器?如果你正在构建一个基于大语言模型的检索增强生成(RAG)应用,那么处理PDF文档几乎是一个绕不开的坎。无论是内部知识库、法律合同分析,还是学术论文摘要&…

2026/8/7 5:30:11 阅读更多 →
WebSocket替代方案全解析:SSE、长轮询、云服务与GraphQL订阅实战指南

WebSocket替代方案全解析:SSE、长轮询、云服务与GraphQL订阅实战指南

1. 项目概述:当WebSocket不再是唯一选择在构建需要实时数据推送的Web应用时,WebSocket几乎是所有开发者的第一反应。它确实是一个伟大的协议,解决了HTTP轮询带来的延迟和资源浪费问题。但做了这么多年项目,我发现一个有趣的现象&a…

2026/8/7 5:30:11 阅读更多 →
从音频工程到软件架构:复杂系统设计中的动态平衡与失真艺术

从音频工程到软件架构:复杂系统设计中的动态平衡与失真艺术

如果你是一位音乐制作人、独立开发者,或者任何需要在数字音频工作站(DAW)中处理复杂、多层次、充满情感张力的音乐项目的人,那么你很可能经历过这样的困境:你的工程文件里塞满了上百条音轨,插件负载让电脑不…

2026/8/7 5:30:11 阅读更多 →
Sigma威胁检测规则:从原理到实战的标准化安全检测

Sigma威胁检测规则:从原理到实战的标准化安全检测

1. 项目概述:从“黑盒”到“白盒”的威胁检测进化在安全运营中心(SOC)待过几年的朋友,大概都经历过这样的场景:告警控制台突然弹出一堆高优先级警报,你点进去一看,触发告警的是一个陌生的规则名…

2026/8/7 5:30:11 阅读更多 →
深入解析JVM直接内存:原理、性能优势与实战调优

深入解析JVM直接内存:原理、性能优势与实战调优

1. 直接内存:JVM内存版图外的“编外部队”如果你写过Java程序,对堆内存、栈内存这些概念肯定不陌生,它们是JVM官方“编制”内的核心成员,受JVM的严格管理和垃圾回收(GC)的庇护。但今天要聊的“直接内存”&a…

2026/8/7 5:30:10 阅读更多 →
MATLAB数组生成全攻略:从基础创建到高效运算实践

MATLAB数组生成全攻略:从基础创建到高效运算实践

1. 项目概述:为什么数组是MATLAB的基石如果你刚开始接触MATLAB,或者从其他编程语言(比如Python、C)转过来,可能会觉得它有点“怪”。别的语言一上来讲变量、讲循环,MATLAB却把“数组”这个概念放在了最核心…

2026/8/7 5:29:10 阅读更多 →

日新闻

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南

为什么scrcpy成为Android投屏的终极解决方案:完整实战指南 【免费下载链接】scrcpy Display and control your Android device 项目地址: https://gitcode.com/GitHub_Trending/sc/scrcpy 想要将Android手机屏幕完美投射到电脑上,享受大屏操作的自…

2026/8/7 0:00:19 阅读更多 →
如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南

如何在5分钟内掌握Tom Select:打造现代化表单选择器的终极指南 【免费下载链接】tom-select Tom Select is a lightweight (~16kb gzipped) hybrid of a textbox and select box. Forked from selectize.js to provide a framework agnostic autocomplete widget wi…

2026/8/7 0:00:19 阅读更多 →
5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件

5分钟快速上手:NSZ压缩工具终极指南,轻松管理Switch游戏文件 【免费下载链接】nsz NSZ - Homebrew compatible NSP/XCI compressor/decompressor 项目地址: https://gitcode.com/gh_mirrors/ns/nsz 你是否在为Nintendo Switch游戏文件占用大量存储…

2026/8/7 0:00:19 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/6 22:02:27 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/5 23:28:39 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/6 22:02:28 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/5 23:46:51 阅读更多 →