
<a href='https://github.com/HKUDS/RAG-Anything'><img src='https://img.shields.io/badge/🔥项目-主页-00d9ff?style=for-the-badge&logo=github&logoColor=white&labelColor=1a1a2e'></a>
<a href='https://arxiv.org/abs/2510.12323'><img src='https://img.shields.io/badge/📄arXiv-2510.12323-ff6b6b?style=for-the-badge&logo=arxiv&logoColor=white&labelColor=1a1a2e'></a>
<a href='https://github.com/HKUDS/LightRAG'><img src='https://img.shields.io/badge/⚡基于-LightRAG-4ecdc4?style=for-the-badge&logo=lightning&logoColor=white&labelColor=1a1a2e'></a>
<a href="https://github.com/HKUDS/RAG-Anything/stargazers"><img src='https://img.shields.io/github/stars/HKUDS/RAG-Anything?color=00d9ff&style=for-the-badge&logo=star&logoColor=white&labelColor=1a1a2e' /></a>
<img src="https://img.shields.io/badge/🐍Python-3.10-4ecdc4?style=for-the-badge&logo=python&logoColor=white&labelColor=1a1a2e">
<a href="https://pypi.org/project/raganything/"><img src="https://img.shields.io/pypi/v/raganything.svg?style=for-the-badge&logo=pypi&logoColor=white&labelColor=1a1a2e&color=ff6b6b"></a>
<a href="https://discord.gg/yF2MmDJyGJ"><img src="https://img.shields.io/badge/💬Discord-社区-7289da?style=for-the-badge&logo=discord&logoColor=white&labelColor=1a1a2e"></a>
<a href="https://github.com/HKUDS/RAG-Anything/issues/7"><img src="https://img.shields.io/badge/💬微信群-交流-07c160?style=for-the-badge&logo=wechat&logoColor=white&labelColor=1a1a2e"></a>
<a href="https://github.com/HKUDS/RAG-Anything/raw/v1.3.1/README_zh.md"><img src="https://img.shields.io/badge/🇨🇳中文版-1a1a2e?style=for-the-badge"></a>
<a href="https://github.com/HKUDS/RAG-Anything/raw/v1.3.1/README.md"><img src="https://img.shields.io/badge/🇺🇸English-1a1a2e?style=for-the-badge"></a>

|
|
下一代多模态智能
RAG-Anything是一个综合性多模态文档处理RAG系统。该系统能够无缝处理和查询包含文本、图像、表格、公式等多模态内容的复杂文档,提供完整的检索增强(RAG)生成解决方案。

RAG-Anything 采用灵活的分层架构设计,实现多阶段多模态处理流水线,将传统RAG系统扩展为支持异构内容类型的综合处理平台。
📄
文档解析
→
🧠
内容分析
→
🔍
知识图谱
→
🎯
智能检索
该系统构建了高精度文档解析平台,通过结构化提取引擎实现多模态元素的完整识别与提取。系统采用自适应内容分解机制,智能分离文档中的文本、图像、表格、公式等异构内容,并保持其语义关联性。同时支持PDF、Office文档、图像等主流格式的统一处理,提供标准化的多模态内容输出。
核心组件:
⚙️ 结构化提取引擎:集成 MinerU 文档解析框架,实现精确的文档结构识别与内容提取,确保多模态元素的完整性和准确性。
🧩 自适应内容分解机制:建立智能内容分离系统,自动识别并提取文档中的文本块、图像、表格、公式等异构元素,保持元素间的语义关联关系。
📁 多格式兼容处理:部署专业化解析器矩阵,支持PDF、Office文档系列(DOC/DOCX/PPT/PPTX/XLS/XLSX)、图像等主流格式的统一处理与标准化输出。
该多模态内容处理系统通过自主分类路由机制实现异构内容的智能识别与优化分发。系统采用并发多流水线架构,确保文本和多模态内容的高效并行处理,在最大化吞吐量的同时保持内容完整性,并能完整提取和保持原始文档的层次结构与元素关联关系。
核心组件:
🎯 自主内容分类与路由:自动识别、分类并将不同内容类型路由至优化的执行通道。
⚡ 并发多流水线架构:通过专用处理流水线实现文本和多模态内容的并发执行。这种方法在保持内容完整性的同时最大化吞吐效率。
🏗️ 文档层次结构提取:在内容转换过程中提取并保持原始文档的层次结构和元素间关系。
系统部署了面向异构数据模态的模态感知处理单元:
专用分析器:
提取视觉元素间的空间关系和层次结构
📊 结构化数据解释器:
识别多个表格数据集间的语义关系和依赖性
📐 数学表达式解析器:
建立数学方程与领域特定知识库间的概念映射
🔧 可扩展模态处理器:
多模态知识图谱构建模块将文档内容转换为结构化语义表示。系统提取多模态实体,建立跨模态关系,并保持层次化组织结构。通过加权相关性评分实现优化的知识检索。
核心功能:
🔍 多模态实体提取:将重要的多模态元素转换为结构化知识图谱实体。该过程包括语义标注和元数据保存。
🔗 跨模态关系映射:在文本实体和多模态组件之间建立语义连接和依赖关系。通过自动化关系推理算法实现这一功能。
🏗️ 层次结构保持:通过"归属于"关系链维护原始文档组织结构。这些关系链保持逻辑内容层次和章节依赖关系。
⚖️ 加权关系评分:为关系类型分配定量相关性分数。评分基于语义邻近性和文档结构内的上下文重要性。
混合检索系统结合向量相似性搜索与图遍历算法,实现全面的内容检索。系统实现模态感知排序机制,并维护检索元素间的关系一致性,确保上下文集成的信息传递。
检索机制:
🔀 向量-图谱融合:集成向量相似性搜索与图遍历算法。该方法同时利用语义嵌入和结构关系实现全面的内容检索。
📊 模态感知排序:实现基于内容类型相关性的自适应评分机制。系统根据查询特定的模态偏好调整排序结果。
🔗 关系一致性维护:维护检索元素间的语义和结构关系。确保信息传递的连贯性和上下文完整性。
启动您的AI之旅

# 基础安装
pip install raganything
# 安装包含扩展格式支持的可选依赖:
pip install 'raganything[all]' # 所有可选功能
pip install 'raganything[image]' # 图像格式转换 (BMP, TIFF, GIF, WebP)
pip install 'raganything[text]' # 文本文件处理 (TXT, MD)
pip install 'raganything[image,text]' # 多个功能组合
git clone https://github.com/HKUDS/RAG-Anything.git
cd RAG-Anything
pip install -e .
# 安装可选依赖
pip install -e '.[all]'
[image] - 启用BMP、TIFF、GIF、WebP图像格式处理(需要Pillow)[text] - 启用TXT和MD文件处理(需要ReportLab)[all] - 包含所有Python可选依赖⚠️ Office文档处理配置要求: - Office文档 (.doc, .docx, .ppt, .pptx, .xls, .xlsx) 需要安装 LibreOffice - 从LibreOffice官网下载安装 - Windows:从官网下载安装包 - macOS:
brew install --cask libreoffice- Ubuntu/Debian:sudo apt-get install libreoffice- CentOS/RHEL:sudo yum install libreoffice
检查MinerU安装:
# 验证安装
mineru --version
# 检查是否正确配置
python -c "from raganything import RAGAnything; rag = RAGAnything(); print('✅ MinerU安装正常' if rag.check_parser_installation() else '❌ MinerU安装有问题')"
模型在首次使用时自动下载。手动下载参考MinerU模型源配置:
```python 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
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
):
# 如果提供了messages格式(用于多模态VLM增强查询),直接使用
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="path/to/your/document.pdf",
output_dir="./output",
parse_method="auto"
)
# 查询处理后的内容
# 纯文本查询 - 基本知识库搜索
text_result = await rag.aquery(
"文档的主要内容是什么?",
mode="hybrid"
)
print("文本查询结果:", text_result)
# 多模态查询 - 包含具体多模态内容的查询
multimodal_result = await rag.aquery_with_
$ claude mcp add RAG-Anything \
-- python -m otcore.mcp_server <graph>