RAG終極框架!港大開源RAG-Anything:統(tǒng)一多模態(tài)知識圖譜
RAG-Anything的核心技術(shù)創(chuàng)新在于構(gòu)建了統(tǒng)一的多模態(tài)知識圖譜架構(gòu),能夠同時處理并關(guān)聯(lián)文檔中的文字內(nèi)容、圖表信息、表格數(shù)據(jù)、數(shù)學(xué)公式等多種類型的異構(gòu)內(nèi)容,解決了傳統(tǒng)RAG系統(tǒng)僅支持文本處理的技術(shù)限制,為多模態(tài)文檔的智能理解提供了新的技術(shù)方案。
項目地址:https://github.com/HKUDS/RAG-Anything
實驗室主頁: https://sites.google.com/view/chaoh
RAG-Anything作為一個專為多模態(tài)文檔設(shè)計的檢索增強生成(RAG)系統(tǒng),專注解決復(fù)雜場景下的智能問答與信息檢索難題。
該系統(tǒng)提供完整的端到端多模態(tài)文檔處理解決方案,能夠統(tǒng)一處理文本、圖像、表格、數(shù)學(xué)公式等多種異構(gòu)內(nèi)容,實現(xiàn)從文檔解析、知識圖譜構(gòu)建到智能問答的全流程自動化,為下一代AI應(yīng)用提供了可靠的技術(shù)基礎(chǔ)。
該項目在開源框架LightRAG的基礎(chǔ)上進行了深度擴展與優(yōu)化,其多模態(tài)處理能力現(xiàn)已獨立演進為RAG-Anything,并將基于此平臺持續(xù)迭代更新。
背景與技術(shù)驅(qū)動
多模態(tài)理解的時代需求
隨著人工智能技術(shù)的快速發(fā)展和大型語言模型能力的顯著提升,用戶對AI系統(tǒng)的期望已經(jīng)從單純的文本處理擴展到對真實世界復(fù)雜信息的全面理解。
現(xiàn)代知識工作者每天面對的文檔不再是簡單的純文本,而是包含豐富視覺元素、結(jié)構(gòu)化數(shù)據(jù)和多媒體內(nèi)容的復(fù)合型信息載體。
這些文檔中往往蘊含著文字描述、圖表分析、數(shù)據(jù)統(tǒng)計、公式推導(dǎo)等多種信息形態(tài),彼此相互補充、共同構(gòu)成完整的知識體系。
在專業(yè)領(lǐng)域的實際應(yīng)用中,多模態(tài)內(nèi)容已成為知識傳遞的主要載體。科研論文中的實驗圖表和數(shù)學(xué)公式承載著核心發(fā)現(xiàn),教育材料通過圖解和示意圖增強理解效果,金融報告依賴統(tǒng)計圖表展示數(shù)據(jù)趨勢,醫(yī)療文檔則包含大量影像資料和檢驗數(shù)據(jù)。
這些豐富的視覺化內(nèi)容與文字描述相互補充,共同構(gòu)成了完整的專業(yè)知識體系。
面對如此復(fù)雜的信息形態(tài),傳統(tǒng)的單一文本處理方式已無法滿足現(xiàn)代應(yīng)用需求。各行業(yè)都迫切需要AI系統(tǒng)具備跨模態(tài)的綜合理解能力,能夠同時解析文字敘述、圖像信息、表格數(shù)據(jù)和數(shù)學(xué)表達式,并建立它們之間的語義關(guān)聯(lián),從而為用戶提供準確、全面的智能分析和問答服務(wù)。
傳統(tǒng)RAG系統(tǒng)的技術(shù)瓶頸
盡管檢索增強生成(RAG)技術(shù)在文本問答領(lǐng)域取得了顯著成功,但現(xiàn)有的RAG系統(tǒng)普遍存在明顯的模態(tài)局限性。
傳統(tǒng)RAG架構(gòu)主要針對純文本內(nèi)容設(shè)計,其核心組件包括文本分塊、向量化編碼、相似性檢索等,這些技術(shù)棧在處理非文本內(nèi)容時面臨嚴重挑戰(zhàn):
- 內(nèi)容理解局限:傳統(tǒng)系統(tǒng)通常采用OCR技術(shù)將圖像和表格強制轉(zhuǎn)換為文本,但這種方式會丟失視覺布局、顏色編碼、空間關(guān)系等重要信息,導(dǎo)致理解質(zhì)量大幅下降。
- 檢索精度不足:純文本向量無法有效表示圖表的視覺語義、表格的結(jié)構(gòu)化關(guān)系和公式的數(shù)學(xué)含義,在面對"圖中的趨勢如何"或"表格中哪個指標最高"等問題時,檢索準確性嚴重不足。
- 上下文缺失:文檔中的圖文內(nèi)容往往存在密切的相互引用和解釋關(guān)系,傳統(tǒng)系統(tǒng)無法建立這種跨模態(tài)的語義關(guān)聯(lián),導(dǎo)致回答缺乏完整性和準確性。
- 處理效率低下:面對包含大量非文本元素的復(fù)雜文檔,傳統(tǒng)系統(tǒng)往往需要多個專用工具配合處理,流程復(fù)雜、效率低下,難以滿足實際應(yīng)用需求。
RAG-Anything的實用價值
RAG-Anything項目針對上述技術(shù)挑戰(zhàn)而設(shè)計開發(fā)。項目目標是構(gòu)建一個完整的多模態(tài)RAG系統(tǒng),解決傳統(tǒng)RAG在處理復(fù)雜文檔時的局限性問題。
系統(tǒng)采用統(tǒng)一的技術(shù)架構(gòu),將多模態(tài)文檔處理從概念驗證階段推進到實際可部署的工程化解決方案。
此外,系統(tǒng)還采用了端到端的技術(shù)棧設(shè)計,覆蓋文檔解析、內(nèi)容理解、知識構(gòu)建和智能問答等核心功能模塊。
在文件格式支持方面,系統(tǒng)兼容PDF、Office文檔、圖像等常見格式。技術(shù)架構(gòu)上,系統(tǒng)實現(xiàn)了跨模態(tài)的統(tǒng)一知識表示和檢索算法,同時提供標準化的API接口和靈活的配置參數(shù)。
RAG-Anything的技術(shù)定位是作為多模態(tài)AI應(yīng)用的基礎(chǔ)組件,為RAG系統(tǒng)提供可直接集成的多模態(tài)文檔處理能力。
RAG-Anything的核心技術(shù)優(yōu)勢
RAG-Anything 通過創(chuàng)新的技術(shù)架構(gòu)和工程實踐,在多模態(tài)文檔處理領(lǐng)域?qū)崿F(xiàn)了顯著突破:
- 端到端多模態(tài)處理架構(gòu)
構(gòu)建完整的自動化處理鏈路,從原始文檔輸入開始,系統(tǒng)能夠智能識別并精確提取文本、圖像、表格、數(shù)學(xué)公式等異構(gòu)內(nèi)容。
通過統(tǒng)一的結(jié)構(gòu)化建模方法,建立從文檔解析、語義理解、知識構(gòu)建到智能問答的全流程自動化體系,徹底解決了傳統(tǒng)多工具拼接帶來的數(shù)據(jù)損失和效率問題。
- 廣泛的文檔格式兼容性
原生支持PDF、Microsoft Office套件(Word/Excel/PowerPoint)、常見圖像格式(JPG/PNG/TIFF)以及Markdown、純文本等多達10余種主流文檔格式。
系統(tǒng)內(nèi)置智能格式檢測和標準化轉(zhuǎn)換機制,確保不同來源的文檔都能通過統(tǒng)一的處理管道獲得一致的高質(zhì)量解析結(jié)果。
- 深度內(nèi)容理解技術(shù)棧
集成視覺、語言語義理解模塊和結(jié)構(gòu)化數(shù)據(jù)分析技術(shù),實現(xiàn)對各類內(nèi)容的深度理解。
圖像分析模塊支持復(fù)雜圖表的語義提取,表格處理引擎能夠準確識別層次結(jié)構(gòu)和數(shù)據(jù)關(guān)系,LaTeX公式解析器確保數(shù)學(xué)表達式的精確轉(zhuǎn)換,文本語義建模則提供豐富的上下文理解能力。
- 多模態(tài)知識圖譜構(gòu)建
采用基于實體關(guān)系的圖結(jié)構(gòu)表示方法,自動識別文檔中的關(guān)鍵實體并建立跨模態(tài)的語義關(guān)聯(lián)。
系統(tǒng)能夠理解圖片與說明文字的對應(yīng)關(guān)系、表格數(shù)據(jù)與分析結(jié)論的邏輯聯(lián)系,以及公式與理論闡述的內(nèi)在關(guān)聯(lián),從而在問答過程中提供更加準確和連貫的回答。
- 靈活的模塊化擴展
基于插件化的系統(tǒng)架構(gòu)設(shè)計,支持開發(fā)者根據(jù)特定應(yīng)用場景靈活配置和擴展功能組件。
無論是更換更先進的視覺理解模型、集成專業(yè)領(lǐng)域的文檔解析器,還是調(diào)整檢索策略和嵌入算法,都可以通過標準化接口快速實現(xiàn),確保系統(tǒng)能夠持續(xù)適應(yīng)技術(shù)發(fā)展和業(yè)務(wù)需求的動態(tài)變化。
RAG-Anything系統(tǒng)架構(gòu)
RAG-Anything基于創(chuàng)新的三階段技術(shù)架構(gòu),突破傳統(tǒng)RAG系統(tǒng)在多模態(tài)文檔處理上的技術(shù)瓶頸,實現(xiàn)真正的端到端智能化處理。
- 多模態(tài)文檔解析通過多模態(tài)解析引擎處理PDF、Office、圖像等格式文檔,包含文本提取、圖像分析、公式識別和表格解析四個核心模塊。
- 跨模態(tài)知識構(gòu)建構(gòu)建跨模態(tài)知識圖譜,通過實體關(guān)系抽取和多模態(tài)融合技術(shù),建立統(tǒng)一的圖譜表示和向量數(shù)據(jù)庫。
- 檢索生成結(jié)合圖譜檢索和向量檢索,通過大型語言模型生成精準回答。系統(tǒng)采用模塊化設(shè)計,具備高度可擴展性和靈活性。
高精度文檔解析技術(shù)
采用基于MinerU 2.0的先進結(jié)構(gòu)化提取引擎,實現(xiàn)對復(fù)雜文檔的智能解析。系統(tǒng)能夠準確識別文檔的層次結(jié)構(gòu),自動分割文本塊、定位圖像區(qū)域、解析表格布局、識別數(shù)學(xué)公式。
通過標準化的中間格式轉(zhuǎn)換,保證不同文檔類型的統(tǒng)一處理流程,最大化保留原始信息的語義完整性。
深度多模態(tài)內(nèi)容理解
統(tǒng)內(nèi)置專業(yè)化的模態(tài)處理引擎,針對不同內(nèi)容類型提供定制化的理解能力:
- 視覺內(nèi)容分析:集成視覺大模型,自動生成高質(zhì)量圖像描述,準確提取圖表中的數(shù)據(jù)關(guān)系和視覺要素。
- 表格智能解析:深度理解表格的層次結(jié)構(gòu),自動識別表頭關(guān)系、數(shù)據(jù)類型和邏輯聯(lián)系,提煉數(shù)據(jù)趨勢和統(tǒng)計規(guī)律。
- 數(shù)學(xué)公式理解:精確識別LaTeX格式的數(shù)學(xué)表達式,分析變量含義、公式結(jié)構(gòu)和適用場景。
- 擴展模態(tài)支持:支持流程圖、代碼片段、地理信息等專業(yè)內(nèi)容的智能識別和語義建模。
所有模態(tài)內(nèi)容通過統(tǒng)一的知識表示框架進行整合,實現(xiàn)真正的跨模態(tài)語義理解和關(guān)聯(lián)分析。
統(tǒng)一知識圖譜構(gòu)建
RAG-Anything將多模態(tài)內(nèi)容統(tǒng)一建模為結(jié)構(gòu)化知識圖譜,突破傳統(tǒng)文檔處理的信息孤島問題。
- 實體化建模:將文本段落、圖表數(shù)據(jù)、數(shù)學(xué)公式等異構(gòu)內(nèi)容統(tǒng)一抽象為知識實體,保留完整的內(nèi)容信息、來源標識和類型屬性。
- 智能關(guān)系構(gòu)建:通過語義分析技術(shù),自動識別段落間的邏輯關(guān)系、圖文間的說明關(guān)系、以及結(jié)構(gòu)化內(nèi)容間的語義聯(lián)系,構(gòu)建多層次的知識關(guān)聯(lián)網(wǎng)絡(luò)。
- 高效存儲索引:建立圖譜數(shù)據(jù)庫和向量數(shù)據(jù)庫的雙重存儲機制,支持結(jié)構(gòu)化查詢和語義相似性檢索,為復(fù)雜問答任務(wù)提供強大的知識支撐。
雙層次檢索問答
RAG-Anything采用雙層次檢索問答機制,以實現(xiàn)對復(fù)雜問題的精準理解與多維響應(yīng)。
該機制同時兼顧 細粒度信息抽取 與 高層語義理解,顯著提升了系統(tǒng)在多模態(tài)文檔場景下的檢索廣度與生成深度。
智能關(guān)鍵詞分層提取:
- 細粒度關(guān)鍵詞:精確定位具體實體、專業(yè)術(shù)語、數(shù)據(jù)點等詳細信息
- 概念級關(guān)鍵詞:把握主題脈絡(luò)、分析趨勢、理解抽象概念
混合檢索策略:
- 精準實體匹配:通過圖譜結(jié)構(gòu)快速定位相關(guān)實體節(jié)點
- 語義關(guān)系擴展:利用圖譜的關(guān)聯(lián)關(guān)系發(fā)現(xiàn)潛在相關(guān)信息
- 向量相似性檢索:捕獲語義層面的相關(guān)內(nèi)容
- 上下文融合生成:整合多源信息,生成邏輯清晰、內(nèi)容準確的智能回答
通過這種雙層次的檢索架構(gòu),系統(tǒng)能夠處理從簡單事實查詢到復(fù)雜分析推理的各類問題,真正實現(xiàn)智能化的文檔問答體驗。
快速部署指南
RAG-Anything提供兩種便捷的安裝部署方式,滿足不同用戶的技術(shù)需求。推薦使用PyPI安裝方式,可實現(xiàn)一鍵快速部署,體驗完整的多模態(tài)RAG功能。
安裝方式
選項1:從PyPI安裝
pip install raganything
pip install raganything
選項2:從源碼安裝
git
clone
https://github.com/HKUDS/RAG-Anything.git
cd
RAG-Anything
pip install -e .
多場景應(yīng)用模式
RAG-Anything基于模塊化架構(gòu)設(shè)計,為不同應(yīng)用場景提供兩種靈活的使用路徑,滿足從快速原型到生產(chǎn)級部署的各類需求:
方式一:一鍵式端到端處理
適用場景:處理完整的PDF、Word、PPT等原始文檔,追求零配置、全自動的智能處理。
核心優(yōu)勢:
- 全流程自動化:從文檔上傳到智能問答,無需人工干預(yù)
- 智能結(jié)構(gòu)識別:自動檢測標題層次、段落結(jié)構(gòu)、圖像位置、表格布局、數(shù)學(xué)公式
- 深度內(nèi)容理解:多模態(tài)內(nèi)容的語義分析和向量化表示
- 知識圖譜自構(gòu)建:自動生成結(jié)構(gòu)化知識網(wǎng)絡(luò)和檢索索引
技術(shù)流程: 原始文檔 → 智能解析 → 多模態(tài)理解 → 知識圖譜構(gòu)建 → 智能問答
示例代碼:
import asyncio
from raganything import RAGAnything
from lightrag.llm.openai import openai_complete_if_cache, openai_embed
async def main():
rag = RAGAnything(
working_dir="./rag_storage",
llm_model_func=..., # LLM
vision_model_func=..., # VLM
embedding_func=..., # 嵌入模型
embedding_dim=3072,
max_token_size=8192
)
# 處理文檔并構(gòu)建圖譜await rag.process_document_complete(
file_path="your_document.pdf",
output_dir="./output"
)
# 多模態(tài)問答查詢
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())
方式二:精細化手動構(gòu)建
適用場景:已有結(jié)構(gòu)化的多模態(tài)內(nèi)容數(shù)據(jù)(圖像、表格、公式等),需要精確控制處理流程和定制化功能擴展。
核心優(yōu)勢:
- 精確控制:手動指定圖像、表格等關(guān)鍵內(nèi)容的處理方式
- 定制化處理:根據(jù)特定領(lǐng)域需求調(diào)整解析策略
- 增量構(gòu)建:支持逐步添加和更新多模態(tài)內(nèi)容
- 專業(yè)優(yōu)化:針對特定文檔類型進行深度優(yōu)化
示例代碼:
from lightrag import LightRAGfrom raganything.modalprocessors import ImageModalProcessor, TableModalProcessor# 初始化 LightRAG 系統(tǒng)rag = LightRAG(working_dir="./rag_storage", ...)# 處理圖像內(nèi)容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_cnotallow=image_content, content_type="image", file_path="RAG-Anything.pdf", entity_name="fig1-RAG-Anything vs Baselines")# 處理表格內(nèi)容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_cnotallow=table_content, content_type="table", file_path="RAG-Anything.pdf", entity_name="tab1-RAG-Anything vs Baselines")
from lightrag import LightRAG
from raganything.modalprocessors import ImageModalProcessor, TableModalProcessor
# 初始化 LightRAG 系統(tǒng)
rag = LightRAG(working_dir="./rag_storage", ...)
# 處理圖像內(nèi)容
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_cnotallow=image_content,
content_type="image",
file_path="RAG-Anything.pdf",
entity_name="fig1-RAG-Anything vs Baselines"
)
# 處理表格內(nèi)容
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_cnotallow=table_content,
content_type="table",
file_path="RAG-Anything.pdf",
entity_name="tab1-RAG-Anything vs Baselines"
)
RAG-Anything未來展望
深度推理能力升級
RAG-Anything將構(gòu)建具備人類級別邏輯推理能力的多模態(tài)AI系統(tǒng)。通過多層次推理架構(gòu)實現(xiàn)從淺層檢索到深層推理的躍升,支持跨模態(tài)多跳深度推理和因果關(guān)系建模??紤]提供可視化推理路徑追蹤、證據(jù)溯源和置信度評估。
更加豐富的插件生態(tài)
RAG-Anything未來也會考慮從另一個維度實現(xiàn)擴展——探索構(gòu)建開放的多模態(tài)處理生態(tài)系統(tǒng)。我們設(shè)想讓不同行業(yè)都能擁有更貼合需求的智能助手。
比如幫助科研人員更好地解析學(xué)術(shù)圖表,協(xié)助金融分析師處理復(fù)雜的財務(wù)數(shù)據(jù),或者讓工程師更容易理解技術(shù)圖紙,醫(yī)生更快速地查閱病歷資料等。