PageIndex:一個開源PDF文檔索引系統,可實現更精準、更邏輯化的檢索
PageIndex是什么?
PageIndex 是一個開源的PDF文檔索引系統,只要提升長篇專業文檔的檢索準確性和LLM的推理能力。它通過將PDF文檔轉化為層次化的樹狀結構,取代了傳統的向量 RAG 語義相似度搜索,從而實現更精準、更邏輯化的檢索。
PageIndex核心功能包括將文檔轉化為類似智能目錄的樹狀結構,提供精準的頁面定位,避免隨意分塊,并適配超長文檔,輕松處理數百甚至上千頁的內容。
工作原理是將 PDF 文檔轉化為語義樹結構,結合查詢分析、文檔選擇、節點選擇和內容生成,最終提供準確的回答。與依賴向量數據庫或傳統分塊方式的系統不同,PageIndex 完全免費且開源。它特別適合處理金融報告、監管文件、學術教科書、法律或技術手冊,以及任何超出LLM上下文限制的文檔。
PageIndex核心功能
文檔處理:能夠處理長文檔,尤其是專業文檔,通過構建搜索樹結構來為基于推理的檢索增強生成(RAG)做好準備。
目錄提取與處理
可以從文檔中提取目錄內容,處理目錄中有無頁碼的不同情況。
對目錄進行轉換,將其轉換為特定的 JSON 格式,方便后續處理。
頁碼處理:為目錄項添加物理索引,處理頁碼缺失或不正確的情況,通過多次嘗試修復不正確的目錄項。
節點處理:對大節點進行遞歸處理,將其拆分為更小的節點,以滿足 token 數量和頁面數量的限制。
驗證修復:驗證目錄的準確性,計算準確率,并對不準確的結果進行修復。
PageIndex特點
層次樹結構:使 LLM 能夠邏輯性地遍歷文檔,就像一個智能的、為 LLM 優化的目錄。
精確頁面引用:每個節點包含其摘要和開始/結束頁面的物理索引,實現精準檢索。
無任意分塊:不使用任意分塊,節點遵循文檔的自然結構。
支持大規模文檔:設計用于輕松處理數百甚至上千頁的文檔。
PageIndex適用場景
金融領域
財務報告分析:快速定位關鍵財務數據和指標。
監管文件解讀:精準查找法規條款,確保合規。
法律領域
法律文件檢索:高效查找法律條款和案例。
合同審查:快速定位合同中的關鍵條款。
學術研究
學術論文檢索:快速找到研究結果和理論支持。
教科書學習:便捷定位特定章節和知識點。
技術文檔
技術手冊:快速查找操作步驟和技術參數。
項目文檔:高效檢索項目中的關鍵信息。
企業內部
內部報告:快速定位長篇報告中的關鍵內容。
知識庫管理:提升知識共享和檢索效率。
醫療領域
醫學文獻檢索:快速找到研究結果和治療方法。
臨床指南:精準定位臨床操作指南。
教育領域
在線課程資料:快速查找課程重點內容。
考試復習資料:高效定位復習要點。
政府機構
政策文件解讀:快速查找政策條款。
公共信息檢索:提升公共服務效率。
PageIndex使用方法
1. 安裝依賴項
pip3 install -r requirements.txt
2. 設置 Openai API 密鑰
在根目錄創建一個 .env 文件并添加你的 API 密鑰:
CHATGPT_API_KEY=your_openai_key_here
3. 對 PDF 運行 PageIndex
python3 run_pageindex.py --pdf_path /path/to/your/document.pdf
還可以通過額外的可選參數自定義處理過程,例如:
--model OpenAI model to use (default: gpt-4o-2024-11-20) --toc-check-pages Pages to check for table of contents (default: 20) --max-pages-per-node Max pages per node (default: 10) --max-tokens-per-node Max tokens per node (default: 20000) --if-add-node-id Add node ID (yes/no, default: yes) --if-add-node-summary Add node summary (yes/no, default: no) --if-add-doc-description Add doc description (yes/no, default: yes)
Github:https://github.com/VectifyAI/PageIndex
項目官網:https://vectify.ai/pageindex