RAG-Anything
全合一多模态 RAG 框架,让 AI 像人类一样理解文档中的文字、图片、表格和公式
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
全合一多模态 RAG 框架,让 AI 像人类一样理解文档中的文字、图片、表格和公式
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样的场景:你是某投资机构的分析师,需要快速梳理一份 300 页的年报。年报里既有文字段落,也有财务报表中的复杂表格,还有管理层用来解释业绩的折线图,以及历史上某次并购的扫描件 PDF。传统的纯文本 RAG 系统——只能理解文字——在这份年报面前彻底失明,它读不出图表的含义,看不懂公式的逻辑,更无法理解图片里到底展示的是什么内容。
RAG-Anything 解决的就是这个问题。它是一个全合一(All-in-One)多模态 RAG 框架,让 AI 能够像人类一样,真正理解一份文档里的所有内容形态:文字、图片、表格、公式、图表,以及它们之间的上下文关系。2025 年 6 月发布,仅用 3 个月就在 GitHub 收获 5000+ stars,目前已达到 20,000+ stars,成为多模态 RAG 领域最受关注的开源项目之一。
RAG-Anything 由香港大学(HKU)的研究团队开发,论文发表于 arXiv(arXiv:2510.12323),作者为 Zirui Guo 等人。项目最初定位为学术研究框架,用于探索多模态文档处理的最优范式。但随着开源社区的热烈响应,逐渐演变为一套完整的工业级解决方案。
项目的核心理念是"大一统":不依赖多个独立工具拼接,而是用一套统一的 Pipeline 处理所有类型的内容。这与当前 RAG 领域普遍存在的"工具碎片化"问题形成了鲜明对比——很多团队为了处理多模态文档,需要组合使用 PDF 解析器、OCR 工具、图像理解 API、表格解析器等多个组件,维护成本极高。RAG-Anything 则将这些能力全部整合在一个框架内。
RAG-Anything 的技术架构建立在港大自研的 LightRAG 基础之上,LightRAG 是一种融合了双图结构(文本图 + 知识图)的检索增强生成框架,能够同时兼顾检索的速度和全局上下文理解能力。
RAG-Anything 在此基础上实现了四层处理 Pipeline:
第一层:智能文档解析。 RAG-Anything 内置了 MinerU 2.0 作为默认解析引擎,支持 PDF、Word、Excel、图片等多种文件格式。MinerU 能够将一份 PDF 文档分解为文本段落、表格、公式、图片块等多个内容单元,每个单元附带元数据(所在页码、坐标位置等),保留原始文档的结构信息。
第二层:自适应内容分解。 解析后的内容并非一股脑塞给 AI,而是经过"自适应分解"处理。系统自动识别内容类型——这是纯文本段落、这是一张表格、这是一张图片、这是数学公式——并为每种类型选择最优的处理策略。表格会被还原为 Markdown 结构,公式会识别为 LaTeX 或纯文本,图片则提取为独立单元。
第三层:多模态内容理解。 这是 RAG-Anything 的灵魂所在。分解后的非文本内容(图片、复杂表格、公式)会被编码后与视觉语言模型(VLM)交互。支持的 VLM 包括 OpenAI GPT-4V、Anthropic Claude Vision、以及国产的 Qwen2-VL 等。VLM 会为图片生成详细的描述文本(caption),为复杂表格生成结构化说明,为公式生成语义解释。这些多模态内容描述随后与原始文本一起被存入 LightRAG 的双图结构中。
第四层:跨模态检索与生成。 用户提问时,系统支持纯文本查询和多模态查询两种模式。纯文本查询(aquery)直接在文本向量空间检索;多模态查询(aquery_with_multimodal)则可以将用户提供的图片与文档图片库进行跨模态匹配——用户上传一张截图,系统找到与截图最相关的文档区域并给出答案。这对于企业知识库、医疗影像分析、法律文档比对等场景尤为实用。
从代码组织来看,RAG-Anything 的设计质量相当高:
• 模块化解析器架构:parser.py 实现了一套通用的解析器抽象层(Parser 基类 + MineruParser/ Docling/ PaddleOCR 等具体实现),支持运行时注册自定义解析器。新增一种文档格式的支持,只需要实现 Parser 接口即可,无需改动核心逻辑。
• 多模态处理器插件化:modalprocessors.py 为每种内容类型实现了独立的处理器(ImageModalProcessor、TableModalProcessor、EquationModalProcessor 等),各自维护独立的 prompt 模板(prompt.py)。切换内容理解策略,只需替换对应的 processor,无需重写查询逻辑。
• 配置管理与环境变量集成:config.py 使用 dataclass + 环境变量 fallback 模式(WORKING_DIR、OPENAI_API_KEY 等),部署时通过 .env 文件注入配置,代码本身不硬编码密钥。
• 容错与批处理:resilience.py 和 batch.py 分别处理错误重试和批量文档处理,支持断点续传和并行解析,适合大规模文档入库场景。
RAG-Anything 主要通过 Python API 使用(无独立 Web UI),安装非常简洁:pip install raganything。
基本使用只需几行代码:初始化 RAGAnything 实例,调用 ingest() 方法解析文档(PDF、图片、Word 均可),然后用 aquery() 进行纯文本查询,或用 aquery_with_multimodal() 进行多模态查询(附带用户截图)。文档解析支持 MinerU(默认)、Docling、PaddleOCR 等多种后端,通过 parser 参数指定。批处理模式支持并行处理多个文件,适合构建企业级知识库。
使用门槛主要集中在两点:一是需要准备支持 VLM 推理的 API Key(OpenAI GPT-4V、Claude 等,调用量决定成本);二是需要在有 GPU 的机器上运行(VLM 推理对显存有较高要求,16GB VRAM 为推荐配置)。纯文本场景下,CPU 也能运行,但速度较慢。
RAG-Anything 也不是完美的解决方案,需要正视以下问题:
1. 依赖闭源 VLM API。 图片理解依赖 GPT-4V/Claude 等闭源 API,不仅产生 API 调用费用(图文混合文档的处理量通常较大),还面临数据隐私问题——文档内容会上传到第三方服务器。如果处理的是企业内部敏感文档,这可能是一个合规风险。
2. GPU 资源门槛。 虽然文本解析可以在 CPU 上运行,但多模态理解(VLM 推理)必须 GPU 支持。16GB+ VRAM 的要求对于个人开发者或小团队来说,硬件成本不低。
3. 处理速度。 多模态 Pipeline 的端到端延迟显著高于纯文本 RAG。处理一份 100 页的复杂年报,VLM 理解所有图片可能需要数分钟甚至更长。
4. 表格和公式解析质量依赖 MinerU。 MinerU 2.0 对中文 PDF 的解析效果不错,但对扫描件、特殊排版文件的解析仍存在局限。
RAG-Anything 的爆发式增长(3 个月 5K stars,至今 20K+)背后,是整个行业对多模态 RAG 解决方案的迫切需求。传统的 RAG 系统只能处理纯文本,在企业知识管理、财务分析、学术文献综述等场景中,实际上只能覆盖文档内容的 40%~60%。
RAG-Anything 的价值在于:它把多模态内容理解从一项需要专业团队才能完成的工作,变成了一段几行代码就能调用的函数。这降低了多模态 RAG 的技术门槛,让更多开发者能够快速构建支持图文混合检索的智能应用。
从技术趋势看,多模态 RAG 将成为企业 AI 应用的新标准。随着 VLM 成本持续下降、开源 VLM(如 Qwen2-VL)能力持续提升,让 AI 读懂整份文档将从奢侈品变为基础设施。RAG-Anything 正是这一趋势的代表性作品。