RAG-Anything團隊 投稿量子位 | 公眾號 QbitAI
突破傳統檢索增強生成(RAG)技術的單一文字侷限,實現對文件中文字、圖表、表格、公式等複雜內容的統一智慧理解。
香港大學黃超教授團隊開源多模態智慧處理系統RAG-Anything,將碎片化的資訊孤島轉化為結構化的知識網路,為智慧多模態文件分析開闢了全新技術路徑。

RAG-Anything 是專門針對複雜多模態文件設計的新一代RAG系統,致力於破解現代資訊處理中的多模態理解難題。
系統整合了多模態文件解析、語義理解、知識建模和智慧問答等核心能力,能夠同時處理文字敘述、視覺圖表、結構資料、數學表示式等多樣化內容,構建從原始文件到智慧互動的完整自動化流程,為AI應用的實際落地提供堅實的技術支撐。
RAG系統的技術痛點與發展趨勢
複雜多模態文件的理解
人工智慧正在從只會處理文字發展到能夠理解多種資訊形式,這種變化其實很符合日常工作的實際情況。人們平時接觸的資訊很少是純文字的,更多的是包含圖片、表格、圖表的綜合性文件。這些不同型別的內容——文字說明、影像展示、資料分析、邏輯推理等——相互配合,形成了一個完整的資訊體系。
在各個專業領域裡,多模態內容早就成為主流的資訊傳遞方式。學術論文需要用圖表和公式來展示研究成果,教學材料用圖解讓概念更好理解,財務報告靠各種圖表來展現資料變化,醫療記錄則包含大量的影像和檢測資料。這些視覺化的內容和文字說明互相補充,構成了完整的專業知識框架。
面對如此複雜的資訊形態,傳統的單一文字處理方式已無法滿足現實各類場景的需求。各行業都迫切需要AI系統具備跨模態的綜合理解能力,能夠同時解析文字敘述、影像資訊、表格資料和數學表示式,並建立它們之間的語義關聯,從而為使用者提供準確、全面的智慧分析和問答服務。
現有RAG系統的技術瓶頸
雖然檢索增強生成(RAG)技術在文字問答方面表現不錯,但現有的RAG系統普遍存在明顯的模態侷限。傳統RAG架構主要是為純文字內容設計的,包括文字分塊、向量化編碼、相似性檢索等核心模組,這套技術棧在處理非文字內容時遇到了不少問題:
檢索效果不夠理想:純文字向量沒辦法很好地表達圖表的視覺含義、表格的結構關係和公式的數學意義。當用戶問”圖中的趨勢怎麼樣”或”表格裡哪個資料最大”這類問題時,檢索效果往往不理想。
語義關聯的缺失:文件裡的圖文內容經常相互引用和解釋,但傳統系統建立不了這種跨模態的語義連線,所以給出的答案常常不夠完整或準確。
複雜的工作流:面對包含大量圖表、公式的複雜文件,傳統系統需要多個專用工具配合才能處理,整個流程既複雜又低效,很難適應實際應用的要求。
RAG-Anything的實際應用價值
專案的核心目標
RAG-Anything專案就是為了解決前面提到的這些技術難題而開發的,目標是打造一個完整的多模態RAG系統,讓傳統RAG在處理複雜文件時的各種限制得到有效解決。整個系統採用統一的技術框架,把多模態文件處理從實驗室的概念驗證真正推向可以實際部署的工程化方案。
技術架構的特點
團隊設計了一套端到端的技術棧,包含文件解析、內容理解、知識構建和智慧問答等關鍵功能。在檔案支援上,系統可以處理PDF、Office文件、影像等主流格式。技術上實現了跨模態的統一知識表示和檢索方法,還提供了標準化的API介面和靈活的配置選項。RAG-Anything的定位是作為多模態AI應用的基礎元件,為現有的RAG系統直接提供多模態文件處理功能。
RAG-Anything的技術亮點
RAG-Anything 採用了一系列創新的技術方案和工程方法,在多模態文件處理領域實現了顯著提升:
1 一站式多模態處理流程
團隊構建了完整的自動化處理管道,從文件輸入開始,系統就能智慧識別並準確提取文字、影像、表格、數學公式等各種型別的內容。透過統一的結構化建模方式,實現了從文件解析、語義理解、知識構建到智慧問答的全流程自動化,徹底解決了傳統多工具拼接造成的資訊丟失和效率低下問題。
2. 豐富的檔案格式支援
系統原生相容PDF、Microsoft Office套件(Word/Excel/PowerPoint)、常見影像格式(JPG/PNG/TIFF)以及Markdown、純文字等10多種主流文件格式。內建的智慧格式檢測和標準化轉換功能,保證不同來源的文件都能透過統一的處理流程獲得高質量的解析效果。
3. 全方位內容理解能力
整合了視覺分析、語言理解和結構化資料處理技術,能夠深度理解各類內容。影像分析功能可以提取複雜圖表的語義資訊,表格處理能夠準確識別層次結構和資料關係,LaTeX公式解析確保數學表示式的準確轉換,文字語義建模則提供豐富的上下文理解。
4. 語義關聯網路的構建
利用圖結構來表達實體之間的關係,系統會自動找出文件裡的關鍵元素,並把不同型別的內容連線起來。比如說,它能搞清楚哪張圖對應哪段解釋文字、表格裡的資料和後面的分析結論有什麼關係、數學公式和相關的理論說明是怎麼聯絡的。這樣一來,回答問題的時候就能給出更準確、邏輯更清晰的答案。
-
開放式元件生態架構
整個系統採用外掛式的設計思路,開發者可以根據自己的需要靈活調整和新增功能模組。想要升級視覺識別模型、接入特定行業的文件處理工具,或者調整搜尋和嵌入的演算法,都能透過標準化的介面輕鬆搞定。這樣設計的好處是系統能夠跟上技術的發展步伐,也能靈活應對各種業務場景的變化需求。
RAG-Anything系統架構
RAG-Anything採用了創新的三階段技術架構,解決了傳統RAG系統在處理多模態文件時的技術難題,真正實現了端到端的智慧化處理。
多模態文件解析階段:多模態解析引擎可以處理PDF、Office、影像等各種格式的文件,包括文字提取、影像分析、公式識別和表格解析四個關鍵功能模組。
跨模態知識構建階段:透過實體關係抽取和多模態融合技術,構建跨模態知識圖譜,建立統一的圖譜表示和向量資料庫。
檢索生成階段:結合圖譜檢索和向量檢索的優勢,透過大型語言模型生成準確的回答。整個系統採用模組化設計,具備很強的可擴充套件性和靈活性。

RAG-Anything多模態理解能力
(1) 視覺內容分析:整合視覺大模型,自動生成高質量的影像描述,準確提取圖表中的資料關係和視覺要素。面向統計圖表以及示意圖,系統都能理解其中的關鍵資訊和表達意圖。
(2)表格智慧解析:理解表格的層次結構,自動識別表頭關係、資料型別和邏輯聯絡,提煉資料趨勢和統計規律。即使面對多層巢狀的複雜表格,系統也能準確把握每個資料單元的含義和相互關係。
(3)數學公式理解:識別LaTeX格式的數學表示式,分析變數含義、公式結構和適用場景。系統不僅能識別公式本身,還能理解公式在特定上下文中的作用和意義。
(4)擴充套件模態支援:支援流程圖、程式碼片段、地理資訊等專業內容的智慧識別和語義建模。這種可擴充套件的設計讓系統能夠適應各種專業領域的特殊需求。
不同型別的內容都會透過統一的知識表示框架整合在一起,從而實現跨模態的語義理解和關聯分析。
統一知識圖譜構建
RAG-Anything將多模態內容統一建模為結構化知識圖譜,突破傳統文件處理的資訊孤島問題。
(1)實體化建模:將文字段落、圖表資料、數學公式等異構內容統一抽象為知識實體,保留完整的內容資訊、來源標識和型別屬性。
(2)智慧關係構建:透過語義分析技術,自動識別段落間的邏輯關係、圖文間的說明關係、以及結構化內容間的語義聯絡,構建多層次的知識關聯網路。
(3)高效儲存索引:建立圖譜資料庫和向量資料庫的雙重儲存機制,支援結構化查詢和語義相似性檢索,為複雜問答任務提供強大的知識支撐。
雙重檢索機制
RAG-Anything 採用雙層次檢索問答機制,能夠精準理解複雜問題並提供多維度的回答。這套機制既能抓住細節資訊,又能把握整體語義,提升了系統在多模態文件場景下的檢索範圍和生成質量。
關鍵詞分層提取:RAG-Anything 採用雙層次檢索問答機制,能夠精準理解複雜問題並提供多維度的回答。這套機制既能抓住細節資訊,又能把握整體語義,大幅提升了系統在多模態文件場景下的檢索範圍和生成質量。
在關鍵詞提取層面,系統會同時進行細粒度關鍵詞和概念級關鍵詞的分層提取。細粒度關鍵詞精確定位具體實體、專業術語、資料點等詳細資訊,概念級關鍵詞則把握主題脈絡、分析趨勢、理解抽象概念。
在檢索策略上,系統採用混合檢索方式,透過圖譜結構快速找到相關的實體節點,利用圖譜中的關聯關係挖掘潛在資訊,從語義層面捕獲相關內容,最終把多個來源的資訊整合起來生成準確的智慧回答。透過這種雙層次架構,系統能夠應對從簡單查詢到複雜推理的各種問題。
快速部署指南
RAG-Anything提供兩種便捷的安裝部署方式,適合不同使用者的技術需求。建議使用PyPI安裝方式,一鍵就能快速部署,馬上體驗完整的多模態RAG功能。
安裝方式
選項1:從 PyPI 安裝
pip install raganything
選項2:從原始碼安裝
git clone https://github.com/HKUDS/RAG-Anything.git cd RAG-Anything pip install -e .
多場景應用模式
RAG-Anything採用模組化架構設計,提供兩種靈活的使用方式,不管是快速搭建原型還是正式生產部署,都能找到合適的解決方案。
1. 方式一:一鍵式端到端處理
適用場景:處理完整的PDF、Word、PPT等原始文件,追求零配置、全自動的智慧處理。
核心優勢:
-
全流程自動化:從文件上傳到智慧問答,無需人工干預 -
智慧結構識別:自動檢測標題層次、段落結構、影像位置、表格佈局、數學公式 -
深度內容理解:多模態內容的語義分析和向量化表示 -
知識圖譜自構建:自動生成結構化知識網路和檢索索引
技術流程:原始文件 → 智慧解析 → 多模態理解 → 知識圖譜構建 → 智慧問答
示例程式碼:
import asyncio
from raganything import RAGAnything
from lightrag.llm.openai import openai_complete_if_cache, openai_embed
asyncdefmain():
rag = RAGAnything(
working_dir="./rag_storage",
llm_model_func=..., # LLM
vision_model_func=..., # VLM
embedding_func=..., # 嵌入模型
embedding_dim=3072,
max_token_size=8192
)
# 處理文件並構建圖譜
await rag.process_document_complete(
file_path="your_document.pdf",
output_dir="./output"
)
# 多模態問答查詢
result = await rag.query_with_multimodal("Could you share insights on the experiment results and the associated data tables?", mode="hybrid")
print(result)
asyncio.run(main())
方式二:精細化手動構建
適用場景:已有結構化的多模態內容資料(影像、表格、公式等),需要精確控制處理流程和定製化功能擴充套件。
核心優勢:
-
精確控制:手動指定影像、表格等關鍵內容的處理方式 -
定製化處理:根據特定領域需求調整解析策略 -
增量構建:支援逐步新增和更新多模態內容 -
專業最佳化:針對特定文件型別進行深度最佳化
示例程式碼:
from lightrag import LightRAG
from raganything.modalprocessors import ImageModalProcessor, TableModalProcessor
# 初始化 LightRAG 系統
rag = LightRAG(working_dir="./rag_storage", ...)
# 處理影像內容
image_processor = ImageModalProcessor(lightrag=rag, modal_caption_func=your_vision_model_func)
image_content = {
"img_path": "fig1.jpg",
"img_caption": ["Figure1: RAG-Anything vs Baselines"],
"img_footnote": [""]
}
description, entity_info = await image_processor.process_multimodal_content(
modal_content=image_content,
content_type="image",
file_path="RAG-Anything.pdf",
entity_name="fig1-RAG-Anything vs Baselines"
)
# 處理表格內容
table_processor = TableModalProcessor(lightrag=rag, modal_caption_func=your_llm_model_func)
table_content = {
"table_body": """
| Methods | Accuracy | F1 |
|------|--------|--------|
| RAGAnything | 95.2% | 0.94 |
| Baseline | 87.3% | 0.85 |
""",
"table_caption": ["Table1: RAG-Anything vs Baselines"],
"table_footnote": ["Dataset-A"]
}
description, entity_info = await table_processor.process_multimodal_content(
modal_content=table_content,
content_type="table",
file_path="RAG-Anything.pdf",
entity_name="tab1-RAG-Anything vs Baselines"
)
技術演進與應用拓展
RAG-Anything在推理能力上還有不少改進空間,比如讓系統能夠進行更復雜的邏輯分析,處理跨模態資訊的深層關聯,甚至可以嘗試加入推理過程的視覺化展示和證據追蹤功能。在具體應用場景中,也有很多有趣的方向可以探索,像是更準確地解析學術論文裡的複雜圖表、自動提取財務報表中的關鍵資料、識別工程圖紙的結構細節,或者幫助整理醫療文件中的重要資訊。
另一個值得關注的是,RAG-Anything作為構建智慧Agent的基礎技術,可以為各種AI應用提供強大的多模態處理能力。如何讓Agent更聰明地理解現實世界的複雜資訊,在真實的業務場景中派上用場,這些都是很有挑戰性的技術問題。隨著這些技術的逐步完善,開發者應該能夠更輕鬆地打造出符合自己需求的智慧工具。
專案地址:https://github.com/HKUDS/RAG-Anything實驗室主頁: https://sites.google.com/view/chaoh
一鍵三連「點贊」「轉發」「小心心」
歡迎在評論區留下你的想法!
— 完 —

🌟 點亮星標 🌟