RAG工作原理全链路解析,从知识库构建到在线问答

本文深入解析 RAG(检索增强生成)技术的工作流程,涵盖离线阶段的知识库构建与在线阶段的用户提问处理。通过文档解析、切分 Chunk、添加 Metadata、生成 Embedding 等步骤,RAG ...

人工智能

在人工智能领域,大模型虽然强大,但其知识范围通常局限于训练数据,无法实时获取企业内部文档或最新业务规则。例如,当用户询问“公司退款需要几天到账?”时,普通大模型可能给出错误或不完整的答案。为解决这一问题,RAG(Retrieval-Augmented Generation,检索增强生成)技术应运而生,它通过结合外部知识库,让模型在回答前先检索相关资料,从而提供更准确的答案。

RAG 的核心流程:从知识库构建到在线问答

RAG 的工作流程可分为两个主要阶段:离线阶段和在线阶段。离线阶段负责构建知识库,而在线阶段则处理用户的实际提问并生成答案。

一、离线阶段:知识库构建

  • 解析原始资料
  • 企业数据来源多样,包括 PDF、Word、Excel 文件,产品说明、操作手册,内部 Wiki,数据库记录,客服 FAQ,网页和接口等。系统首先需要提取正文、标题、表格和层级关系,并清除页眉、页脚、导航栏和重复内容等噪声。如果输入内容本身存在错误,后续的模型再强也无法弥补。

  • 将长文档切成 Chunk
  • 长文档不会整体存成一个检索单元,而是拆分成多个文本片段,即 Chunk。例如,一份关于退款规则的文档可能被切分为:“退款申请条件”、“退款审核流程”、“退款到账时间”、“特殊情况处理”等。文档切分策略直接影响 RAG 的最终效果,切得过小可能导致语义不完整,切得过大则可能包含过多无关内容。

  • 添加 Metadata
  • 每个 Chunk 通常会附带元数据,如文档 ID、标题、部门、租户 ID、安全等级和更新时间等。这些信息可用于用户权限过滤、租户隔离、按部门检索、排除过期文档以及展示答案引用来源。在生产环境中,权限过滤的重要性往往不低于检索准确率。

  • 使用 Embedding 模型生成向量
  • Embedding 模型将文本转换为一组数字向量,表达文本的语义特征。例如,“退款一般在 3~5 个工作日到账”会被转换为一个向量。语义相近的内容在向量空间中的距离通常较近,因此即使文字不同,它们也可能被检索到一起。

    文章配图
  • 写入向量数据库
  • 最终保存的内容包括向量、原始文本或文本 ID、文档来源、权限信息及其他 Metadata。至此,离线知识库准备完成。

    二、在线阶段:用户提问处理

    假设用户提出问题:“退款需要多久才能到账?”在线阶段的工作流程如下:

  • 客户端提交问题
  • 客户端仅负责提交问题和用户登录凭证,不应下载整个知识库、自行过滤内容或保存密钥。所有敏感操作应在服务端完成。

  • 服务端处理问题
  • 后端收到问题后,可能进行错别字修正、指代消解、多轮对话补全、查询改写、关键词提取和租户及用户权限解析等操作。例如,用户追问“那节假日呢?”系统可能将其改写为:“退款在节假日期间需要多久才能到账?”

  • 将问题转换成查询向量
  • 系统使用 Embedding 模型将问题转换为查询向量,然后利用该向量搜索知识库中距离较近的文档向量。

  • 召回候选资料
  • 向量数据库返回一系列候选资料及其相似度分数,例如:“退款一般在 3~5 个工作日到账(0.92)”、“节假日期间退款可能顺延(0.86)”等。初次向量检索强调“不要漏掉”,后续还可以继续筛选。

  • 重排序与答案生成
  • 候选资料经过重排序(Rerank)后,筛选出少量可靠原文,再将问题和原文一起交给大模型生成最终答案。

    个人与企业场景下的 RAG 选型差异

    搭建 AI 知识库与 RAG 系统没有统一答案,选型取决于用户需求。个人用户应优先选择开箱即用的集成工具,如 Notion AI 或 Obsidian Copilot,这类工具强调工作流嵌入,无需额外运维。而企业用户则需在数据隐私、检索准确性和系统集成度上做深度权衡,确保系统具备细粒度 RBAC、数据脱敏和本地化推理能力。

    RAG 技术的关键挑战与优化方向

    RAG 的效果天花板由三要素决定:文档切片的语义完整性、向量检索的召回率以及重排序阶段的精度。高质量语料清洗的人力投入、向量数据库与 GPU 资源的长期运维,以及随业务变化持续迭代的知识维护机制,是企业级私有知识库的真实成本所在。

    通过合理规划知识库构建流程和优化在线问答机制,RAG 技术能够为企业和个人用户提供高效、准确的智能问答解决方案。