标准回答
RAG 系统由两条数据流构成。
离线索引(Indexing)
- 数据接入(Ingest):从文档、网页、数据库加载原始数据,做清洗与格式归一。
- 切分(Chunking):按语义/长度把文档切成块,控制每块的 token 规模与重叠。
- 嵌入(Embedding):用嵌入模型把每块转成向量。
- 入库(Index):向量连同元数据写入向量数据库,构建 HNSW 等索引。
在线问答(Retrieval + Generation)
5. 检索(Retrieve):将用户 query 嵌入,做向量相似度召回 Top-K(常配合关键词混合检索)。
6. 重排(Rerank):用 cross-encoder 对候选精排,提升精度。
7. 拼接上下文:把精排后的片段填入 Prompt 模板。
8. 生成(Generate):LLM 基于检索内容作答,并附带引用来源。
详见 RAG 检索增强生成架构指南。
常见误区
⚠️ 常见踩坑
把 RAG 简化为「向量检索 + 拼接」,忽略了切分质量、重排和引用溯源;这三者恰恰决定生产环境的可用性。
追问
追问 1:离线索引和在线检索分别对延迟敏感吗?
离线索引是批处理,可异步进行,对延迟不敏感但要保证数据新鲜度;在线检索处于请求路径上,向量召回+重排+生成的总延迟直接影响体验,是优化重点。
追问 2:元数据(metadata)在 RAG 中有什么用?
元数据用于过滤检索(如按时间、权限、来源筛选)、做混合检索的结构化条件,以及生成时的引用展示。带权限元数据还能实现多租户数据隔离。
追问 3:知识库更新后如何让检索结果同步?
增量更新:对变更文档重新切分、嵌入并 upsert 到向量库,删除过期块。要维护文档版本与 chunk 的映射关系,避免脏数据残留。
延伸学习
与本题相关的知识库文章、术语、工具与行业资讯。
🛠️ AI 工具