还在为处理"图文混排"的文档头疼?这个开源项目让你的AI智能助手"睁眼看世界"
开源链接:https://github.com/HKUDS/RAG-Anything
亲爱的读者朋友,如果你喜欢这篇深度技术解读,别忘了关注我们的公众号哦!你们的每一个关注、点赞、收藏和评论,都是我们持续创作的最大动力~💪
最近AI圈子里有个词特别火——”多模态”。说得直白点,就是让AI不仅能读懂文字,还能理解图片、表格、公式这些”非文本”内容。
但问题来了:你想让AI帮你检索一份包含大量图表、公式的技术文档,结果它只能”看见”文字部分,图片、表格统统变成”盲区”。这不等于睁眼瞎吗?
好消息是,香港大学数据科学研究院团队开源了一个叫 RAG-Anything 的项目,专门解决这个痛点。简单说,它能让AI真正实现”全能阅读”——文字、图片、表格、公式,统统不在话下。
✨ 这个项目的亮点,值得你花5分钟了解
1️⃣ 真·全格式支持
别再担心格式兼容问题了!这个项目支持:
-
📄 PDF文档 -
📝 Office全家桶(Word、Excel、PPT) -
🖼️ 各类图片格式(JPG、PNG、BMP、TIFF、GIF、WebP) -
📊 结构化表格 -
📐 复杂数学公式(支持LaTeX)
一句话:你有的格式,它都能吃。
2️⃣ 双解析引擎,灵活切换
集成了两大文档解析神器:
- MinerU
:高精度结构化解析,适合复杂排版文档 - Docling
:轻量级快速解析,适合简单文档
就像给你配了两个专业翻译官,你可以根据文档类型”按需点将”。
3️⃣ 多模态内容分析引擎
这才是核心黑科技!系统针对不同内容类型部署了专用处理器:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4️⃣ 知识图谱索引,检索更智能
不是简单地把文档”塞进去”,而是构建多模态知识图谱:
-
🔍 提取跨模态实体(文字描述图片,图片补充文字) -
🔗 建立语义关联(表格数据与文字说明的关系) -
🏗️ 保持文档结构层次 -
⚖️ 加权评分优化检索结果
5️⃣ VLM增强查询模式
这是最新上线的重磅功能!当你的文档包含图片时,系统会自动把图片+文本一起喂给VLM(视觉语言模型),让AI”边看边思考”,提供更精准的答案。
6️⃣ 批量处理,效率起飞
支持并发控制的批量处理,企业级数据迁移也不怕慢。
🛠️ 实际部署步骤(手把手教学)
好了,说了这么多,怎么用起来?别急,跟着我的步骤来,10分钟就能跑通。
1️⃣ 安装项目
# 方式一:直接从PyPI安装(推荐)pip install raganything# 如果需要处理图片和文本文件pip install 'raganything[image,text]'# 方式二:从源码安装git clone https://github.com/HKUDS/RAG-Anything.gitcd RAG-Anythingpip install -e .
2️⃣ 安装必备依赖
处理Office文档需要安装LibreOffice:
# macOSbrew install --cask libreoffice# Ubuntu/Debiansudo apt-get install libreoffice# CentOS/RHELsudo yum install libreoffice# Windows用户直接去官网下载安装包
3️⃣ 准备API密钥
项目支持多种LLM模型,你需要准备好OpenAI格式的API密钥(也可以用LM Studio、DeepSeek等兼容接口)。
4️⃣ 创建处理脚本
创建一个demo.py文件:
import asynciofrom raganything import RAGAnything, RAGAnythingConfigfrom lightrag.llm.openai import openai_complete_if_cache, openai_embedfrom lightrag.utils import EmbeddingFuncasync def main(): # 配置API api_key = "你的API密钥" base_url = "你的API地址" # 可选 # 创建配置 config = RAGAnythingConfig( working_dir="./rag_storage", # 存储目录 parser="mineru", # 解析器选择 parse_method="auto", # 解析方法 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, ) # 定义嵌入函数 embedding_func = EmbeddingFunc( embedding_dim=3072, max_token_size=8192, func=lambda texts: openai_embed( texts, model="text-embedding-3-large", api_key=api_key, base_url=base_url, ), ) # 初始化RAGAnything rag = RAGAnything( llm_model_func=llm_model_func, embedding_func=embedding_func, config=config, ) # 插入文档 await rag.ainsert("你的文档路径.pdf") # 查询 result = await rag.aquery("你的问题") print(result)if __name__ == "__main__": asyncio.run(main())
5️⃣ 运行并测试
python demo.py
搞定!现在你可以用多模态文档来查询了。
💡 实际应用场景(举几个栗子)
场景一:企业知识库智能检索
想象一下,你公司的技术文档库里有上千份PDF,每份都包含大量的架构图、数据表格、数学公式。用传统搜索工具,这些图表和公式都是”隐形”的。
现在用RAG-Anything,你可以问:”帮我找出Q3季度的性能优化方案中的关键数据对比”,系统会同时检索文字说明和相关数据表格,给出精准答案。
场景二:学术文献深度分析
科研党福音!上传几十篇论文,然后问:”这几篇论文里关于注意力机制的改进方案有哪些异同?”系统不仅会总结文字描述,还会提取相关公式和对比表格,帮你快速梳理核心观点。
场景三:智能客服升级
产品说明书和技术文档里往往包含大量示意图、操作流程图。传统的客服机器人只能回复文字描述,现在可以”看图说话”,更准确地解答用户问题。
📄 开源协议
本项目采用 MIT 协议开源。
📝 免责声明
本文基于开源项目RAG-Anything的技术文档整理而来,仅供学习交流使用。项目版权归HKUDS团队所有。本公众号不对代码使用产生的任何后果承担责任。建议大家在使用前仔细阅读项目官方文档。
欢迎在评论区积极探讨AI技术的实际落地!无论是当前项目的技术研究,还是你的实践经验,都欢迎分享交流~💬
关注公众号后回复关键词**”工作流”**,可获取我们搜集整理的免费AI学习资源包!
夜雨聆风
