|
12 | 12 |
|
13 | 13 | <p align="center"> |
14 | 14 | | |
15 | | -<a href="https://openbmb.github.io/UltraRAG"><b>项目主页</b></a> |
16 | | -| |
17 | 15 | <a href="https://ultrarag.openbmb.cn"><b>教程文档</b></a> |
18 | 16 | | |
19 | 17 | <a href="https://github.com/OpenBMB/UltraRAG/tree/rag-paper-daily/rag-paper-daily"><b>每日论文</b></a> |
|
28 | 26 |
|
29 | 27 | *更新日志* 🔥 |
30 | 28 |
|
31 | | -- [2025.10.22] 🎉 UltraRAG 2.1 正式发布:RAG Servers 全面升级——重构文档解析与知识库构建流程,强化多模态 RAG 能力,支持更多后端框架。 |
32 | | -- [2025.09.23] 新增每日 RAG 论文分享,每日更新最新前沿 RAG 工作 👉 |[📖 论文](https://github.com/OpenBMB/UltraRAG/tree/rag-paper-daily/rag-paper-daily)| |
| 29 | +- [2025.11.11] 🎉 UltraRAG 2.1 更新:强化知识接入与多模态支持,完善统一评估体系! |
33 | 30 |
|
34 | 31 | <details> |
35 | 32 | <summary>历史更新</summary> |
36 | 33 |
|
| 34 | +- [2025.09.23] 新增每日 RAG 论文分享,每日更新最新前沿 RAG 工作 👉 |[📖 论文](https://github.com/OpenBMB/UltraRAG/tree/rag-paper-daily/rag-paper-daily)| |
37 | 35 | - [2025.09.09] 发布轻量级 DeepResearch Pipeline 本地搭建教程 👉 |[📺 bilibili](https://www.bilibili.com/video/BV1p8JfziEwM/?spm_id_from=333.337.search-card.all.click)|[📖 博客](https://github.com/OpenBMB/UltraRAG/blob/page/project/blog/cn/01_build_light_deepresearch.md)| |
38 | 36 | - [2025.09.01] 发布 UltraRAG 安装与完整 RAG 跑通视频 👉 |[📺 bilibili](https://www.bilibili.com/video/BV1B9apz4E7K/?share_source=copy_web&vd_source=7035ae721e76c8149fb74ea7a2432710)|[📖 博客](https://github.com/OpenBMB/UltraRAG/blob/page/project/blog/cn/00_Installing_and_Running_RAG.md)| |
39 | 37 | - [2025.08.28] 🎉 发布 UltraRAG 2.0!UltraRAG 2.0 全新升级:几十行代码实现高性能 RAG,让科研专注思想创新! |
|
43 | 41 |
|
44 | 42 | --- |
45 | 43 |
|
46 | | -## UltraRAG 2.0:面向科研的“RAG实验”加速器 |
| 44 | +## UltraRAG v2:面向科研的“RAG实验”加速器 |
47 | 45 |
|
48 | | -检索增强生成系统(RAG)正从早期“检索+生成”的简单拼接,走向融合 **自适应知识组织**、**多轮推理**、**动态检索** 的复杂知识系统(典型代表如 *DeepResearch*、*Search-o1*)。但这种复杂度的提升,使科研人员在 **方法复现**、**快速迭代新想法** 时,面临着高昂的工程实现成本。 |
| 46 | +检索增强生成系统(RAG)正从早期“检索+生成”的简单拼接,走向融合 **自适应知识组织**、**多轮推理**、**动态检索** 的复杂知识系统。但这种复杂度的提升,使科研人员在 **方法复现**、**快速迭代新想法** 时,面临着高昂的工程实现成本。 |
49 | 47 |
|
50 | | -为了解决这一痛点,清华大学 [THUNLP](https://nlp.csai.tsinghua.edu.cn/) 实验室、东北大学 [NEUIR](https://neuir.github.io) 实验室、[OpenBMB](https://www.openbmb.cn/home) 与 [AI9stars](https://github.com/AI9Stars) 联合推出 UltraRAG 2.0 (UR-2.0)—— 首个基于 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro) 架构设计的 RAG 框架。这一设计让科研人员只需编写 YAML 文件,就可以直接声明串行、循环、条件分支等复杂逻辑,从而以极低的代码量快速实现多阶段推理系统。 |
| 48 | +为了解决这一痛点,清华大学 [THUNLP](https://nlp.csai.tsinghua.edu.cn/) 实验室、东北大学 [NEUIR](https://neuir.github.io) 实验室、[OpenBMB](https://www.openbmb.cn/home) 与 [AI9stars](https://github.com/AI9Stars) 联合推出 UltraRAG v2 —— 首个基于 [Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro) 架构设计的 RAG 框架。这一设计让科研人员只需编写 YAML 文件,就可以直接声明串行、循环、条件分支等复杂逻辑,从而以极低的代码量快速实现多阶段推理系统。 |
51 | 49 |
|
52 | 50 | 其核心思路是: |
53 | 51 | - 组件化封装:将RAG 的核心组件封装为**标准化的独立 MCP Server**; |
54 | 52 | - 灵活调用与扩展:提供 **函数级 Tool** 接口,支持功能的灵活调用与扩展; |
55 | 53 | - 轻量流程编排:借助 **MCP Client**,建立自上而下的简洁化链路搭建; |
56 | 54 |
|
57 | | -与传统框架相比,UltraRAG 2.0 显著降低了复杂 RAG 系统的 **技术门槛与学习成本**,让研究者能够将更多精力投入到 **实验设计与算法创新** 上,而不是陷入冗长的工程实现。 |
| 55 | +与传统框架相比,UltraRAG v2 显著降低了复杂 RAG 系统的 **技术门槛与学习成本**,让研究者能够将更多精力投入到 **实验设计与算法创新** 上,而不是陷入冗长的工程实现。 |
58 | 56 |
|
59 | 57 | ## 🌟 核心亮点 |
60 | 58 |
|
61 | 59 | - 🚀 **低代码构建复杂 Pipeline** |
62 | | - 原生支持 **串行、循环、条件分支** 等推理控制结构。开发者只需编写 YAML 文件,即可实现几十行代码构建的 **迭代式 RAG 流程**(如 *Search-o1* 等)。 |
| 60 | + - 原生支持 **串行、循环、条件分支** 等推理控制结构。开发者只需编写 YAML 文件,即可实现几十行代码构建的 **迭代式 RAG 流程**。 |
| 61 | + |
| 62 | +- 🖼️ **原生多模态支持:检索、生成、评估一体化** |
| 63 | + - 统一检索、生成与评估,构建真正意义上的 多模态 RAG 全链路; |
| 64 | + - 实现从 本地 PDF 建库 → 多模态检索 → 多模态生成 的闭环流程,显著提升复杂文档场景下的理解与问答能力。 |
63 | 65 |
|
64 | 66 | - ⚡ **快速复现与功能扩展** |
65 | 67 | 基于 **MCP 架构**,所有模块均封装为独立、可复用的 **Server**。 |
66 | 68 | - 用户可按需自定义 Server 或直接复用现有模块; |
67 | 69 | - 每个 Server 的功能以函数级 **Tool** 注册,新增功能仅需添加一个函数即可接入完整流程; |
68 | | - - 同时支持调用 **外部 MCP Server**,轻松扩展 Pipeline 能力与应用场景。 |
| 70 | + - 同时支持调用 **外部 MCP Server**,轻松扩展 Pipeline 能力与应用场景。 |
| 71 | + |
| 72 | +- 📚 **知识接入与语料构建自动化** |
| 73 | + - 支持 PDF、Markdown、HTML、TXT 等多格式文档解析与分块建库; |
| 74 | + - 与 MinerU 无缝集成,自动完成结构化抽取、多模态切块(文本/表格/图片); |
| 75 | + - 一键构建个人化与企业级知识库,适用于科研、企业文档、私有知识管理等场景。 |
| 76 | + |
| 77 | +- 🔗 统一构建与评估的 RAG 工作流 |
| 78 | + - 同时适配多种检索引擎与多种生成推理后端; |
| 79 | + - 内置标准化评估体系,支持全链路可视化调试与结果分析; |
69 | 80 |
|
70 | 81 | - 📊 **统一评测与对比** |
71 | | - 内置 **标准化评测流程与指标管理**,开箱即用支持 17 个主流科研 Benchmark。 |
| 82 | + 内置 **标准化评测流程与指标管理**,开箱即用支持多个主流科研 Benchmark。 |
72 | 83 | - 持续集成最新基线; |
73 | | - - 提供 Leaderboard 结果; |
74 | 84 | - 方便科研人员进行系统性对比与优化实验。 |
75 | 85 |
|
76 | 86 | ## 秘诀:MCP 架构与原生流程控制 |
77 | 87 |
|
78 | 88 | 在不同的 RAG 系统中,检索、生成等核心能力在功能上具有高度相似性,但由于开发者实现策略各异,模块之间往往缺乏统一接口,难以跨项目复用。[Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro) 作为一种开放协议,规范了为大型语言模型(LLMs)提供上下文的标准方式,并采用 **Client–Server** 架构,使得遵循该协议开发的 Server 组件可以在不同系统间无缝复用。 |
79 | 89 |
|
80 | | -受此启发,UltraRAG 2.0 基于 **MCP 架构**,将 RAG 系统中的检索、生成、评测等核心功能抽象并封装为相互独立的 **MCP Server**,并通过标准化的函数级 **Tool 接口**实现调用。这一设计既保证了模块功能扩展的灵活性,又允许新模块以“热插拔”的方式接入,无需对全局代码进行侵入式修改。在科研场景中,这种架构让研究者能够以极低的代码量快速适配新的模型或算法,同时保持整体系统的稳定性与一致性。 |
| 90 | +受此启发,UltraRAG v2 基于 **MCP 架构**,将 RAG 系统中的检索、生成、评测等核心功能抽象并封装为相互独立的 **MCP Server**,并通过标准化的函数级 **Tool 接口**实现调用。这一设计既保证了模块功能扩展的灵活性,又允许新模块以“热插拔”的方式接入,无需对全局代码进行侵入式修改。在科研场景中,这种架构让研究者能够以极低的代码量快速适配新的模型或算法,同时保持整体系统的稳定性与一致性。 |
81 | 91 |
|
82 | 92 | <p align="center"> |
83 | 93 | <picture> |
84 | 94 | <img alt="UltraRAG" src="./docs/architecture.png" width=90%> |
85 | 95 | </picture> |
86 | 96 | </p> |
87 | 97 |
|
88 | | -复杂 RAG 推理框架的开发具有显著挑战,而 UltraRAG 2.0 之所以能够在**低代码**条件下支持复杂系统的构建,核心在于其底层对多结构 **Pipeline 流程控制**的原生支持。无论是串行、循环还是条件分支,所有控制逻辑均可在 YAML 层完成定义与调度,覆盖复杂推理任务所需的多种流程表达方式。在实际运行中,推理流程的调度由内置 **Client** 执行,其逻辑完全由用户编写的外部 **Pipeline YAML 脚本** 脚本描述,从而实现与底层实现的解耦。开发者可以像使用编程语言关键字一样调用 loop、step 等指令,以声明的方式快速构建多阶段推理流程。 |
| 98 | +复杂 RAG 推理框架的开发具有显著挑战,而 UltraRAG v2 之所以能够在**低代码**条件下支持复杂系统的构建,核心在于其底层对多结构 **Pipeline 流程控制**的原生支持。无论是串行、循环还是条件分支,所有控制逻辑均可在 YAML 层完成定义与调度,覆盖复杂推理任务所需的多种流程表达方式。在实际运行中,推理流程的调度由内置 **Client** 执行,其逻辑完全由用户编写的外部 **Pipeline YAML 脚本** 脚本描述,从而实现与底层实现的解耦。开发者可以像使用编程语言关键字一样调用 loop、step 等指令,以声明的方式快速构建多阶段推理流程。 |
89 | 99 |
|
90 | | -通过将 **MCP 架构** 与 **原生流程控制**深度融合,UltraRAG 2.0 让复杂 RAG 系统的搭建像“编排流程”一样自然高效。此外,框架内置 17 个主流 benchmark 任务与多种高质量 baseline,配合统一的评测体系与知识库支持,进一步提升了系统开发的效率与实验的可复现性。 |
| 100 | +通过将 **MCP 架构** 与 **原生流程控制**深度融合,UltraRAG v2 让复杂 RAG 系统的搭建像“编排流程”一样自然高效。此外,框架内置多个主流 benchmark 任务与多种高质量 baseline,配合统一的评测体系与知识库支持,进一步提升了系统开发的效率与实验的可复现性。 |
91 | 101 |
|
92 | 102 | ## 安装 |
93 | 103 |
|
@@ -125,7 +135,7 @@ ultrarag run examples/sayhello.yaml |
125 | 135 | ``` |
126 | 136 |
|
127 | 137 |
|
128 | | -【可选】UR-2.0支持丰富的Server组件,开发者可根据实际任务灵活安装所需依赖: |
| 138 | +【可选】UltraRAG v2 支持丰富的Server组件,开发者可根据实际任务灵活安装所需依赖: |
129 | 139 |
|
130 | 140 | ```shell |
131 | 141 | # Retriever/Reranker Server依赖: |
@@ -224,13 +234,13 @@ ultrarag run examples/sayhello.yaml |
224 | 234 | ## 快速开始 |
225 | 235 |
|
226 | 236 | 我们提供了从入门到进阶的完整教学示例,欢迎访问[教程文档](https://ultrarag.openbmb.cn |
227 | | -)快速上手 UltraRAG 2.0! |
| 237 | +)快速上手 UltraRAG v2! |
228 | 238 |
|
229 | 239 | 阅读[快速开始](https://ultrarag.openbmb.cn/pages/cn/getting_started/quick_start),了解如何基于 UltraRAG 运行一个完整的 RAG Pipeline。 |
230 | 240 |
|
231 | 241 | ## 支持 |
232 | 242 |
|
233 | | -UltraRAG 2.0 开箱即用,已在 [ModelScope](https://modelscope.cn/datasets/UltraRAG/UltraRAG_Benchmark) 和 [Huggingface](https://huggingface.co/datasets/UltraRAG/UltraRAG_Benchmark) 上同步发布当前 RAG 领域最常用的 **公开评测数据集**以及**大规模语料库**。 |
| 243 | +UltraRAG v2 开箱即用,已在 [ModelScope](https://modelscope.cn/datasets/UltraRAG/UltraRAG_Benchmark) 和 [Huggingface](https://huggingface.co/datasets/UltraRAG/UltraRAG_Benchmark) 上同步发布当前 RAG 领域最常用的 **公开评测数据集**以及**大规模语料库**。 |
234 | 244 | 用户可直接下载使用,无需额外清洗或转换,即可与 UltraRAG 的评测管线无缝对接。除此之外还可以参考[数据格式说明](https://ultrarag.openbmb.cn/pages/cn/develop_guide/dataset),灵活地自定义并添加任意数据集或语料库。 |
235 | 245 |
|
236 | 246 | ### 1. 支持的数据集 |
@@ -290,6 +300,8 @@ UltraRAG 2.0 开箱即用,已在 [ModelScope](https://modelscope.cn/datasets/U |
290 | 300 | | [R1-searcher](https://arxiv.org/abs/2503.05592) | examples/r1_searcher.yaml | |
291 | 301 | | [Search-o1](https://arxiv.org/abs/2501.05366) | examples/search_o1.yaml | |
292 | 302 | | [Search-r1](https://arxiv.org/abs/2503.09516) | examples/search_r1.yaml | |
| 303 | +| [VisRAG](https://arxiv.org/abs/2410.10594) | examples/visrag.yaml | |
| 304 | +| [VisRAG 2.0](https://arxiv.org/abs/2510.09733) | examples/evisrag.yaml | |
293 | 305 |
|
294 | 306 | ## 贡献 |
295 | 307 |
|
|
0 commit comments