RAG到底是什么?——为什么企业不用ChatGPT直接回答客户?
《AI不是魔法》
写给软件工程师的AI工程课
第四堂:RAG到底是什么?
这一篇适合谁:
如果你听说过RAG、想知道它为什么突然这么火、以及它到底解决了什么问题——那么这一篇值得看完。
上一堂课,我们知道:
AI不是因为理解语言才预测Token,而是在不断预测Token的过程中,看起来像理解了语言。
这一堂课,我们继续回答:
为什么最聪明的AI,对自己公司的事情一无所知?
去年有家公司上线了一个客服机器人。第一天就收到了投诉。
客户问:
“我的退款什么时候到账?”
AI回答:
“一般七个工作日。”
但实际上,这家公司的退款政策刚刚更新,已经改成了24小时到账。
结果:客户投诉,客服重新解释,企业赔礼道歉。
AI说错了吗?没有。它只是回答了“它知道的”。
但它不知道的是:公司政策已经变了。
后来,一个朋友问我:
“我们公司的产品说明书有两千多页。为什么不能直接扔给ChatGPT?”
他说:
“ChatGPT不是很聪明吗?为什么还要搞什么RAG?”
我问他一句:
“ChatGPT知道你们公司的数据库吗?”
他说:
“不知道。”
我又问:
“它知道昨天刚更新的接口文档吗?”
他说:
“不知道。”
我说:
问题从来不是AI不会回答。问题是,它回答之前,从来没有看过正确的资料。
这就是企业为什么需要RAG。
一、AI的天然缺陷
第三篇我们说过:LLM的知识截止于训练数据。
它知道莎士比亚,知道量子力学,知道Python语法。
但它不知道:
-
你公司昨天的销售额
-
客户刚刚提交的工单状态
-
今天早上发布的内部文档
-
数据库里最新的用户信息
为什么?因为这些内容不在它的训练数据里。
AI训练结束的那一刻,它的知识就被冻结了。
昨天发生的事情,它不知道。公司的内部文档,它不知道。数据库里的实时数据,它不知道。
所以,企业面临一个尴尬的局面:最聪明的AI,对自己公司的事情一无所知。
二、RAG的核心思想:开卷考试
传统的LLM回答问题,就像闭卷考试。
学生(AI)只能凭记忆作答。记对了就答对,记错了就答错,没学过就只能瞎编。
RAG的做法,是把它变成开卷考试。
学生(AI)可以翻阅参考资料(知识库),找到相关的内容,再据此作答。
整个过程可以用一张图来表示:
以前(闭卷考试):
用户提问 → AI凭记忆回答
现在(开卷考试):
用户提问
↓
搜索公司知识库 → 找到相关内容
↓
AI基于检索结果组织答案
↓
回答
RAG没有改变LLM。它只是改变了LLM回答问题之前看到的内容。
对于LLM来说,知识库里的内容和Prompt里的内容,本质上都会变成它当前的Context。
这就是第四篇的核心观点。
三、为什么RAG有效?
要理解RAG为什么有效,我们需要回到第二篇的核心认知:上下文决定AI的回答质量。
Prompt是在问题里构建上下文。你给AI一段详细的背景信息,它就能给出更精准的回答。
RAG是在回答前补充上下文。AI不知道公司政策?没关系,先把员工手册放进它的上下文里。
Prompt告诉AI应该怎么回答。RAG告诉AI应该依据什么回答。
两者最终做的,都是同一件事:丰富LLM当前的Context。
没有RAG时,AI只能凭“记忆”回答:
用户:我们公司的支付接口怎么调?
AI的上下文:只有用户的问题
AI的回答:(凭训练数据中的通用支付接口知识猜测)
有RAG时,AI先查资料再回答:
用户:我们公司的支付接口怎么调?
AI的上下文:用户的问题 + 公司最新的OpenAPI文档
AI的回答:(基于真实的接口定义)
RAG不是让AI变聪明,而是让AI学会查资料。
它把“凭记忆回答”变成了“有依据回答”。
四、一个真实的工程案例
一个开发团队用AI辅助接口对接。开发同学问:
请帮我生成调用支付接口的示例代码。
AI回答了一段看起来非常标准的代码,参数齐全,注释完整。
开发同学照着代码接入,结果接口一直报 404。
排查发现:AI回答的是通用的支付接口示例,而他们公司的支付接口是自定义的,参数名和签名方式完全不同。
后来,他们把公司最新的OpenAPI文档接入RAG,再问同样的问题。AI这次基于真实的接口文档生成了代码,一次就跑通了。
AI写代码的能力没有变。变的是,它终于知道应该依据哪一份接口文档写代码。
一个一分钟实验
打开AI对话工具,先问它一个问题:
我们公司员工有多少人?
AI大概率会回答:我不知道,或者给出一个通用答案。
然后,你把一段员工手册复制进去,再问同样的问题:
根据上面的员工手册,我们公司员工有多少人?
AI这次能够根据你提供的资料回答。
这个实验让你亲身体验:AI不是变聪明了,而是你给了它参考资料。
工程师容易踩的坑
🚫 错误做法:
把RAG当成“把文档丢给AI就行了”,什么资料都往里塞。
为什么错:
没有正确的资料,RAG也无能为力。如果知识库里都是过时、错误、矛盾的文档,AI给出的答案只会更混乱。
✅ 正确做法:
保证知识库的质量。先确保资料是正确的,再让AI基于它回答。
今天记住这一句话
RAG不是让AI变聪明,而是让AI学会查资料。
如果今天只带走一个观点,那就是:企业真正交付的,从来不是一个LLM。而是一个知道什么时候查资料、什么时候回答的LLM。
下一篇预告:
RAG让AI学会了查资料。
但还有一个问题:AI知道了知识,但它能采取行动吗?
比如,它知道客户的订单延迟了,但它能自动发起退款吗?
下一篇,我们聊Function Calling。
更多推荐



所有评论(0)