RAG 基础概念与整体架构
理解离线入库和在线查询两条核心链路
生命周期 · 阶段一 概念与立项 | 上游:业务痛点 | 下游:需求分析(02)
一、什么是 RAG
RAG(Retrieval-Augmented Generation,检索增强生成)= 信息检索 + 大模型生成。
先从知识库中检索出与用户问题最相关的文档片段,再将其作为上下文交给大模型,让模型"看着资料回答问题"。
为什么需要 RAG(解决 LLM 三大痛点)
| LLM 痛点 | RAG 的解法 |
|---|---|
| 幻觉:生成内容可能没有事实依据 | 提供可引用证据,并配合忠实度校验与拒答策略降低风险 |
| 知识时效:模型训练知识存在时间边界 | 更新知识库并完成索引切换后,可以检索新资料 |
| 私有数据不可见 | 将获准使用的私有文档纳入索引,并在检索前执行权限过滤 |
RAG vs 微调(Fine-tuning)
| 维度 | RAG | 微调 |
|---|---|---|
| 知识更新 | 文档重新入库并完成索引发布后生效 | 通常需要重新准备数据并训练或适配 |
| 成本 | 取决于解析、索引、检索和模型调用规模 | 取决于训练方式、算力与数据准备 |
| 可解释性 | 可提供引用,但仍需验证引用是否支持主张 | 通常不能直接给出训练样本级依据 |
| 适用场景 | 知识问答、文档检索 | 风格模仿、特定任务格式 |
| 两者关系 | 常结合使用:微调管"怎么答",RAG 管"答什么" |
二、整体架构
RAG 系统分为离线入库侧与在线查询侧两条链路:
flowchart TB
subgraph OFF["离线 · 入库侧"]
direction LR
A["文档接收"] --> B["解析"] --> C["OCR"] --> D["切片
Chunking"] --> E["向量化
Embedding"] --> G[("向量数据库
写入索引")]
end
subgraph ON["在线 · 查询侧"]
direction LR
U["用户提问"] --> R["查询改写"] --> H{"检索
向量+关键词"}
H --> RR["重排序
Rerank"]
RR --> P["组装 Prompt
问题+相关切片+指令"]
P --> L["LLM 生成答案"]
L --> ANS["回答
(附引用来源)"]
end
G -.- H
style OFF fill:#f0f7ff,stroke:#4a9eff
style ON fill:#fff7f0,stroke:#ff8c4a
三、核心组件
| 组件 | 作用 | 常见选型 |
|---|---|---|
| 文档解析器 | PDF/Word/HTML → 结构化文本 | PyMuPDF、Unstructured、Apache Tika |
| OCR 引擎 | 图片/扫描件 → 文本 | PaddleOCR、Tesseract、商用 OCR API |
| Embedding 模型 | 文本 → 语义向量 | BGE、M3E、text-embedding-3、Qwen-Embedding |
| 向量数据库 | 向量存储与相似度检索 | Milvus、Qdrant、PGVector、Elasticsearch |
| 重排模型 | 对粗排结果精排 | BGE-Reranker、Cohere Rerank |
| LLM | 生成最终答案 | GPT 系列、Qwen、DeepSeek、GLM |
| 编排框架 | 串联整条链路 | LangChain、LlamaIndex、RAGFlow、Dify |
四、常见 RAG 产品形态
- 开源自部署:RAGFlow / Dify / MaxKB / FastGPT — 开箱即用,适合企业私有化
- 自研代码链路:LangChain / LlamaIndex + 向量库 + 模型 API — 灵活可控,定制性强
- 云端一体化:各类云厂商知识库服务 — 运维负担较低,数据位置与处理边界需按供应商条款核验
五、一条数据的完整旅程(示例)
- 上传一份 50 页 PDF《不良资产处置操作手册》(接收)
- 解析提取出正文、表格、图片说明(解析)
- 第 30-35 页是扫描合同,OCR 转文字(OCR)
- 全文按语义切成约 300 个切片,每片 500 字左右(切片)
- 每个切片经 Embedding 模型转为 1024 维向量(向量化)
- 向量 + 原文 + 元数据(文档名、页码、部门、密级)写入 Milvus(索引)
- 用户提问"抵押物处置流程是什么" → 检索命中第 12 页相关切片 → LLM 生成带引用的回答
本篇交付与下一步
读完本篇,应能画出目标场景的离线入库链路与在线查询链路,并说明 RAG 能降低哪些风险、仍保留哪些风险。下一步进入 02-需求分析与技术选型,把概念转成可验证的需求与约束。