RAG 从知识入库到在线问答的完整流程是什么?

未标记

询问 AI

考查重点:离线入库与在线检索生成。离线解析、切分、向量化并建索引;在线将问题检索出相关片段,整理上下文交给模型生成并附证据

本题目录

参考答案

核心回答

RAG(检索增强生成)通过检索外部知识,为大模型提供相关上下文,辅助生成有依据的回答。 以向量检索为例,完整流程分为两个阶段:

  1. 索引阶段(离线):加载、清洗文档,切分为适合检索的片段,通过 Embedding 模型进行向量化,建立索引,并关联保存片段原文、来源等元数据。
  2. 检索生成阶段(在线):将用户问题向量化,检索 Top-K 相关片段,按需过滤和重排,再将片段原文、原始问题和回答要求组织成 Prompt,由大模型生成答案。

例如,员工问“出差怎么报销”,系统先检索报销流程、凭证要求等制度条款,再据此组织回答。向量用于查找资料,片段原文才是模型生成答案的主要依据。

评估时,需要分别检查检索的相关性与覆盖度,以及答案的正确性和忠实性。其中,忠实性关注结论是否得到所用资料支持。资料不足时说明缺口,知识发生变化后同步更新索引及关联内容。

两个阶段怎样接起来?

下面用公司报销问答的假设场景说明。建库在资料新增或变化时进行,在线问答复用已经建立的索引。图中展示向量检索这条常见路径。

%%{init: {"themeVariables":{"fontSize":"17px","fontFamily":"sans-serif"},"flowchart":{"nodeSpacing":10,"rankSpacing":24,"padding":8,"diagramPadding":8,"curve":"linear"}}}%%
flowchart TD
    subgraph PREP[" "]
        direction TB
        D["知识准备:仅资料新增或更新时<br/>报销制度文档"] --> C["读取、清理<br/>切成片段"]
        C --> V["为片段生成向量"]
        V --> K["建立索引,保存<br/>原文、来源和版本"]
    end
    subgraph ASK[" "]
        direction TB
        Q["在线问答:每次用户提问时<br/>原始问题:出差怎么报销?"] --> E["确定可访问范围<br/>将问题向量化"]
        E --> R["检索相关片段"]
        R --> P["筛选片段<br/>按需要重排"]
        P --> G["片段原文+原始问题<br/>一起交给模型"]
        G --> A["生成答案<br/>检查内容及依据"]
    end
    K -->|索引与原文| R
    Q -->|原始问题| G
    K ~~~ Q

建库先保证资料能被正确读取和切分。 原始资料可能是 Word、PDF 或内部网页,加载后需要检查标题、正文和表格是否完整。切块时应尽量保留一个条款的适用条件和具体要求。比如把“哪些费用可以报销”和“必须提供什么凭证”拆得太散,后面可能只查到一半;把整本员工手册当成一块,又容易带入大量无关内容。块大小和重叠长度要根据文档结构及实际检索结果调整,没有通用的最佳值。

然后把片段变成可检索的数据。 向量检索需要为每块正文生成向量,同时保存可取回的原文,以及文件名、章节、版本等元数据。向量用于匹配,原文供模型阅读,元数据用于查来源和限制检索范围。这些数据可以放在同一存储中,也可以通过片段 ID 关联,关键是检索结果能准确回到原文。查询与文档必须使用兼容的向量空间;常见做法是使用同一套 Embedding 模型,并遵守它对查询和文档的输入要求。

在线问答先找齐需要的证据。 收到“出差回来怎么报销”后,先确定可访问的制度范围,再检索相关条款。口语表达通常适合语义检索;如果问题中包含制度编号、产品型号等精确词,可以结合关键词检索。查询改写、混合检索和重排都是按需要加入的手段,不是每次问答都必须执行。重排能把候选中更相关的内容往前放,但候选里没有报销凭证要求,它也不能补出这条证据。

多轮提问还要先弄清楚省略了什么。例如上一轮在聊出差报销,用户接着问“那需要什么材料?”,可以结合历史把检索问题补成“出差报销需要哪些凭证材料”。这里补的是已经明确的上下文;如果前面既聊过差旅报销又聊过采购报销,就先确认用户问哪一种,再改写检索问题,让检索条件与用户的实际需求一致。

最后把证据整理成上下文,再生成回答。 去掉重复和无关片段,保留回答需要的条件、步骤与来源,控制输入长度。提示词要求模型依据材料回答,缺少依据时说明缺口。输出后还要核对:有没有漏掉必要条件、引用是否真正支持结论。附上文档链接不等于答案已经可靠,仍可能出现“引用了正确文件,却总结错了条款”的情况。

放到代码里,检索结果怎样交给模型?

教程中的运维知识库用错误码文档演示了这条链路:Docx2txtLoader 读取 alibaba-java.docx,CharacterTextSplitter 切块,DashScopeEmbeddings 向量化,Redis.from_documents(...) 将切好的片段入库。在线部分是:

rag_chain = {"context": retriever, "question": RunnablePassthrough()} | prompt | llm

同一个问题分成两路:检索器根据问题取出材料,放进 context;RunnablePassthrough() 原样保留问题,放进 question。提示词模板汇合两路输入,再交给聊天模型。

例子问“00000 和 A0001 分别是什么意思”,检索器设置 k=2,表示最多取前两条结果,不代表两个错误码各命中一条。一个片段可能同时包含两者,也可能取回的内容只覆盖其中一个。判断能否回答,要看片段正文是否包含两个编码及其说明。

这段代码展示了最小流程:它直接把检索结果传给模板,没有独立实现片段去重、来源格式化、权限过滤或引用校验。实际应用中还需要增加这些处理。

文档更新后怎么办?

在线问答通常复用已有索引,新增、修改或删除文档时再更新相关内容。比如公司发布了新版报销制度,就要更新受影响片段,并移除或排除已经失效的旧版本,避免同一个问题同时查到两套规定。更换不兼容的 Embedding 模型时,也需要重新生成文档向量,不能拿新模型的查询向量直接比较旧向量。

更新后,用一批固定问题复查:需要的条款有没有召回,答案有没有漏条件,引用能不能支持结论。如果答案错了,先看取回的材料是否正确、完整,再判断是检索问题还是生成问题。相关题目:如何设计 RAG 评估方案和指标?。

常见追问

答案漏了“需要发票”,先改提示词吗? 先沿着材料检查:制度原文有没有这条要求,切块后有没有保留,检索是否取回,整理上下文时有没有被删掉。如果材料根本没进入模型输入,只改回答提示词很难解决;材料已经完整给到模型,它仍漏答,才重点检查生成和答案校验。

为什么不直接把整份文档交给模型? 少量、较短且需要通读的资料可以这样做。知识库很大或频繁更新时,按需检索便于控制输入量;是否采用 RAG,还要比较准确性、延迟和成本。两种方式都需要由系统执行权限检查。

每次都必须先检索一次吗? 上面的固定管道是这样。Agentic RAG 可以让模型决定何时检索、是否继续补查,但也增加了调用次数和停止条件的管理,参见Workflow 和 Agent 有什么区别?。

对应教程

配套教程讲解 RAG 主流程;本文以公司制度问答为例,进一步说明文档更新和应用层检查。

参考资料

相关面经

88 篇

九方智投

Agent 开发工程师
一面
查看原面经 →
知识库如何搭建

小红书

Product Engineer(AI 与全栈方向)
一面
查看原面经 →
项目追问
讲一下完整的 RAG 流程

字节跳动

全栈开发工程师
二面
查看原面经 →
我看你简历上写了 RAG,然后 LangChain、LangGraph。那如果要搭一个基础的一个 RAG 链路的情况下,你觉得会包含哪些流程?

灵犀互娱

AI 应用开发工程师
校招秋招
查看原面经 →
RAG 系统包含哪些核心模块?

恒生电子

AI 应用开发工程师
校招秋招
查看原面经 →
标准 RAG 从用户输入到最终答案输出的完整架构流程,每个核心环节的作用是什么?
展开剩余 83 篇面经

靖安科技

后端工程师(RAG/Agent 项目)
秋招一面
查看原面经 →
项目追问
一个问题从开始到结束,系统内部都做什么

字节跳动

前端开发工程师(AI/RAG 相关)
一面
查看原面经 →
从用户提问开始,完整描述一次RAG

蚂蚁集团

面经合集
查看原面经 →
请讲一下 RAG 系统整体的技术架构是什么样的?你项目中对应每一块是怎么做的?

百度

面经合集
查看原面经 →
如果从零搭建一个团队内部的知识问答 RAG,完整流程是什么?
追问
主要分哪些步骤?

去哪儿

测试开发工程师(测试 Agent)
一面
查看原面经 →
项目追问
在脚本匹配/检索中,你用了RAG,具体是怎么做的?

广电数科

Java 开发工程师
实习
查看原面经 →
知识库如何初始化的

字节跳动

后端开发工程师
秋招一面
查看原面经 →
知识库如何搭建的,你们的agent如何开发的?从零还是基于已有平台

MemTensor

全栈开发工程师
社招一面
查看原面经 →
把一个知识库接入检索系统的整体流程是什么?

阿里巴巴

AI 全栈开发工程师
一面
查看原面经 →
项目追问
从本段实习这个先交流,你这个项目做了一个类似 RAG 的系统,核心功能是整理文档、从客户端发起问题、检索文档、加工语料回答是吧?

上海九云数智

大模型应用开发工程师(RAG 方向)
查看原面经 →
rag的一个整体的流程你可以说说吗

百度

Agent 应用开发工程师
秋招一面
查看原面经 →
RAG 的流程是什么?

虾皮

Agent 应用开发工程师
秋招一面
查看原面经 →
讲下项目里 RAG 整体实现流程。

科大讯飞

Java 开发工程师
秋招一面、二面
查看原面经 →
项目追问
RAG知识库怎么做的
项目追问
知识库怎么做的

中科创达

后端开发工程师(AI / RAG 方向)
查看原面经 →
介绍一下自己实现的 RAG 整体流程。

BIGO

客户端开发工程师
秋招二面
查看原面经 →
项目追问
Agent项目RAG怎么做的,讲一下。

金山软件

AI 全栈开发工程师
一面
查看原面经 →
完整讲一遍RAG检索流程,从建库到查询。

智元创新

数据引擎研发工程师
秋招二面
查看原面经 →
数据分析agent的知识库是怎么做的?

润嵘金属网有限公司

AI 开发工程师
一面
查看原面经 →
RAG 怎么实现的。

字节跳动

Agent 开发工程师
一面
查看原面经 →
项目追问
项目中的RAG知识用到了哪些?离线上传和在线问答环节如何进行?

拼多多

大模型应用开发工程师(RAG 方向)
社招一面
查看原面经 →
聊聊你们知识库是怎么设计的?怎么检索的?
你们现在知识库具体是怎么做的?

百度

Go 后端开发工程师(安全平台)
日常实习
查看原面经 →
rag怎么做的?

阿里巴巴

大模型应用开发工程师(RAG 方向)
秋招一面
查看原面经 →
请完整介绍 RAG 从文档入库到召回、融合和重排的链路。

小红书

AI Native 全栈开发工程师
日常实习一面、二面
查看原面经 →
RAG 知识库项目背景及整体流程

去哪儿

前端开发工程师
一面
查看原面经 →
完整描述RAG全流程

美团

后端开发工程师(AI)
秋招一面
查看原面经 →
RAG怎么做的

亚信安全

Agent 开发工程师(AI Native 工具)
秋招一面
查看原面经 →
可以简单讲一下 RAG 一般是怎么设计的吗?

字节跳动

AI 应用开发工程师
秋招一面
查看原面经 →
用过 RAG 吗?

BIGO

客户端开发工程师
秋招一面
查看原面经 →
RAG

阿里巴巴

大模型应用开发工程师(RAG 方向)
一面
查看原面经 →
介绍一下什么是 RAG?

百度

Agent 应用开发工程师
秋招二面
查看原面经 →
LangChain实现RAG检索的完整流程是什么?

多益网络

AI 应用开发工程师
三面
查看原面经 →
RAG的结构,工作流程和作用是什么

要务科技

AI 应用开发工程师
暑期实习一面
查看原面经 →
用 LangChain 做过 RAG Demo 吗?

美团

Agent 开发工程师
实习一面
查看原面经 →
RAG流程具体是如何实现的?包括文档切分、向量检索、召回以及生成等环节。

百度

大模型研发工程师(Agent 方向)
秋招一面、二面
查看原面经 →
如果从零搭建一个团队内部的知识问答 RAG,完整流程是什么?主要分哪些步骤?

字节跳动

Agent 开发工程师
秋招一面
查看原面经 →
询问有没有rag经验,展开介绍

宁波银行

大模型应用开发工程师(RAG 方向)
校招秋招
查看原面经 →
RAG

阿里巴巴(淘天)

Agent 开发
社招一面
查看原面经 →
RAG 分块、向量化、rerank 基本理解

哔哩哔哩(B站)

Agent 开发
社招二面
查看原面经 →
RAG 了解吗?怎么分片?向量化目标是什么?什么场景用?

CVTE

AI 应用开发
一面
查看原面经 →
rag进行检索的原理

转转

FDE
社招
查看原面经 →
RAG如何搭建

自变量

Agent 平台开发工程师
社招一面
查看原面经 →
RAG有用过吗?

字节跳动

Agent 开发
一面
查看原面经 →
RAG完整流程是怎样的?

拼多多

Agent 应用开发工程师
秋招一面
查看原面经 →
RAG

字节跳动

Agent 测评
一面
查看原面经 →
rag的执行流程

未知公司

后端开发
查看原面经 →
详细说下RAG的完整流程,以及召回不准、问答跑偏怎么优化?

商汤

大模型应用算法工程师
实习一面、二面
查看原面经 →
RAG 原理,项目里有哪些相关经验,向量数据库、相似度计算、chunk 切片策略。

华为

Agent 应用开发工程师
实习一面、二面
查看原面经 →
6 解释RAG, SKILL, MCP。(差不多说对了)

百度

AI 应用开发工程师
社招一面
查看原面经 →
RAG全流程:chunk → embedding → 混合检索(向量+BM25)→ 重排序 → LLM生成

禅游科技

全栈开发工程师
实习一面
查看原面经 →
练习题的rag如何设计实现的

腾讯

大模型应用开发工程师(RAG 方向)
暑期三面
查看原面经 →
请介绍你在实习中负责的Agent+RAG项目的背景、整体技术方案,包括文档解析、分块策略、向量数据库的选型与存储方式,以及具体的检索查询流程。

哔哩哔哩(B站)

多屏客户端开发工程师
实习二面
查看原面经 →
rag 又是什么呢

爱回收

测试开发工程师
二面
查看原面经 →
rag啥原理 现在主流的rag是怎样实现的?

理想

AI 解决方案岗(职能类)
一面、二面
查看原面经 →
一面:结合简历问了我关于 rag的流程,agent 的理解,以及如何搭建一个 agent 系统 (业务相关)还有就是怎么做 benchmark。

雷鸣比特

前端开发工程师
实习
查看原面经 →
讲一讲项目里面的RAG相关内容

字节跳动

全栈开发工程师(Agent)
一面
查看原面经 →
RAG的具体流程

网易

大模型应用开发工程师(RAG 方向)
查看原面经 →
描述企业级RAG知识库全流程架构,从文档上传、切片、向量化、检索、重排到应答,各环节难点是什么?

阿里巴巴

Agent 开发工程师
暑期实习一面、二面
查看原面经 →
拷打实习的agent客服项目,介绍RAG的实现与回答生成过程

法大大

Java 开发工程师
实习一面
查看原面经 →
RAG私有数据库怎么做的

和顺慧康

AI 应用开发工程师
暑期实习
查看原面经 →
如果让你从零设计一个RAG(检索增强生成)系统,你认为必须包含哪些核心模块?请简述各模块的关键职责。

花小小新疆炒米粉

AI 全栈开发工程师
社招
查看原面经 →
拿到一个文本后,你会怎么处理来构建知识库?输入源是文本,具体处理流程是怎样的?

中兴

Agent 开发工程师
实习一面
查看原面经 →
你参与的是RAG知识库的构建工作吗?具体是怎么做的?

京东

后端开发工程师(智能运维)
实习暑期一面
查看原面经 →
18 了解Rag吗

腾讯音乐

后端开发工程师
二面
查看原面经 →
你的 RAG 系统是怎么设计的?

未知公司

查看原面经 →
6RAG的大致流程

快手

Agent 应用开发工程师
实习一面
查看原面经 →
追问
(追问)整体检索流程是怎样的?从query 到最 终上下文的完整流程是什么?

MiniMax

大模型算法工程师
查看原面经 →
什么是 RAG?它是怎么提升生成质量的?标准RAG有什么问题与传统“检索 + 模型生成”的流程有何不同?

阿里巴巴

Agent 算法工程师
一面
查看原面经 →
梳理RAG系统整体架构与核心工作内容。

字节跳动

后端开发工程师(AI)
实习一面
查看原面经 →
介绍RAG的核心流程?

字节跳动

后端开发工程师(Agent)
二面
查看原面经 →
详细描述一下你项目中的 RAG 流程,从文档切块到最终生成的完整步骤是什么?

字节跳动

后端开发工程师(AI)
实习一面
查看原面经 →
mcp,rag是什么,用来干什么?

字节跳动

Agent 开发工程师
实习一面
查看原面经 →
你的Agent检索召回流程详细讲一遍,分词、向量化、检索、重排全链路,做了哪些优化?

阿里巴巴

AI 应用开发工程师
暑期实习二面
查看原面经 →
RAG的原理如何理解

快手

后端开发
日常实习二面
查看原面经 →
RAG 的主要模式和主要工作流程是怎样的?

蚂蚁集团

Agent 应用开发工程师
暑期实习一面
查看原面经 →
有没有做过rag,rag的分块和召回

美团

测试开发工程师
暑期实习一面
查看原面经 →
rag

顺丰

大模型应用开发工程师(RAG 方向)
实习
查看原面经 →
介绍RAG流程,分段有没有做优化;

未知公司

AI Agent 研发实习岗
实习
查看原面经 →
RAG+MCP这方面是你做的吗?怎么做的?RAG怎么构建的

滴滴

Agent 开发工程师
日常实习
查看原面经 →
RAG知识库系统全链路设计

字节跳动

Agent 开发工程师
一面、二面、三面
查看原面经 →
rag流程和优化

京东

算法工程师(对话机器人)
实习
查看原面经 →
解释Agent和RAG原理

招联

AI 应用开发工程师
一面
查看原面经 →
rag的基本流程

顺丰

大模型应用开发工程师(RAG 方向)
查看原面经 →
介绍RAG流程,分段有没有做优化;

字节跳动

Agent 方向
一面
查看原面经 →
RAG流程

收录题集

18 份

公司案例问答汇编

阿东玩 AI · AgentGuide · 5 条原题

查看题集 →
展开其余 2 条原题

RAG与知识库

阿东玩 AI · AgentGuide · 22 条原题

查看题集 →
展开其余 19 条原题

RAG 系统面试题

阿东玩 AI · AgentGuide · 2 条原题

查看题集 →

AI 系统设计

AMIT SHEKHAR · ai-engineering-interview-questions · 2 条原题

查看题集 →

Agent_RAG与混合检索工程

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →
展开剩余 13 份题集

哔哩哔哩高频面试题

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

字节跳动高频面试题

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

滴滴高频面试题

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

拼多多高频面试题

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

腾讯问答汇编

Rocky Ding · AIGC-Interview-Book · 4 条原题

查看题集 →
展开其余 1 条原题

提示工程:应用大模型的高级方法

Rocky Ding · AIGC-Interview-Book · 2 条原题

查看题集 →

大模型与多模态数学专题

Rocky Ding · AIGC-Interview-Book · 1 条原题

查看题集 →

AI 智能体与大模型应用开发面试题库

didilili · ai-agents-from-zero · 1 条原题

查看题集 →

LLM、VLM 与 Agent 面试题

Datawhale · hello-agents · 1 条原题

查看题集 →

检索与知识工程问答

Guide · JavaGuide · 1 条原题

查看题集 →

Agent开发面试题

摸鱼酱mio · 个人整理 · 1 条原题

查看题集 →

八股集锦(高频问题)

小熊饼干_ · 个人整理 · 1 条原题

查看题集 →

RAG 面试题

小林 Coding · 个人整理 · 2 条原题

查看题集 →

相关题目

4 题

相关关键词:检索增强生成、Retrieval Augmented Generation