返回广场

RAG-Anything:一个框架搞定PDF、表格、公式、图片的多模态RAG检索

RAG-Anything:一个框架搞定PDF、表格、公式、图片的多模态RAG检索 你是不是也被这些问题折磨过? 领导甩来一份50页的PDF报告,让你半小时内提炼核心结论;学术论文里密密麻麻的数学公式和实验数据表格,传统RAG工具一解析全变成乱码;产品经理扔过来一份PPT加上Excel数

RAG-Anything:一个框架搞定PDF、表格、公式、图片的多模态RAG检索

你是不是也被这些问题折磨过?

领导甩来一份50页的PDF报告,让你半小时内提炼核心结论;学术论文里密密麻麻的数学公式和实验数据表格,传统RAG工具一解析全变成乱码;产品经理扔过来一份PPT加上Excel数据表,问你"这些数据说明了啥"——你打开一看,图片、表格、公式混在一起,现有的RAG方案根本搞不定。市面上的RAG框架大多只能处理纯文本,遇到多模态内容就抓瞎,要么丢信息,要么直接报错。香港大学HKUDS团队开源的RAG-Anything,就是为解决这个问题而生的。

项目是什么?

RAG-Anything是一个基于LightRAG构建的All-in-One多模态RAG框架,提供从文档解析到多模态查询的完整流水线,能同时处理文本、图片、表格、数学公式等多种内容类型,并通过知识图谱+向量融合检索实现精准问答。

核心功能一览

  • 端到端多模态处理:从文档输入到多模态查询输出,一条流水线走完,不用自己拼凑工具链
  • 多格式文档支持:PDF、Office全家桶(DOC/DOCX/PPT/PPTX/XLS/XLSX)、常见图片格式(JPG/PNG/BMP/TIFF/GIF/WebP)、纯文本(TXT/MD),基本覆盖你能遇到的文档类型
  • 四大多模态内容引擎

- 视觉内容分析器——让AI"看懂"图片 - 结构化数据解释器——让AI"读懂"表格 - 数学表达式解析器——让AI"算明白"公式(支持LaTeX) - 可扩展模态处理器——自定义内容类型,想加啥加啥

  • 多模态知识图谱索引:自动从文档中提取实体、建立跨模态关系,把散落在不同格式里的知识串起来
  • VLM增强查询:文档含图片时,直接调用视觉语言模型(VLM)进行多模态分析,不再只有"文字描述图片"这一条路
  • 多模态内容查询:可以同时用文本、图片、表格、公式进行混合查询,像和人聊天一样自然
  • 向量+图融合检索:向量相似性搜索保"广度",图遍历算法保"深度",两者结合,召回率和准确率兼得
  • 三种解析器可选:MinerU(默认,效果最好)、Docling、PaddleOCR,按需选择
  • 直接内容列表插入:已有解析好的内容?跳过文档解析,直接插入,节省时间
  • 兼容OpenAI API:任何OpenAI兼容的LLM和Embedding都能用,不绑定特定模型

安装步骤

前置条件

  • Python 3.10+
  • 确保有可用的OpenAI兼容API(本地部署或云端均可)

方式一:pip安装(推荐新手)

# 基础安装(仅核心功能)
pip install raganything

# 全功能安装(推荐,包含所有解析器依赖)
pip install 'raganything[all]'

Windows用户注意:如果遇到编译错误,建议先安装Visual C++ Build Tools,或直接用WSL。

方式二:从源码安装(适合需要二次开发的用户)

git clone https://github.com/HKUDS/RAG-Anything.git
cd RAG-Anything

# 安装uv(极速Python包管理器)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 同步依赖
uv sync

Windows用户:uv安装建议用PowerShell:

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Office文档额外依赖

如果你需要处理Office格式文档(DOC/DOCX/PPT/PPTX/XLS/XLSX),还需要安装LibreOffice:

# macOS
brew install --cask libreoffice

# Ubuntu / Debian
sudo apt-get update && sudo apt-get install libreoffice

# Windows
# 前往 https://www.libreoffice.org/download/ 下载安装包,或用Chocolatey:
choco install libreoffice

验证安装

python -c "from raganything import RAGAnything; print('RAG-Anything安装成功!')"

看到"RAG-Anything安装成功!"就说明环境就绪了。

使用方法

1. 端到端文档处理(最常用)

这是最核心的用法:给一个文档,自动完成解析→索引→存储,之后就能查询了。

import asyncio
from raganything import RAGAnything, RAGAnythingConfig
from lightrag.llm.openai import openai_complete_if_cache, openai_embed
from lightrag.utils import EmbeddingFunc

async def main():
    # 第一步:配置
    config = RAGAnythingConfig(
        working_dir="./rag_storage",      # 存储目录,索引文件都在这里
        parser="mineru",                   # 解析器选择:mineru/docling/paddleocr
        parse_method="auto",               # 解析方法:auto自动识别
        enable_image_processing=True,      # 开启图片处理
        enable_table_processing=True,      # 开启表格处理
        enable_equation_processing=True,    # 开启公式处理
    )
    
    # 第二步:初始化RAG引擎
    rag = RAGAnything(
        config=config,
        llm_model_func=openai_complete_if_cache,  # LLM函数
        vision_model_func=openai_complete_if_cache, # 视觉模型函数(可复用LLM)
        embedding_func=EmbeddingFunc(
            embedding_dim=1536,
            max_token_size=8192,
            func=lambda texts: openai_embed(
                texts, model="text-embedding-3-small", base_url="https://api.openai.com/v1"
            )
        ),
    )
    
    # 第三步:处理文档(解析+索引+存储,一次搞定)
    await rag.process_document_complete(
        file_path="./sample_report.pdf",  # 你的文档路径
        output_dir="./output/"             # 中间解析结果输出目录
    )
    
    # 第四步:查询
    result = await rag.aquery("这份报告的核心结论是什么?", mode="hybrid")
    print(result)

asyncio.run(main())

关键参数解释

  • mode="hybrid":混合模式,同时用向量检索和图遍历,效果最好。还有local(仅向量)和global(仅图)模式可选
  • parser="mineru":MinerU是默认解析器,对中文PDF效果优秀;如果遇到问题可以试试doclingpaddleocr

2. 多模态查询(进阶用法)

不止能问纯文本问题,你可以把表格、图片、公式作为查询的一部分:

# 带表格数据的查询——适合"帮我对比一下这组数据"
result = await rag.aquery_with_multimodal(
    "比较这些性能指标,哪个模型表现最好?",
    multimodal_content=[{
        "type": "table",
        "table_data": "| 模型 | 准确率 | F1 | 推理速度 |\n|------|--------|-----|----------|\n| GPT-4 | 92.3 | 91.8 | 45ms |\n| Claude | 91.7 | 90.5 | 38ms |\n| GLM-4 | 90.1 | 89.2 | 42ms |",
        "table_caption": "大模型性能对比表"
    }],
    mode="hybrid"
)
print(result)
# 带图片的查询——适合"这张图里的趋势说明了什么"
result = await rag.aquery_with_multimodal(
    "分析这张图表展示的增长趋势",
    multimodal_content=[{
        "type": "image",
        "image_path": "./charts/revenue_trend.png",
        "image_caption": "2024年各季度营收趋势图"
    }],
    mode="hybrid"
)
print(result)

3. VLM增强查询(文档含图片时必用)

当你的文档里包含图片,用VLM(视觉语言模型)增强可以让AI直接"看到"图片内容,而不只是依赖之前的文字描述:

result = await rag.aquery(
    "文档中的架构图展示了什么?各模块之间是什么关系?",
    mode="hybrid",
    vlm_enhanced=True  # 关键:开启VLM增强
)
print(result)

VLM增强的工作原理:普通的RAG流程遇到图片,只能用图片的文字描述(alt text、caption等)来检索;开启vlm_enhanced=True后,系统会直接把相关图片传给视觉模型去理解,再结合文本信息一起生成回答。这就像从"听别人描述图片"升级到了"自己看图片"。

4. 直接内容插入(已有解析数据时使用)

如果你已经有了解析好的内容(比如从其他系统导出的结构化数据),可以跳过文档解析步骤,直接插入:

contents = [
    {
        "type": "text",
        "content": "深度学习是机器学习的一个子领域,基于人工神经网络的多层结构..."
    },
    {
        "type": "table",
        "table_data": "模型,准确率\nResNet,96.5\nViT,97.2",
        "table_caption": "图像分类模型对比"
    }
]

await rag.insert_content_list(contents)

实际场景举例

场景文档类型怎么用RAG-Anything
学术论文阅读PDF(含公式+图表)用MinerU解析,开启公式和图片处理,用VLM增强查询图表含义
企业年报分析PDF/PPTX开启表格处理提取财务数据,用多模态查询交叉对比
会议纪要整理DOCX直接端到端处理,hybrid模式查询关键决策
产品手册检索PDF(含架构图+流程表)开启VLM增强,对架构图进行视觉理解查询
实验数据分析Excel+PDF表格处理提取数据,结合文本描述做关联查询
教材知识问答PDF(含LaTeX公式)开启公式解析,学生可以问"这个公式的物理意义是什么"
技术文档检索Markdown+图片直接内容插入,用混合检索定位特定API用法

跟同类框架对比

特性RAG-AnythingLangChain RAGLlamaIndex原生LightRAG
多模态文档解析✅ 开箱即用(PDF/Office/图片/文本)❌ 需自配解析器⚠️ 部分支持❌ 仅纯文本
图片理解✅ VLM增强查询⚠️ 需自建pipeline⚠️ 需额外集成❌ 不支持
表格处理✅ 内置结构化数据解释器⚠️ 基础支持⚠️ 基础支持❌ 不支持
公式/LaTeX解析✅ 专用数学表达式解析器❌ 不支持❌ 不支持❌ 不支持
知识图谱索引✅ 自动构建跨模态图谱❌ 纯向量⚠️ 需额外配置✅ 但仅文本
解析器选择✅ 3种可选(MinerU/Docling/PaddleOCR)❌ 自己选自己配⚠️ 有限选择❌ 无解析
混合检索✅ 向量+图融合⚠️ 仅向量⚠️ 仅向量✅ 向量+图
多模态查询✅ 文本+图片+表格+公式❌ 仅文本⚠️ 部分多模态❌ 仅文本
OpenAI兼容✅ 任何兼容API✅ 是✅ 是✅ 是
安装难度简单(pip install一键)中等(需配依赖链)中等简单

一句话总结:RAG-Anything不是又一个RAG框架,它是目前唯一一个能原生处理多模态内容的RAG框架。其他方案要么不支持,要么需要你自己拼凑多个工具。RAG-Anything把文档解析、多模态理解、知识图谱索引、混合检索全部集成了一个All-in-One流水线,开箱即用。

小结

RAG-Anything解决了传统RAG框架只能处理纯文本的核心痛点,让PDF里的公式、PPT里的图表、Excel里的数据、论文里的配图都能被AI正确理解并精准检索。如果你经常需要从多模态文档中提取信息,这个框架值得立刻尝试。

项目地址:https://github.com/HKUDS/RAG-Anything 论文:arXiv 2510.12323

写评论

读者评论

0

暂无评论,来分享你的看法吧

相关推荐

结合当前内容、你的浏览习惯和搜索偏好推荐。