RAG 系统的经典工作流程

RAG 的核心思路其实很简单:先检索,再生成 。整个流程可以分为两大阶段 ------离线构建知识库在线问答推理,每个阶段又包含几个关键步骤。

一、 离线阶段:搭建专属知识库

这一步是 RAG 的基础,简单说就是把海量的非结构化数据变成机器能看懂、能快速检索的格式。

1. 文档加载与预处理

首先要把分散的数据源 "喂" 给系统。不管是本地的 Word 文档、线上的网页文,还是数据库里的结构化数据,都需要通过对应的加载器导入。导入后还得做预处理:去除无关的格式符号(比如 PDF 里的页眉页脚)、纠正错别字、统一文本编码,有的复杂文档还需要做语种检测和翻译。这一步就像整理书架,先把杂乱的书籍分类清理,为后续整理做准备。

2. 文本分割

长篇大论的文档没法直接用来检索,必须切成一个个短小精悍的 "文本块"。

为什么要切?因为大模型的上下文窗口有限,而且小文本块的语义更聚焦,检索准确率会更高。分割的技巧很关键,不能硬邦邦按字符数切,最好是按语义分割------ 比如按段落、按章节标题,或者用句子嵌入模型判断语义边界,保证每个 Chunk 的内容完整且独立。

3. 向量化与存储

这是离线阶段最核心的一步。计算机看不懂文字,但能看懂向量。我们需要用嵌入模型 ,把每个文本块转换成固定长度的向量。这个向量就像文本的 "语义指纹",相似内容的向量距离会更近。生成的向量会被存入向量数据库 。向量数据库的优势在于能快速做近似最近邻搜索,毫秒级就能从百万级向量里找到和查询最匹配的文本块。

二、 在线阶段:检索 + 生成

当用户提出一个问题时,RAG 系统就会启动 "检索 - 生成" 的联动模式。

1. 用户查询处理与向量化

系统先接收用户的自然语言问题,比如 "LlamaIndex 的核心功能有哪些?"。和离线阶段的文本块一样,这个问题也需要用同一个嵌入模型转换成向量。这里要注意,必须用和知识库向量相同的模型,否则生成的向量 "语义指纹" 不兼容,检索就会失效。

2. 相似性检索

系统把用户问题的向量传入向量数据库,执行相似性搜索。数据库会根据向量距离,返回和问题最相关的 Top-N 个文本块 ------ 这些就是回答问题的 "证据"。比如用户问 LlamaIndex 的功能,数据库就会检索出包含 LlamaIndex 核心模块、使用场景的文本块。

3. 构建提示词并调用大模型

这一步是连接检索和生成的桥梁。系统会把用户问题检索到的文本块,按照一定的格式拼接成一个提示词。一个典型的提示词模板大概是这样的:

请根据以下参考信息回答问题,只使用参考信息中的内容,不要编造。

参考信息:[检索到的文本块 1][检索到的文本块 2]

用户问题:[用户的原始问题]

然后,这个精心构造的提示词会被发送给大语言模型(比如 GPT-5,DeepSeek)。

4. 生成并返回答案

大模型接收到提示词后,会基于参考文本块的内容,结合自身的语言理解能力,生成准确、有据可依的回答。最后,系统把这个回答返回给用户,整个流程就完成了。

相关推荐
小白狮ww7 小时前
要给 OCR 装个脑子吗?DeepSeek-OCR 2 让文档不再只是扫描
人工智能·深度学习·机器学习·ocr·cpu·gpu·deepseek
小镇敲码人7 小时前
深入剖析华为CANN框架下的Ops-CV仓库:从入门到实战指南
c++·python·华为·cann
lili-felicity7 小时前
CANN优化LLaMA大语言模型推理:KV-Cache与FlashAttention深度实践
人工智能·语言模型·llama
程序猿追7 小时前
深度解码昇腾 AI 算力引擎:CANN Runtime 核心架构与技术演进
人工智能·架构
金融RPA机器人丨实在智能7 小时前
Android Studio开发App项目进入AI深水区:实在智能Agent引领无代码交互革命
android·人工智能·ai·android studio
lili-felicity7 小时前
CANN异步推理实战:从Stream管理到流水线优化
大数据·人工智能
做人不要太理性7 小时前
CANN Runtime 运行时组件深度解析:任务下沉执行、异构内存规划与全栈维测诊断机制
人工智能·神经网络·魔珐星云
不爱学英文的码字机器7 小时前
破壁者:CANN ops-nn 仓库与昇腾 AI 算子优化的工程哲学
人工智能
晚霞的不甘7 小时前
CANN 编译器深度解析:TBE 自定义算子开发实战
人工智能·架构·开源·音视频
愚公搬代码7 小时前
【愚公系列】《AI短视频创作一本通》016-AI短视频的生成(AI短视频运镜方法)
人工智能·音视频