一个框架处理所有文档格式:RAG-Anything 是什么?
一个框架处理所有文档格式:RAG-Anything 是什么?
当传统 RAG 还在挣扎着处理纯文本,有人已经实现了图文表格公式的统一检索。
一、它解决什么问题
传统 RAG 的流程:文档转纯文本 → 分块 → 向量化 → 检索。
问题在哪?
当你的问题是”这个图表展示的趋势是什么”,传统 RAG 只能找到一些文字描述,无法理解图表本身。
RAG-Anything 的思路:不是把文档转成纯文本,而是保留原始模态,让每种内容都走自己的处理通道。
二、核心架构:多模态流水线
文档解析 → 内容分析 → 知识图谱 → 智能检索
1. 文档解析
支持:PDF、Office 文档、图片、TXT、Markdown。
核心技术是 MinerU 集成——高保真文档结构提取,保留原始布局和语义关系。
2. 内容分析
自动分类内容类型,走不同处理通道:
• 视觉内容分析器:VLM 分析图片,生成描述 caption
• 结构化数据解释器:处理表格,识别数据趋势
• 数学表达式解析器:解析 LaTeX,建立公式知识关联
• 可扩展模态处理器:支持自定义内容类型的插件框架
3. 知识图谱
建立多模态知识图谱,不是只建文本向量:
• 提取多模态实体
• 建立跨模态关系(文字↔图片↔表格↔公式)
• 保留层次结构(belongs_to 关系链)
• 加权关系评分
4. 混合检索
• Vector-Graph Fusion:语义嵌入 + 结构关系双重检索
• Modality-Aware Ranking:根据查询类型调整内容排名
• Relational Coherence:保证检索结果的关联一致性
三、和传统 RAG 的区别
| 特性 | RAG-Anything | 传统 Text RAG |
|---|---|---|
| 表格处理 | ✅ 结构化解析 | ❌ 纯文本 |
| 图表理解 | ✅ VLM 分析 | ❌ 无 |
| 公式处理 | ✅ LaTeX 原生 | ❌ 乱码 |
| 知识图谱 | ✅ 跨模态关系 | ❌ 仅文本向量 |
| 多模态查询 | ✅ | ❌ |
四、基于 LightRAG
RAG-Anything 基于 LightRAG 构建——HKUDS 的另一个开源项目,冲过 10k stars 的项目。
LightRAG 的特点:轻量、快速、支持图结构检索。RAG-Anything 在此基础上扩展了多模态能力。
五、适合谁用?
适合:
• 处理复杂文档的开发者(论文、财报、技术文档)
• 需要理解图表/表格/公式的 RAG 应用
• 学术研究(处理 LaTeX 论文)
• 企业知识管理(处理混合内容文档)
不太适合:
• 纯文本文档(用传统 RAG 即可,overkill)
六、安装使用
# pip 安装
pip install raganything
pip install 'raganything[all]' # 完整版
# 代码使用
from raganything import RAGAnything, RAGAnythingConfig
config = RAGAnythingConfig(
parser="mineru",
enable_image_processing=True,
enable_table_processing=True,
enable_equation_processing=True,
)
rag = RAGAnything(config=config, ...)
# 处理文档
await rag.process_document_complete("document.pdf")
# 多模态查询
result = await rag.aquery_with_multimodal("解释这个公式", image_data=...)
📋 文章信息
• 字数:约 1300 字
• 阅读时间:3 分钟
• 参考资料:GitHub / HKUDS/RAG-Anything
夜雨聆风