MS-RAG
多源增强检索增强生成框架(MS-RAG)
简介
大语言模型(LLM)能力强大,但它只能基于训练数据进行回答。当用户需要最新的或特定领域的信息——例如内部文档、私有数据库或最新报告时——仅靠 LLM 远远不够。
检索增强生成(RAG) 通过从外部知识源中检索相关信息,并将其作为上下文提供给 LLM,从而确保回答基于真实数据而非记忆中的模式。
DB-GPT 实现了 多源 RAG(MS-RAG) 框架,超越了基本的文档问答。它支持多种知识来源(文档、URL、数据库、知识图谱)、多种检索策略(向量、关键词、图谱、混合),并与 DB-GPT 的智能体和工作流生态深度集成。
架构设计
整体流水线
MS-RAG 流水线由四个阶段组成:
知识源 → 分块 → 索引 → 检索 → LLM 生成
- 知识加载 —
KnowledgeFactory根据数据源类型和文件扩展名,自动路由到对应的Knowledge实现类。 - 文档分块 —
ChunkManager使用可配置的策略(按大小、页面、段落、分隔符或 Markdown 标题)将文档切分为可管理的片段。 - 索引构建 —
Assembler类(Embedding、BM25、Summary、DBSchema)将分块持久化到相应的索引存储(向量数据库、全文引擎或知识图谱)。 - 检索与生成 — 查询时,
Retriever检索相关分块,可选的QueryRewrite扩展查询,Ranker对结果重排序,最后由 LLM 生成最终回答。
Assembler 流水线
BaseAssembler 定义了连接所有阶段的统一流水线:
Knowledge.load() → ChunkManager.split() → Assembler.persist() → Assembler.as_retriever()
DB-GPT 提供了四种专用的 Assembler:
| Assembler | 用途 |
|---|