RAG-Anything
定义或身份
RAG-Anything 是一个开源的一体化多模态 RAG 框架,面向复杂文档的检索增强生成场景设计。它的定位不是单独的文档解析器,也不是只负责向量检索的库,而是覆盖“文档摄取—理解—知识构建—问答生成”全链路的完整系统。
该项目由香港大学相关团队发布,文中将其描述为“专为多模态文档设计的 RAG 系统”,核心目标是让复杂文档中的多种信息形态都能进入统一的知识处理流程,实现“万物皆可 RAG”的处理能力。
从项目渊源看,RAG-Anything 最初是在 LightRAG 基础上做多模态扩展与优化,随后其多模态能力进一步独立演进为单独项目 RAG-Anything,并以此平台持续迭代。
要解决的问题
传统 RAG 在纯文本问答中较成熟,但在复杂文档场景里存在明显瓶颈,RAG-Anything 就是针对这些瓶颈而提出的。
1. 传统 RAG 主要面向文本
常见 RAG 架构以文本分块、文本向量化、相似性检索为核心,对非文本内容支持不足。面对图片、图表、表格、数学公式时,往往只能把它们粗暴转成文本再处理。
2. OCR 式文本化会丢失关键信息
原文明确指出,传统系统通常依赖 OCR 把图像和表格强制转换为文本,但会丢失视觉布局、颜色编码、空间关系等重要信息。因此即使“提取出了字”,也不等于真正理解了文档。
3. 纯文本向量难以表达图表、表格和公式语义
在“图中的趋势如何”“表格中哪个指标最高”这类问题上,单纯文本向量无法有效表达图表的视觉语义、表格的结构关系和公式的数学含义,检索精度会明显下降。
4. 缺乏跨模态关联
复杂文档里的文字、图像、表格、公式往往互相解释、互相引用。传统系统通常无法建立这种跨模态语义关联,导致回答不完整,甚至断章取义。
5. 多工具拼接导致工程复杂且效率低
面对包含大量非文本元素的文档,传统方案常常要把 OCR、表格提取、图像分析、公式识别、向量检索等多个工具拼起来,流程复杂,数据容易在转换中损失,也不利于实际部署。
角色职责
RAG-Anything 在系统中承担的是“多模态文档 RAG 基础设施”的角色,主要职责包括:
- 统一接收复杂文档输入,并进入一致的处理管道。
- 解析文本、图像、表格、数学公式等异构内容,而不是只抽文本。
- 对不同模态内容做内容理解与结构化建模。
- 构建统一的跨模态 多模态知识图谱。
- 同时建立图谱索引与向量索引,以支持混合检索。
- 在问答阶段将图谱检索、向量检索和大语言模型生成结合起来,输出更完整的答案。
这意味着它既面向 RAG文档摄取,也面向后续的检索与生成阶段,属于端到端系统组件。
支持的内容与格式
支持的内容类型
原文反复强调,RAG-Anything 处理的不是单一文本,而是多种异构内容,至少包括:
- 文本
- 图像
- 表格
- 数学公式
此外,文中还提到可扩展支持流程图、代码片段、地理信息等专业内容的识别与语义建模,但这些属于扩展模态能力,不应替代其核心四类内容。
支持的文档格式
原文给出的主流输入格式包括:
- Microsoft Office 文档
- Word
- Excel
- PowerPoint
- 常见图像格式,如 JPG、PNG、TIFF
- Markdown
- 纯文本
文中还提到其“原生支持多达 10 余种主流文档格式”,并带有智能格式检测与标准化转换机制,以便不同来源内容走同一处理流程。
端到端处理链路
RAG-Anything 的完整链路可以概括为:
文档输入 → 多模态解析 → 内容理解 → 知识图谱构建 → 检索问答
这条链路不是概念性口号,原文对每一段都有明确说明:
- 文档输入:接收 PDF、Office、图片、Markdown、纯文本等主流格式。
- 多模态解析:从文档中识别并提取文本块、图像区域、表格布局、数学公式。
- 内容理解:分别对视觉内容、表格、公式、文本进行定制化理解。
- 知识图谱构建:把异构内容统一建模为实体与关系网络,并与向量索引并存。
- 检索问答:联合图谱检索和向量检索,再交给大语言模型生成回答。
原文还给出了更具体的“一键式端到端处理”流程:
原始文档 → 智能解析 → 多模态理解 → 知识图谱构建 → 智能问答
系统架构
原文将 RAG-Anything 归纳为三阶段架构,这是页面必须保留的核心结构。
一、多模态文档解析
这一阶段负责把复杂文档转成可计算、可关联的基础内容单元。原文明确列出四个核心模块:
- 文本提取
- 图像分析
- 公式识别
- 表格解析
其高精度文档解析部分基于 MinerU 2.0 的结构化提取引擎,强调可以:
- 识别文档层次结构
- 自动分割文本块
- 定位图像区域
- 解析表格布局
- 识别数学公式
同时,系统通过标准化中间格式转换来统一不同文档类型的后续处理流程,目标是尽量保留原始语义完整性。
二、跨模态知识构建
这一阶段的重点不是简单存储抽取结果,而是把多模态内容统一建模。原文的关键点包括:
- 构建跨模态知识图谱
- 通过实体关系抽取和多模态融合建立统一图谱表示
- 同时建立向量数据库,形成图谱数据库与向量数据库双重存储
在具体建模方式上,原文提到:
- 将文本段落、图表数据、数学公式等统一抽象为知识实体
- 保留内容信息、来源标识和类型属性
- 自动识别段落间逻辑关系
- 自动识别图文间说明关系
- 自动识别结构化内容间的语义联系
这一步的意义在于打破“信息孤岛”,让图片、表格、公式和文字不再是彼此割裂的块。
三、检索生成
最后一阶段是面向问答的检索生成层。原文明确写到:
- 结合图谱检索和向量检索
- 通过大型语言模型生成精准回答
- 系统整体采用模块化设计,具有可扩展性和灵活性
它不是只做单一路径检索,而是混合利用结构化关系和语义相似性两套机制。
关键技术与能力
深度多模态内容理解
原文指出,系统内置专业化模态处理引擎,对不同内容类型采用不同理解方式:
- 视觉内容分析:集成视觉大模型,自动生成图像描述,并提取图表中的数据关系和视觉要素。
- 表格智能解析:识别表头关系、数据类型、层次结构和逻辑联系,并提炼数据趋势与统计规律。
- 数学公式理解:识别 LaTeX 数学表达式,分析变量含义、公式结构和适用场景。
- 文本语义建模:提供上下文理解能力,并与其他模态统一整合。
这些能力的目标不是把所有模态都“翻译成一段普通文本”,而是在统一表示框架下保留各自的结构和语义特征。