Skip to content
阅读进度

RAG 的完整流程是什么? ​

返回 RAG 与记忆 目录

标准回答 ​

RAG 的完整过程分成准备资料和回答问题两条链。准备资料时:读取文档,提取与清洗文本,按结构和语义分块,记录来源、版本和权限等信息,再建立检索索引。使用向量检索时,需要给片段计算 Embedding 并保存向量;使用关键词检索时,则建立相应文本索引。

用户提问后,先确认身份、可访问范围与问题条件;向量检索会把问题转成相容的向量表示,关键词检索则利用词项匹配,也可以合并两路候选。权限与版本约束要在检索链路中正确执行,不能先把无权内容交给模型,再让模型自行决定是否透露。

得到候选片段后,做必要的去重、相关性筛选和 Rerank 重排,再在上下文长度预算内选出最有用的证据。将问题、任务指令、这些片段及来源一起交给模型,让它基于证据生成回答,并按需要提供可核对的引用。资料不足、版本不符或证据冲突时,应明确说明限制。

例如问“型号 A 的 E17 怎么处理”,先找到型号 A、适用固件版本的手册,再用其中的原因和步骤回答。查到型号 B 的同名错误码,不能仅因向量相似就套用。最终还要检查正确证据是否召回、是否进入上下文,以及回答是否忠实使用证据;RAG 不是训练模型,也不保证自动消除幻觉。

关键机制 ​

  • 入库:清洗文档 → 按语义与结构分块 → 计算 Embedding → 保存向量及来源、权限、时间等元数据。
  • 查询:理解问题 → 关键词 / 向量检索 → 去重与过滤 → 必要时 Rerank 重排 → 选择证据放进上下文。
  • 生成:要求回答对应证据并附来源;查不到或证据冲突时明确表达限制,而不是补造事实。

通俗例子 ​

问“设备错误码 E17 怎么处理”,先检索到对应型号和固件版本的手册片段,再生成操作建议。只找到其他型号的 E17,即使文字相似也不应直接套用。

追问与回答 ​

文档已经向量化,为什么回答时还要把原文给模型? ​

向量主要用于检索候选,它不是直接交给普通文本模型阅读的一份完整文档。检索找到片段后,通常取回对应原文与来源,放进本次上下文,让模型据此回答。模型能看到哪些具体证据,取决于最终送入的片段,而不是数据库里一共有多少向量。

RAG 一定需要 Rerank 和向量数据库吗? ​

不一定。RAG 的核心是先检索外部信息,再结合信息生成,可以使用关键词、结构化查询、向量或混合方式。Rerank 是提高候选排序质量的一种可选环节;资料少、规则明确时,简单检索也可能足够。是否增加组件,应根据真实召回质量、延迟和维护成本决定。

易混淆点 ​

RAG 不保证没有幻觉;召回不到、权限过滤错误、资料过时或模型忽略证据都可能出错。

参考资料 ​

内容来源 ​

用完整回答理解机制,用真实证据解释项目。