RAG-Anything测评:港大开源的全能RAG框架,真的"万物皆可RAG"吗

RAG-Anything测评:港大开源的全能RAG框架,真的"万物皆可RAG"吗

丢进去一份50页的技术PDF,它能把里面的文字、图表、公式、表格全部理解,然后你随便问它什么都能答上来。听起来很爽,但实际用起来到底怎么样?我用了一天半,把真实场景跑了一遍。


RAG-Anything是什么

一句话:港大HKUDS团队开源的多模态RAG系统,能处理PDF、Office、图片、表格、公式,统一索引后做智能检索。

基于LightRAG构建。如果你用过LightRAG,RAG-Anything可以理解为它的"多模态增强版"------不是在文本RAG上拼一个图片解析插件,而是从底层就为多模态内容设计的。

GitHub仓库:HKUDS/RAG-Anything,今天早上看的时候是786 Star,写着这篇文章的时候又涨了。

为什么值得关注

传统的RAG方案有一个共同的痛点:文档里有表格和图片怎么办?

大多数RAG框架(LangChain、LlamaIndex)处理纯文本没问题,但遇到带表格的技术文档、带公式的研究论文、带图表的商业报告,要么忽略这些内容,要么需要你自己写一堆预处理代码。

RAG-Anything的卖点是:你丢一份PDF进去,它自动处理所有格式的内容,包括图表和公式,然后统一建立索引。

部署实录

环境准备

复制代码
Python 3.10+
显卡:建议有GPU(文档解析阶段会用视觉模型)
硬盘:预留至少10GB(MinerU模型文件比较大)

安装

bash 复制代码
# 最快的方式,pip直接装
pip install 'raganything[all]'

到这里都很顺利。

踩坑一:LibreOffice

如果你要处理Office文档(.docx、.xlsx、.pptx),必须装LibreOffice。

Windows下直接去官网下载安装就行。但有个坑:装完之后要确认环境变量里能找到soffice命令,否则RAG-Anything会报找不到LibreOffice的错误。

踩坑二:MinerU模型下载

RAG-Anything用MinerU做文档解析。第一次使用的时候会自动下载模型,大约4-5GB。国内网络直接下载可能会超时,需要挂代理或者手动下载后放到缓存目录。

踩坑三:API Key

你需要提供OpenAI兼容的API Key(用于LLM推理和Embedding)。如果用OpenAI官方的就直接设置OPENAI_API_KEY。如果想用国产模型,可以通过OPENAI_BASE_URL指向兼容的API端点。

bash 复制代码
# .env 文件
OPENAI_API_KEY=sk-xxxx
OPENAI_BASE_URL=https://api.deepseek.com/v1  # 用DeepSeek的话

三个真实场景测试

场景一:技术文档检索

输入:一份45页的PRD文档(PDF格式,含需求表格、架构图、时序图)

测试方法:丢进去之后,问它一些具体的需求细节问题

复制代码
问题1:用户权限模块支持哪些角色?
问题2:数据导出功能支持哪些格式?
问题3:订单模块的异常处理逻辑是什么?

结果:三个问题都答对了。而且不只是从文字里找答案,表格里的角色权限配置也被正确理解了。

处理时间:45页文档,解析+索引大约用了8分钟(RTX 3060)。

场景二:含图表的技术报告

输入:一份12页的竞品分析报告(PDF,含3个对比表格和2个数据图表)

测试方法

css 复制代码
问题1:表格里A产品和B产品的价格分别是多少?
问题2:哪个产品的月活用户增长最快?

结果:价格信息从表格里准确提取了。但图表类的问题回答得不太理想------它能识别到"图里有一个增长趋势",但具体的数值读不准。

这是RAG-Anything目前的短板:文字和表格的处理很强,但图片/图表的精确数据提取还有提升空间。

场景三:多格式混合批量处理

输入:一个文件夹,里面有:

  • 3个PDF(技术文档)
  • 2个DOCX(会议纪要)
  • 1个XLSX(项目排期表)
  • 若干PNG图片(设计稿截图)
python 复制代码
await rag.process_folder_complete(
    folder_path="./project_docs",
    output_dir="./output",
    file_extensions=[".pdf", ".docx", ".xlsx", ".png"],
    recursive=True,
    max_workers=4
)

结果:所有文件都处理成功了。PDF和DOCX的内容理解很好,XLSX的表格数据也能正确检索。图片(设计稿截图)识别到了,但语义理解比较浅------能描述"这是一个登录页面的设计图",但无法从设计稿中提取交互逻辑。

跟其他RAG方案对比

维度 RAG-Anything LangChain + Unstructured LlamaIndex
文字处理
表格理解 (专用分析器) 一般(需额外配置) 一般
公式解析 支持LaTeX 不支持 不支持
图片理解 中等(VLM增强) 需自己接Vision模型 需自己接
知识图谱 内置(LightRAG) 需自己搭 需自己搭
多格式统一索引 原生支持 需手动编排 需手动编排
上手难度 中等
灵活度 中等(框架定了)

一句话概括:RAG-Anything适合"文档丢进去就能用",LangChain/LlamaIndex适合"每个环节都要自己控制"。

三种查询模式

RAG-Anything提供了三种查询方式,我用下来感受不同:

纯文本查询rag.aquery) 最常用的方式。问一个自然语言问题,它从知识库里找答案。支持四种模式:naive(基础向量检索)、local(局部图谱)、global(全局图谱)、hybrid(混合,推荐用这个)。

VLM增强查询rag.aquery(vlm_enhanced=True)) 回答问题的时候,会把相关的图片也发给视觉语言模型一起分析。适合"这个图表说明了什么"这类问题。但响应速度慢了不少,因为每次查询都要过一遍VLM。

多模态内容查询rag.aquery_with_multimodal) 可以手动传入表格或公式内容,跟问题一起提交。适合你已经知道要查哪个具体表格的场景。

性能实测

在我的测试环境(RTX 3060,16GB内存,i7-12700H)上:

操作 耗时
45页PDF解析+索引 ~8分钟
单次文本查询 2-5秒
VLM增强查询 8-15秒
批量文件夹处理(8个文件) ~18分钟
磁盘占用(45页PDF) ~2.3GB

查询速度可以接受,但磁盘占用比较大。如果你要处理大量文档,存储是个需要提前规划的事。

适合什么场景

适合:

  • 技术文档的知识库搭建(PRD、API文档、架构文档)
  • 学术论文的检索和分析(含公式和图表的论文尤其合适)
  • 企业内部文档管理(会议纪要、项目文档、竞品报告的统一检索)
  • 需要处理表格数据的RAG场景(财务报表、数据报告等)

不太适合:

  • 实时对话场景(索引构建时间长,不适合频繁更新的数据)
  • 纯文本检索场景(杀鸡用牛刀,直接用LangChain更轻量)
  • 对图片精确识别要求高的场景(设计稿、UI截图的语义理解还不够好)

写在最后

RAG-Anything解决了一个真实存在的痛点:大多数RAG框架对表格和公式的处理太弱了。

它的知识图谱+向量融合的检索方式确实比纯向量检索效果好,特别是当你需要跨文档、跨格式做关联查询的时候。

但它不是万能的。图片理解、部署复杂度、存储开销,这些都是需要你根据实际情况权衡的。

我的建议:如果你的项目里有大量带表格和公式的文档需要做检索,RAG-Anything值得一试。如果主要是纯文本,还是用你熟悉的方案就好。

代码和部署脚本我整理了一份,放在评论区了。


#RAG #知识库 #AI开发 #开源项目 #文档处理

相关推荐
OpenBayes贝式计算1 小时前
教程上新丨Qwen3.6 系列首个开源模型 Agent 编程能力大涨,激活参数仅 3B 超越 Gemma4-31B
人工智能·agent·ai编程
Chengbei111 小时前
红队专属Bing Dork自动化工具,敏感信息侦察效率拉满、自动生成可视化信息泄露审计报告
java·人工智能·安全·web安全·网络安全·自动化·系统安全
掘金一周2 小时前
掘友们,一人说一个你买过夯到爆的东西 | 沸点周刊 4.23
前端·人工智能·后端
AI首席情报员_阿布2 小时前
Numa:用 Rust 从零造一个 DNS 解析器,顺手解决了开发者最头疼的几件事
人工智能·rust·dns
了不起的云计算V2 小时前
2027年信创大考倒计时,联想开天打出“生态+AI”的组合牌
人工智能
财经资讯数据_灵砚智能2 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年4月21日
人工智能·python·信息可视化·自然语言处理·ai编程
电子科技圈2 小时前
IAR作为Qt Group独立BU携两项重磅汽车电子应用开发方案首秀北京车展
开发语言·人工智能·汽车·软件工程·软件构建·代码规范·设计规范
Axis tech2 小时前
Xsens:使用惯性动捕技术研究更安全的足球运动训练
人工智能
淹死在鱼塘的程序猿2 小时前
🚀 告别"一次性聊天":揭秘让 AI 智能体越用越聪明的秘密武器 —— Skills
前端·人工智能·agent