RAG 从知识入库到在线问答的完整流程是什么?
未标记
询问 AI
考查重点:离线入库与在线检索生成。离线解析、切分、向量化并建索引;在线将问题检索出相关片段,整理上下文交给模型生成并附证据
本题目录
参考答案
核心回答
RAG(检索增强生成)通过检索外部知识,为大模型提供相关上下文,辅助生成有依据的回答。 以向量检索为例,完整流程分为两个阶段:
- 索引阶段(离线):加载、清洗文档,切分为适合检索的片段,通过 Embedding 模型进行向量化,建立索引,并关联保存片段原文、来源等元数据。
- 检索生成阶段(在线):将用户问题向量化,检索 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 主流程;本文以公司制度问答为例,进一步说明文档更新和应用层检查。
- 第 19 章:RAG 检索增强生成 §1.3、§3.3:回看索引与在线问答的分工,以及错误码文档的完整链路;该章 §3.3 已展示配套完整代码,可核对数据流与
k=2的设置。 - 第 18 章:向量数据库与 Embedding 实战 §4.1~4.2:理解文档向量化、查询向量化与聊天模型的分工。
参考资料
- 国内:小林面试笔记:什么是 RAG?完整 RAG 系统的工作流程:借鉴离线索引与在线问答的两阶段结构,讲清文档切分、检索和重排如何衔接。
- 国内:JavaGuide:RAG 基础概念——检索、生成与工程取舍:参考上下文组织与工程取舍的讨论,补充引用错配、权限控制,以及 RAG 与长上下文方案的选择。
- 国内:阿里云百炼:RAG 核心概念:依据官方概念说明,解释文档解析、切片、索引、检索和重排各自负责什么。
- 国外:LangChain:Retrieval:参考固定检索与 Agentic RAG 的方案对比,说明正文中模型决定何时检索、是否补查时增加的调用和停止条件管理。
- 国外:LlamaIndex:Introduction to RAG:参考索引、检索后处理与生成的职责,说明正文中已有索引复用、证据整理和更新后持续评估的衔接。
相关面经
88 篇九方智投
Agent 开发工程师知识库如何搭建
小红书
Product Engineer(AI 与全栈方向)讲一下完整的 RAG 流程
字节跳动
全栈开发工程师我看你简历上写了 RAG,然后 LangChain、LangGraph。那如果要搭一个基础的一个 RAG 链路的情况下,你觉得会包含哪些流程?
灵犀互娱
AI 应用开发工程师RAG 系统包含哪些核心模块?
恒生电子
AI 应用开发工程师标准 RAG 从用户输入到最终答案输出的完整架构流程,每个核心环节的作用是什么?
展开剩余 83 篇面经
靖安科技
后端工程师(RAG/Agent 项目)一个问题从开始到结束,系统内部都做什么
字节跳动
前端开发工程师(AI/RAG 相关)从用户提问开始,完整描述一次RAG
蚂蚁集团
请讲一下 RAG 系统整体的技术架构是什么样的?你项目中对应每一块是怎么做的?
百度
去哪儿
测试开发工程师(测试 Agent)在脚本匹配/检索中,你用了RAG,具体是怎么做的?
广电数科
Java 开发工程师知识库如何初始化的
字节跳动
后端开发工程师知识库如何搭建的,你们的agent如何开发的?从零还是基于已有平台
MemTensor
全栈开发工程师把一个知识库接入检索系统的整体流程是什么?
阿里巴巴
AI 全栈开发工程师从本段实习这个先交流,你这个项目做了一个类似 RAG 的系统,核心功能是整理文档、从客户端发起问题、检索文档、加工语料回答是吧?
上海九云数智
大模型应用开发工程师(RAG 方向)rag的一个整体的流程你可以说说吗
百度
Agent 应用开发工程师RAG 的流程是什么?
虾皮
Agent 应用开发工程师讲下项目里 RAG 整体实现流程。
科大讯飞
Java 开发工程师中科创达
后端开发工程师(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进行检索的原理
转转
FDERAG如何搭建
自变量
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流程
收录题集
公司案例问答汇编
RAG与知识库
RAG基本概念与动机 「京东、字节Seed、字节跳动、腾讯、腾讯混元、阿里巴巴、阿里通义」
展开其余 19 条原题
RAG流程与架构
Chunk划分与RAG全链路 项目:RAG的chunk划分策略是什么?请介绍不同文档切分方式及RAG全链路过程。
RAG与知识检索 「京东、腾讯」
RAG实现、召回评估与改进
RAG 系统面试题
AI 系统设计
Agent_RAG与混合检索工程
相关关键词:检索增强生成、Retrieval Augmented Generation


















