RAG-Anything 教程:在 Colab 中構建文本、表格、公式和影像的多模態檢索管道
本教程詳細介紹瞭如何在 Google Colab 中使用 RAG-Anything 構建一個支援文本、表格、公式和影像的多模態檢索管道。從環境配置、OpenAI API 金鑰安全輸入開始,到生成合成多模態報告、構建 content_list、插入檢索系統,最後測試多種檢索模式(naive、local、global、hybrid)。全面演示了 RAG-Anything 處理多模態文件的能力。
本教程將引導您使用 RAG-Anything 框架在 Google Colab 環境中構建一個多模態檢索管道。RAG-Anything 是一個靈活的檢索增強生成工具,能夠同時處理文本、表格、公式和影像等多種內容型別。
首先,我們需要準備 Colab 執行環境。透過 pip 安裝 raganything[image,text]、openai、python-dotenv、reportlab、pandas、matplotlib 和 tabulate 等庫,並修復 Pillow 依賴版本以確保相容性。安裝完成後,匯入所需的 Python 模組,包括 numpy、pandas、matplotlib、reportlab、openai 以及 RAG-Anything 的核心類。
接下來,設定工作目錄和執行時變數。我們定義基礎目錄、資產目錄、輸出目錄、工作儲存目錄和日誌目錄,並可選地重置儲存以保持環境清潔。然後,透過 getpass 安全地輸入 OpenAI API 金鑰,並對其進行清理和驗證。測試聊天和嵌入 API 是否正常,確保金鑰有效並且具有適當的許可權。本教程使用 gpt-4o-mini 作為聊天和視覺模型,text-embedding-3-small 作為嵌入模型,嵌入維度為 1536。
在準備好基礎設施後,我們生成一個合成的多模態報告。建立包含查詢量、混合準確率和平均延遲等月度資料的 Pandas DataFrame,並將其轉換為 Markdown 表格。同時繪製一條趨勢圖,展示使用量上升而延遲下降的趨勢。使用 ReportLab 生成 PDF 文件,包含介紹文字、表格、公式(加權多模態得分)以及趨勢圖。這個合成報告為後續測試提供了多樣化的內容。
接下來,我們將生成的內容轉換為 RAG-Anything 的 content_list 格式。這是 RAG-Anything 直接接受的結構化輸入,每個專案包含型別、內容以及可選的後設資料(如頁碼、標題、腳註)。我們依次新增了文本段落、表格(包含正文和標題)、公式(LaTeX 和文字說明)以及影像(帶有路徑和標題)。所有內容均標註了頁碼為 0。
完成 content_list 構建後,將其插入到 RAG-Anything 的檢索系統中。系統會對這些內容進行向量化索引,以便後續檢索。本教程配置了 OpenAI 的聊天、視覺和嵌入功能,並初始化 RAG-Anything 例項。最後,我們測試了四種檢索模式:naive(僅文本語義搜尋)、local(僅區域性上下文)、global(全域性檢索)以及 hybrid(混合模式)。透過對比不同模式下的檢索結果,觀察如何處理跨模態的查詢。例如,查詢“混合準確率趨勢”時,hybrid 模式能夠結合表格和圖表的資訊給出更準確的答案。
透過本教程,您將掌握 RAG-Anything 的基本使用方法,並理解多模態檢索的關鍵概念。該框架適用於需要從包含多種內容型別的文件(如報告、研究論文)中提取資訊並進行問答的場景。您可以根據自己的資料調整 content_list 格式,並嘗試不同的檢索策略以獲得最佳效果。