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