news 2026/7/21 5:47:49

RAG工作原理详解:从0到1搞懂检索增强生成

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RAG工作原理详解:从0到1搞懂检索增强生成

开头

小李是电商客服主管,手下20个客服每天回答上千条咨询。

60%的时间都在回答重复问题:"怎么退货"、"发货多久到"...

老板说:"用大模型啊!"

小李试了试,发现ChatGPT要么胡说八道,要么说不知道。

它不知道公司的私有知识。

那怎么办?这就是今天要讲的——RAG(检索增强生成)。

01 RAG是什么

RAG,全称Retrieval-Augmented Generation,翻译过来就是检索增强生成。

怎么理解?用开卷考试来类比:

传统大模型就像一个记忆力超群的学生,但他只记得训练时学过的知识。你问他公司内部的文档,他没见过,自然答不上来。

RAG就是给这个学生配了一本"开卷考试"的资料书。每次回答问题前,他先去资料书里查相关内容,再基于这些内容回答。

所以RAG的核心就两步:先检索,再生成。

① 用户提问

② 系统从知识库里检索相关内容

③ 把问题和检索到的内容一起发给大模型

④ 大模型基于这些内容生成答案

就这么简单。

02 为什么需要RAG

先说大模型的三个硬伤:

  • 幻觉

大模型会一本正经地胡说八道,因为它本质上是概率生成,不是事实查询。

  • 知识滞后

大模型的知识是训练时"冷冻"的,之后的新政策、新产品它都不知道。

  • 黑盒

你不知道它为什么这么回答,也没法验证答案的真实性。

那有没有其他方案?

方案1:上下文注入

每次提问都把文档传给大模型。

问题是:文档太长会超出上下文窗口,而且每次都传太浪费token。

方案2:微调

把私有知识训练进大模型。

问题是:成本高、时间长,而且知识一旦进入模型就变成黑盒,没法溯源。

所以RAG是更好的选择:

✓ 不需要改造大模型,只需要建一个知识库

✓ 知识可以随时更新

✓ 答案可以溯源到原文档

✓ 成本低,所有公司都用得起

03 RAG的完整流程

RAG的流程分两部分:知识库构建(提问前)和检索生成(提问后)。

继续用开卷考试来类比。

🔶 3.1 知识库构建(提问前)

想象你要参加一场开卷考试,需要做三件事:

第一步:分片(Chunking)

你不能把整本教材搬进考场。你要把重点内容整理成笔记卡片,每张卡片讲一个知识点。

RAG也是一样。文档太长,大模型处理不了。所以要把文档切成一个个知识片段(Chunk)。

切分方式有很多:按字数切、按段落切、按章节切...关键是保证每个片段逻辑完整,不能断章取义。

第二步:Embedding向量化

你怎么快速找到需要的笔记?靠标签或关键词。RAG怎么知道哪个片段讲什么?靠向量。

什么是向量?

向量就是一个数字数组,比如 [1.0, 2.3, 5.76, -3.6]。每个向量都有维度,维度就是数组里数字的个数。

你可以把向量理解成"文本的坐标"。意思相近的文本,它们的向量在空间上的距离也近。

比如"苹果怎么吃"和"苹果的营养价值",这两个问题意思相近,它们对应的向量在空间上就会靠得很近。

什么是Embedding?

Embedding就是把文本转换成向量的过程。这个过程由Embedding模型完成。就像翻译官把中文翻译成英文,Embedding模型把文本"翻译"成向量。

什么是向量数据库?

向量数据库就是专门存储和查询向量的数据库。它存两样东西:

• 原始文本(比如"苹果怎么吃")

• 对应的向量(比如 [0.2, 0.8, 0.5, ...])

为什么要存原始文本?因为向量只是中间结果,最终还是要用原始文本来回答问题。

第三步:入库

把所有知识片段都Embedding成向量,存进向量数据库。你的"开卷考试小抄"就准备好了。

🔶 34.2 检索与生成(提问后)

现在你坐在考场上,看到考题了。

第一步:Query向量化

你先把考题"翻译"成向量,才能去数据库里找相似的内容。

用户提问后,系统用同一个Embedding模型把问题转换成向量。

注意:必须用同一个模型。如果知识库用模型A向量化,查询用模型B,就像一个人用GPS坐标,另一个人用北斗坐标,没法比较。

第二步:召回(Retrieval)

召回就是搜索与用户问题相关片段的过程。

你拿着问题的向量,去向量数据库里找最相似的Top-K个片段。

比如K=10,就找出最相似的10个片段。

怎么判断相似?靠向量相似度计算。

三种相似度计算方法:

① 余弦相似度

计算两个向量之间夹角的cos值。夹角越小,相似度越高。

公式:cos(θ) = (A·B) / (|A| × |B|)

余弦相似度只看方向,不看长度。适合文本相似度计算。

② 欧式距离

计算两个向量之间的直线距离。距离越小,相似度越高。

公式:d = √(Σ(Ai - Bi)²)

欧式距离既看方向也看长度。

③ 点积

计算两个向量的点积。点积越大,相似度越高。

公式:A·B = Σ(Ai × Bi)

点积既考虑方向也考虑长度。如果两个向量方向一致,它们越长,点积越大。

召回追求的是"快和全"——宁可错杀一千,不可放过一个。返回的结果可能不都精准回答用户问题,但相关内容都在里面。

第三步:重排(Reranking)

召回了10个片段,但它们的排序是基于向量距离的,不一定最优。

重排模型(Reranker)会用更精细的方式重新打分排序,选出最相关的Top-3。

召回是从所有片段里挑10个,重排是从这10个里再挑3个最相关的。

为什么不直接在召回阶段挑3个?因为召回要快,重排要准。召回用轻量级方法快速筛选,重排用更复杂的模型精细排序。

第四步:生成

把考题和重排后的Top-3片段,一起发给大模型。大模型基于这些内容生成答案。

提示词里要明确告诉大模型:只允许基于给定的信息回答,不要自由发挥。这样大模型就相当于有了"开卷考试"的资料,答案的准确性和可靠性就有了保障。

04 什么场景用RAG

RAG适合两类场景:对内和对外。

🔸 对内场景

① 企业知识库/智能问答

• 新员工入职助手:回答公司政策、HR制度、IT流程

• 产品知识问答:销售查产品参数、功能对比

• IT支持助手:员工查技术文档、故障排查指南

② 专业领域辅助

• 法律文档检索:律师查案例、法条

• 医疗信息查询:医生查药品、诊疗指南

• 金融研报分析:分析师查行业数据、公司财报

🔸 对外场景

① 智能客服

• 7x24小时在线答疑:基于产品手册回答客户问题

• 售后支持:基于用户手册提供故障排查向导

② 电商导购

• 个性化商品推荐:基于用户需求推荐商品

• 产品对比:多款产品参数对比分析

核心判断标准:

如果你的业务有私有知识需要让AI理解,或者知识更新频繁大模型跟不上,就用RAG。

总结

回顾一下今天的内容:

① RAG是什么?

先检索,再生成。给大模型配一本"开卷考试"的资料书。

② 为什么需要RAG?

大模型有幻觉、知识滞后、黑盒三个硬伤。RAG低成本、可溯源、易更新。

③ RAG怎么实现?

• 知识库构建:分片 → Embedding向量化 → 存入向量数据库

• 检索生成:Query向量化 → 召回 → 重排 → 生成

④ 什么场景用?

有私有知识、需要准确答案、知识更新频繁的场景。

你能带走什么?

下次老板再问你"怎么让大模型读懂我们的文档",你知道:

• 不能直接问,要建一个RAG知识库

• 核心流程是分片、向量化、检索、生成

• 关键是保证检索质量,让大模型拿到正确的"开卷资料"


我是立红,一个致力于将复杂AI技术转化为产品价值的产品经理。

如果你对Agent、AI工作流或更多AI落地场景感兴趣,欢迎关注我,下一篇文章再见。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/21 5:47:27

FastAPI异步API初学

1.Fastapi的优势1.异步任务 处理快 相比于同步任务 异步任务可以同时处理多个任务 而同步只能将一个任务执行完毕后再去 相比之下异步任务的速度和效率更快 2.核心用到async和await 一个都不能少async 是定义一个协程函数await是再协程函数中的挂起2.Fastapi的用法1.getuser_ro…

作者头像 李华
网站建设 2026/7/21 5:45:49

高考数学立体几何二面角6大解法全解析

1. 立体几何中二面角求解的核心价值在高考数学的立体几何板块中,二面角问题向来是区分考生水平的关键题型。去年全国卷压轴题就出现了需要构造辅助线求解二面角的经典案例,统计显示这类题目的平均得分率不足40%。不同于平面几何的直观性,空间…

作者头像 李华
网站建设 2026/7/21 5:44:53

校园AIGC技术应用中的伦理挑战与真实性保障方案

最近在技术圈里,一个看似与编程无关的话题意外引发了热议——"那个武器应用6分的JCC校草"。乍看之下,这像是个校园八卦,但深入分析后你会发现,这背后其实隐藏着一个值得所有开发者关注的技术现象:当AI生成内…

作者头像 李华
网站建设 2026/7/21 5:43:22

Python实战:逆向AES加密滑块验证码,ddddocr识别与自动化破解

1. 项目概述:当滑块验证码遇上AES加密最近在尝试自动化处理某个特定网站(我们暂且称之为“瑞某网站”)的数据时,遇到了一个相当典型的“拦路虎”:滑块验证码。这本身不算新鲜事,但麻烦在于,这个…

作者头像 李华
网站建设 2026/7/21 5:41:52

AI对话记录导出与管理全攻略

1. 为什么我们需要导出AI对话记录?在日常工作和学习中,我们与AI助手的互动越来越频繁。这些对话记录往往包含重要的工作思路、创意灵感或技术解决方案。想象一下,你花了两个小时与AI讨论一个复杂的技术问题,最后得到了完美的代码方…

作者头像 李华
网站建设 2026/7/21 5:41:25

三菱PLC MC协议1E3E帧通信开发与C#实现

1. 项目概述:三菱PLC MC协议通信开发全流程 在工业自动化领域,三菱PLC与上位机的通信一直是工程师们的核心技能需求。MC协议作为三菱PLC原生支持的通信规范,相比Modbus等通用协议具有更高的性能和更丰富的功能支持。这次我将分享一个完整的1E…

作者头像 李华