游乐游手机版
首页/AI教程/文章详情

大模型为何还要引入RAG:15天学会AI应用开发第7讲

时间:2026-05-31 09:48
在前面的几篇文章中,我们探讨了如何截断历史会话中的对话记录——包括按条数截断、按Token长度截断、以及通过摘要进行截断。在摘要方案中,又细分出了三种路径:利用第三方摘要库、调用在线大模型、以及使用离线大模型。 这些操作统称为「上下文管理」,核心目标是让AI记住用户之前说了什么。接下来,我们进入一个

在前面的几篇文章中,我们探讨了如何截断历史会话中的对话记录——包括按条数截断、按Token长度截断、以及通过摘要进行截断。在摘要方案中,又细分出了三种路径:利用第三方摘要库、调用在线大模型、以及使用离线大模型。

15天学会AI应用开发(七)有了大模型为什么还要引入RAG

这些操作统称为「上下文管理」,核心目标是让AI记住用户之前说了什么。接下来,我们进入一个新的话题:RAG(检索增强生成)——这也是AI应用开发中非常关键的一环。

什么是RAG

RAG的全称是Retrieval-Augmented Generation,翻译过来就是「检索增强生成」。你可以把它理解成一种组合策略:一边从外部知识库中检索信息,一边结合大模型生成回答。它的优势在于答案有据可查、可解释性强,而且易于定制。客服系统、智能助手这类问答任务经常会用到它。

大模型虽然聪明,但有两个明显的短板。第一个:知识存在时效性。它的训练数据截止到某个时间点,之后的新事件、用户的内部文档、公司专有资料,它一概不知。第二个:容易产生「幻觉」,也就是一本正经地编造虚假信息。因为大模型本质上是靠概率预测下一个字,在没有约束的情况下,它可能编造出人名、数据、政策,看起来像模像样,实际上全错。

RAG正好能解决这两个问题。它首先把你的文档资料读取、切碎、建立索引并保存,构建成专属的知识库。当你提问时,它从知识库里检索出最相关的几段原文,连同问题一起交给大模型,让大模型依据提供的资料来回答,而不是凭猜测胡编。

打个比方:大模型就像一个聪明但记性差、爱吹牛的人,而RAG就是那个在旁边翻课本、翻笔记的助手。

如何使用RAG

RAG的使用流程分为五个步骤,步步衔接:

1. 加载文档资料
读取TXT、PDF、Word、HTML等各种格式的资料文件。

2. 对文本分块
读取出的长文本需要切成小段,比如每段300字左右。太长会浪费Token,太短又缺乏上下文,这个平衡很关键。

3. 向量化文本
将每段文字转换为一串数字向量,计算机才能计算语义相似度。

4. 存入向量数据库
把数字化后的向量和原始文本一起存储起来,常用的库有Chroma、FAISS、Milvus等。

5. 检索并反馈给大模型
用户提问时,同样将问题转为向量,到数据库中找出最相似的几段原文,然后连同问题一起发给大模型。大模型基于给出的资料回答,就没有机会胡编了。

一个简单的仿RAG程序

完整的RAG会用到好几个Python库,但核心思想其实很简单。这里写一个纯Python的模拟程序,不依赖任何第三方库,只用基本的字符串查找来演示RAG的操作流程。看完你就明白,RAG本质上就是:把知识库里的内容匹配一下,再丢给大模型去回答。

# 本地知识库
knowledge_base = [
    "人工智能(AI)是一门使机器模拟人类智能的技术。",
    "RAG代表检索增强生成,它通过检索外部知识来提升大模型回答准确性。",
    "本地RAG不需要调用云端API,所有计算在本机完成,不消耗Token。",
    "FAISS是Facebook开源的向量检索库,适合做本地向量库。"
]

# 简单文本匹配检索(纯Python,无任何依赖)
def search(query):
    results = []
    for text in knowledge_base:
        if any(word in text for word in query.replace("?", "").split()):
            results.append(text)
    return results if results else ["未找到相关知识"]

# RAG 主函数
def rag(query):
    print("===== 本地 RAG 回答 =====")
    print("问题:", query)
    print("答案:")
    for res in search(query):
        print("-", res)
    print("=" * 40)

# 运行
if __name__ == "__main__":
    while True:
        q = input("请输入问题(输入 q 退出):")
        if q.lower() == "q":
            print("退出程序")
            break
        rag(q)

上面这段代码的逻辑很直白:根据知识库是否包含问题中的词来匹配。运行之后,输入“人工智能”,输出会返回第一条知识。

请输入问题(输入 q 退出):人工智能
===== 本地 RAG 回答 =====
问题: 人工智能
答案:
- 人工智能(AI)是一门使机器模拟人类智能的技术。

你看,它只是按字符串匹配,找到哪条知识里有这个词,就返回哪条。这当然是最简化的版本,但RAG的骨架已经出来了——先搜再答。后面我们还会深入真正的向量检索、分块策略和端到端的实现。

关于这个系列的所有文章,都可以在《15天学会AI应用开发全目录》里找到,方便随时回顾。

来源:https://cloud.tencent.com.cn/developer/article/2676370
上一篇AI或导致医生丧失独立思考能力 下一篇免费AI写作软件推荐,5款实用高效工具
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
Claude Code官方教你Loop工程附6大省token技巧
AI教程 · 2026-07-08

Claude Code官方教你Loop工程附6大省token技巧

之前写过一篇《Loop Engineering 的保姆级教程》,从概念到多工具实战,比较全面地讲了循环工程的玩法。这两天 Claude Code 官方团队下场,发了一篇博客叫「Getting started with loops」,系统地整理了他们团队内部对「循环」的定义和分类。 这篇博客的含金量十

阿里云2核4G服务器价格与选型:实例规格、收费标准及活动价
AI教程 · 2026-07-08

阿里云2核4G服务器价格与选型:实例规格、收费标准及活动价

阿里云2核4G这个配置,可以说是个人站长和中小企业用户最常关注的“爆款”了。不过它的价格可不是一个固定的数字,而是跟实例规格、带宽、云盘类型、地域等等因素紧密相关。比如目前轻量应用服务器2核4G给到峰值200M带宽、50G ESSD云盘,抢购价能做到9 9元1个月或者199元1年。通用算力型u1实例

阿里巴巴研发效能实践日:敏捷精益项目管理报名
AI教程 · 2026-07-08

阿里巴巴研发效能实践日:敏捷精益项目管理报名

研发效能提升领域又有重磅消息了。阿里巴巴研发效能实践日——由阿里研发效能部主办的线下沙龙品牌,这次携手全球领先的项目管理协会PMI,共同聚焦“敏捷精益项目管理”这一核心主题。听起来就干货满满?别急,活动精心安排了4大主题演讲,旨在帮助参会者在思维层面实现突破,并且回去就能直接落地实践。更关键的是,参

RFID资产管理系统:企业资产数字化高效管控方案
AI教程 · 2026-07-08

RFID资产管理系统:企业资产数字化高效管控方案

数字化转型走到今天,传统人工管资产那套老办法——效率低、差错多、资产一挪窝就成“失踪人口”——已经越来越扛不住了。从仓库、车间到办公室,但凡资产流转量大、品类多的企业,都急需一套能实时盯、自动盘的方案。结合多行业的落地经验来看,RFID资产管理系统之所以能成为主流选择,核心在于它用射频技术把资产全生

智能体工作流知识沉淀:从一次修复到长期记忆
AI教程 · 2026-07-08

智能体工作流知识沉淀:从一次修复到长期记忆

好的,作为一位资深的技术专家和知识管理实践者,我将为你重新讲述这篇文章的核心内容,让这些观点和案例听起来更像是一次真诚的技术分享,而不是一份AI生成的报告。 在传统软件工程里,我们反复念叨“代码复用”,但到了AI Agent参与的工程时代,真正能产生复利的东西变了——从“代码复用”悄然转向了“知识复