RAG 系统的经典工作流程

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

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

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

1. 文档加载与预处理

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

2. 文本分割

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

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

3. 向量化与存储

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

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

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

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

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

2. 相似性检索

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

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

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

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

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

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

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

4. 生成并返回答案

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

相关推荐
NAGNIP7 小时前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
冬奇Lab8 小时前
一天一个开源项目(第36篇):EverMemOS - 跨 LLM 与平台的长时记忆 OS,让 Agent 会记忆更会推理
人工智能·开源·资讯
冬奇Lab8 小时前
OpenClaw 源码深度解析(一):Gateway——为什么需要一个"中枢"
人工智能·开源·源码阅读
AngelPP12 小时前
OpenClaw 架构深度解析:如何把 AI 助手搬到你的个人设备上
人工智能
宅小年12 小时前
Claude Code 换成了Kimi K2.5后,我再也回不去了
人工智能·ai编程·claude
AI探索者12 小时前
LangGraph StateGraph 实战:状态机聊天机器人构建指南
python
AI探索者12 小时前
LangGraph 入门:构建带记忆功能的天气查询 Agent
python
九狼12 小时前
Flutter URL Scheme 跨平台跳转
人工智能·flutter·github
ZFSS12 小时前
Kimi Chat Completion API 申请及使用
前端·人工智能
天翼云开发者社区14 小时前
春节复工福利就位!天翼云息壤2500万Tokens免费送,全品类大模型一键畅玩!
人工智能·算力服务·息壤