在检索增强生成(RAG)领域,HKUDS 团队一直是重要的开源贡献者。继 LightRAG 之后,他们又重磅推出了一个项目——RAG-Anything。如果说 LightRAG 解决的是“文本知识库”问题,那么 RAG-Anything 则致力于解决“一切文档”的知识库难题——不仅涵盖文本,还包括图片、表格、公式、图表等各类非结构化多模态内容。
一、项目介绍
官方定义
RAG-Anything 的官方定位是 All-in-One Multimodal Document Processing RAG System(一站式多模态文档处理 RAG 系统),它构建于 LightRAG 之上。该项目由香港大学数据科学实验室(HKUDS)的 Zirui Guo 主导研发,采用 MIT 开源协议发布。
核心目标
现代企业文档中充斥着大量多模态内容——文本、图像、表格、公式、图表和多媒体元素,传统纯文本 RAG 系统难以高效处理这类内容。RAG-Anything 正是为了解决这一核心痛点而生:通过一个统一框架处理所有文档类型中的各种内容模态。
项目路线
| 时间节点 | 里程碑 |
|---|---|
| 2025.06 | 项目初始发布 |
| 2025.07 | GitHub 1K ⭐ Stars |
| 2025.07 | 支持多模态查询,无缝处理文本、图像、表格和公式 |
| 2025.08 | 推出 VLM-Enhanced Query 模式,整合视觉语言模型实现深度多模态分析 |
| 2025.10 | 发布技术报告 arXiv:2510.12323 |
| 2026.06 | LightRAG 通过原生集成 RAG-Anything 实现多模态 RAG |
二、支持的文件类型
RAG-Anything 真正实现了“万物皆可解析”,支持的文件类型覆盖了日常办公和科研场景中的绝大多数需求:
| 文件类型 | 格式 | 说明 |
|---|---|---|
| 高保真结构提取 | ||
| Word 文档 | .doc / .docx | 需安装 LibreOffice |
| PowerPoint | .ppt / .pptx | 需安装 LibreOffice |
| Excel 表格 | .xls / .xlsx | 需安装 LibreOffice |
| 图片 | .png, .jpg, .bmp, .tiff, .gif, .webp | 需安装 [image] 可选依赖 |
| 文本文件 | .txt, .md | 需安装 [text] 可选依赖 |
其解析引擎集成了 MinerU(由 OpenDataLab 开发的高保真文档结构提取工具),能够自动将文档拆分为文本块、视觉元素、结构化表格和数学公式,同时保留各元素间的上下文关联关系。
三、为什么重要——从安全行业的一个真实场景说起
现实中的痛点
想象一个渗透测试报告场景。这份 PDF 报告包含:文字描述(漏洞发现、利用过程)、截图证据(SQL 注入回显、XSS 弹窗、命令执行结果)、网络拓扑图(目标网络架构、攻击路径)、表格数据(资产清单、漏洞评分 CVSS)、命令输出(工具执行结果)。传统 RAG 系统只能读取其中的文字部分,而截图、拓扑图、表格中的数据则被完全忽略。
RAG-Anything 的解法
RAG-Anything 的架构通过 5 个阶段解决了这一问题:文档解析 → 高保真提取所有元素;多模态内容理解 → 自动分类并路由到专用处理通道;多模态分析引擎 → 图像分析器、表格解释器、公式解析器协同工作;多模态知识图谱 → 建立跨模态实体关系;模态感知检索 → 向量搜索与图遍历相结合的混合检索。这意味着,一份渗透测试报告中的网络拓扑图截图会被视觉分析器识别,CVSS 评分表会被结构化数据解释器解析,命令输出会被当作代码块处理——所有信息最终汇聚到一个统一的知识图谱中。
适用场景
- 安全行业:渗透测试报告、安全审计文档、威胁情报分析
- 法律行业:合同文档、证据材料(含扫描件)
- 医疗行业:含影像报告的病例文档
- 科研文献:含公式、图表、实验数据的论文
四、与传统方案对比
| 维度 | LangChain | LlamaIndex | GraphRAG | RAG-Anything |
|---|---|---|---|---|
| 多模态支持 | ❌ 需拼接大量组件 | ⚠️ 能力有限 | ❌ 文本为主 | ✅ 原生支持 |
| 图像解析 | 需外接工具 | 有限支持 | ❌ | ✅ 专用视觉分析器 |
| 表格理解 | 需外接工具 | ⚠️ 基础支持 | ❌ | ✅ 结构化数据解释器 |
| 公式解析 | ❌ | ❌ | ❌ | ✅ 原生 LaTeX 支持 |
| 知识图谱 | 无 | 无 | ✅ 但成本高 | ✅ 多模态知识图谱 |
| 配置复杂度 | 高 | 中 | 极高 | 低(开箱即用) |
| 成本 | 中 | 中 | 极高(需大量 Token) | 可控 |
核心优势
RAG-Anything 最大的差异化体现在其 All-in-One 的设计理念:无需在多个工具之间拼凑(LangChain 的方式),无需为多模态能力做额外适配(LlamaIndex 的局限),也无需承担 GraphRAG 那样的高昂成本。一次 pip install,一个 RAGAnything 类,即可搞定一切。
五、实际使用心得
实际体验下来,RAG-Anything 是目前最接近“企业级多模态知识库”的开源方案。
安装体验
# 基础安装
pip install raganything
# 全功能安装
pip install 'raganything[all]'
需要注意:处理 Office 文档需要额外安装 LibreOffice(免费开源),模型在首次使用时会自动下载。
架构亮点
RAG-Anything 的 5 阶段流水线设计值得深入理解:
- 文档解析:基于 MinerU 的高保真结构提取
- 多模态理解:自动内容分类与并发多流水线处理
- 分析引擎:视觉分析器 + 表格解释器 + 公式解析器 + 可扩展处理器
- 知识图谱:多模态实体提取、跨模态关系映射、层次结构保持
- 智能检索:向量-图谱融合 + 模态感知排序
适用建议
- 最适合:文档类型混杂、包含大量图片/表格/公式的场景
- 需注意:Office 文档需要 LibreOffice 支持;首次使用需要下载模型
- 可选解析器:支持 mineru、docling、paddleocr 三种解析器
六、代码示例——真实项目的使用流程
以下代码来自 RAG-Anything 官方示例文件 examples/raganything_example.py,展示了完整的文档处理与多模态查询流程:
import asyncio
from functools import partial
from raganything import RAGAnything, RAGAnythingConfig
from lightrag.llm.openai import openai_complete_if_cache, openai_embed
from lightrag.utils import EmbeddingFunc
async def main():
# 设置 API 配置
api_key = "your-api-key"
base_url = "your-base-url"
# 可选
# 创建 RAGAnything 配置
config = RAGAnythingConfig(
working_dir="./rag_storage",
parser="mineru", # 选择解析器:mineru, docling, paddleocr
parse_method="auto", # 解析方法:auto, ocr, txt
enable_image_processing=True,
enable_table_processing=True,
enable_equation_processing=True,
)
# 定义 LLM 模型函数
def llm_model_func(prompt, system_prompt=None, history_messages=[], **kwargs):
return openai_complete_if_cache(
"gpt-4o-mini",
prompt,
system_prompt=system_prompt,
history_messages=history_messages,
api_key=api_key,
base_url=base_url,
**kwargs,
)
# 定义视觉模型函数用于图像处理
def vision_model_func(prompt, system_prompt=None, history_messages=[],
image_data=None, messages=None, **kwargs):
if messages:
return openai_complete_if_cache(
"gpt-4o", "", system_prompt=None, history_messages=[],
messages=messages, api_key=api_key, base_url=base_url, **kwargs,
)
elif image_data:
return openai_complete_if_cache(
"gpt-4o", "", system_prompt=None, history_messages=[],
messages=[{"role": "system", "content": system_prompt} if system_prompt else None,
{"role": "user", "content": [
{"type": "text", "text": prompt},
{"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{image_data}"}}]}] if image_data else {"role": "user", "content": prompt}],
api_key=api_key, base_url=base_url, **kwargs,
)
else:
return llm_model_func(prompt, system_prompt, history_messages, **kwargs)
# 定义嵌入函数
embedding_func = EmbeddingFunc(
embedding_dim=3072,
max_token_size=8192,
func=partial(openai_embed.func,
model="text-embedding-3-large",
api_key=api_key,
base_url=base_url),
)
# 初始化 RAGAnything
rag = RAGAnything(
config=config,
llm_model_func=llm_model_func,
vision_model_func=vision_model_func,
embedding_func=embedding_func,
)
# 处理文档
await rag.process_document_complete(
file_path="your-document.pdf",
output_dir="./output",
parse_method="auto"
)
# 文本查询
result = await rag.aquery("文档的主要内容是什么?", mode="hybrid")
print(f"Answer: {result}")
# 多模态查询 - 结合表格数据进行检索
multimodal_result = await rag.aquery_with_multimodal(
"请分析这份性能数据并与文档中的类似结果对比",
multimodal_content=[{
"type": "table",
"table_data": """
Method,Accuracy,Processing_Time
RAGAnything,95.2%,120ms
Traditional_RAG,87.3%,180ms
Baseline,82.1%,200ms""",
"table_caption": "性能对比结果",
}],
mode="hybrid",
)
print(f"Answer: {multimodal_result}")
# 多模态查询 - 结合数学公式
equation_result = await rag.aquery_with_multimodal(
"解释这个公式并与文档中的相关概念关联",
multimodal_content=[{
"type": "equation",
"latex": r"F1 = 2 \cdot \frac{precision \cdot recall}{precision + recall}",
"equation_caption": "F1-Score 计算公式",
}],
mode="hybrid",
)
print(f"Answer: {equation_result}")
if __name__ == "__main__":
asyncio.run(main())
代码要点解读
RAGAnythingConfig是核心配置类,支持灵活启用或禁用各模态处理能力- 支持三种解析器(mineru / docling / paddleocr),适配不同文档类型
vision_model_func是独立于llm_model_func的图像处理通道aquery()执行纯文本查询,aquery_with_multimodal()支持注入表格、公式等多模态内容进行联合检索mode="hybrid"表示使用向量搜索与图遍历相结合的混合检索模式
七、核心观点回顾
回顾全文,我们讨论了以下核心要点:
- RAG-Anything 是多模态 RAG 领域的标杆项目,由 HKUDS 团队开发,构建于 LightRAG 之上,定位为 All-in-One 多模态文档处理 RAG 系统。
- 它解决了传统 RAG 系统的根本局限——企业文档中 70% 以上的信息存在于非文本载体(图片、表格、公式)中,传统方案无法有效处理这些内容。
- 统一解析:PDF、Office 文档、图片等一切文件类型,都能统一解析为文本 + 图像 + 表格 + 公式的结构化表示。
- 多模态知识图谱:不仅仅是“搜到内容”,更能建立跨模态的语义关联——让 AI 真正理解图片中的表格、表格旁边的文字、文字中引用的公式之间的逻辑关系。
- 开箱即用:相比 LangChain(需拼接)、LlamaIndex(能力有限)、GraphRAG(成本高昂),RAG-Anything 提供了一站式解决方案。
八、参考与延伸
- GitHub 仓库:https://github.com/HKUDS/RAG-Anything
- 技术报告:arXiv:2510.12323
- PyPI 包:raganything
- 官方示例:examples/raganything_example.py
- 依赖框架:LightRAG、MinerU

