讀懂?dāng)?shù)百頁(yè) PDF)
PageIndex 完整教程讓 Claude 和 Cursor 不靠向量庫(kù)讀懂?dāng)?shù)百頁(yè) PDF【免費(fèi)下載鏈接】PageIndex PageIndex: Document Index for Vectorless, Reasoning-based RAG項(xiàng)目地址: https://gitcode.com/GitHub_Trending/pa/PageIndexPageIndex MCP 接入是讓 Claude 與 Cursor 處理長(zhǎng)文檔的常用做法。PageIndex 是一個(gè)開源文檔索引框架采用推理式 RAG它為長(zhǎng) PDF 生成目錄式樹狀索引由大模型沿樹檢索無需向量數(shù)據(jù)庫(kù)、不做文本分塊。本教程帶你完成安裝、調(diào)優(yōu)與接入 Claude/Cursor。長(zhǎng)文檔問答的痛點(diǎn)相似不等于相關(guān)想象你手里有一份 200 多頁(yè)的財(cái)報(bào)或監(jiān)管文件想直接問 AI這個(gè)季度的現(xiàn)金流為什么下降用傳統(tǒng)向量 RAG 時(shí)常見的翻車方式是切塊切斷上下文一個(gè)完整論證被拆成幾個(gè)碎片模型只看到其中一塊答非所問相似 ≠ 相關(guān)向量檢索返回的是字面相近的段落而答案往往在語(yǔ)義相關(guān)但用詞不同的位置結(jié)果不可追溯回答從哪來、為什么選這幾段說不清楚專業(yè)場(chǎng)景不敢用。PageIndex 的思路是模仿人類專家查書的方式先看目錄定位章節(jié)再翻頁(yè)細(xì)讀。它把檢索從相似度計(jì)算變成了模型的一次次推理判斷。PageIndex 的原理兩步完成推理式 RAG整個(gè)流程分兩步核心索引邏輯在 pageindex/page_index_classic.py生成樹狀索引把整份 PDF 組織成類似目錄的結(jié)構(gòu)每個(gè)節(jié)點(diǎn)帶標(biāo)題、起止頁(yè)碼、摘要和子節(jié)點(diǎn)樹搜索檢索把問題連同索引交給 LLM讓它逐步推理答案可能在哪個(gè)節(jié)點(diǎn)再讀取對(duì)應(yīng)頁(yè)面內(nèi)容作答。生成的索引長(zhǎng)這樣真實(shí)示例見 examples/documents/results/q1-fy25-earnings_structure.json{ title: Financial Stability, node_id: 0006, start_index: 21, end_index: 22, summary: The Federal Reserve ..., nodes: [ { title: Monitoring Financial Vulnerabilities, start_index: 22, end_index: 28 } ] }對(duì)比項(xiàng)傳統(tǒng)向量 RAGPageIndex依賴組件向量數(shù)據(jù)庫(kù) 分塊一棵樹 LLM 推理檢索單位人工切出的 chunk文檔的自然章節(jié)可追溯性低近似匹配高每步推理有據(jù)可查上下文注入需微調(diào)嵌入模型直接把專家知識(shí)寫進(jìn)檢索提示詞最后一行是它做專家化檢索的關(guān)鍵想讓它查 10-K 財(cái)報(bào)時(shí)優(yōu)先看 Item 7MDA只需在樹搜索提示詞里加一句專家經(jīng)驗(yàn)即可方法見 examples/tutorials/tree-search/。三步安裝并生成第一個(gè)文檔索引環(huán)境要求 Python 3.8??寺〔惭b依賴只需一條命令git clone https://gitcode.com/GitHub_Trending/pa/PageIndex cd PageIndex pip3 install --upgrade -r requirements.txt第 2 步配置模型密鑰。在根目錄建一個(gè).env文件寫入OPENAI_API_KEY你的密鑰。通過 LiteLLM 也支持其他廠商比如把 pageindex/config.yaml 里的模型改為anthropic/claude-sonnet-4-6。第 3 步運(yùn)行索引生成。python3 run_pageindex.py --pdf_path /path/to/your/document.pdf輸出就是上述格式的*_structure.json。常用可選參數(shù)與默認(rèn)值如下按需調(diào)整即可參數(shù)默認(rèn)值作用與調(diào)優(yōu)建議--modelgpt-4o-2024-11-20建樹所用 LLM--toc-check-pages20在文檔前多少頁(yè)內(nèi)查找目錄頁(yè)--max-pages-per-node10章節(jié)粒度粗的文檔可調(diào)大內(nèi)容密集則調(diào)小--max-tokens-per-node20000單個(gè)節(jié)點(diǎn)容納的 token 上限--if-add-node-summaryyes是否為每個(gè)節(jié)點(diǎn)生成摘要檢索質(zhì)量關(guān)鍵兩點(diǎn)提醒如果 Markdown 文件的標(biāo)題層級(jí)#、##是可靠的也可以用--md_path直接對(duì) md 建樹但從 PDF/HTML 轉(zhuǎn)換來的 md 大多丟失層級(jí)不建議走這條路。用 PageIndex Flash 快速生成樹索引標(biāo)準(zhǔn)模式靠 LLM 逐段判斷結(jié)構(gòu)長(zhǎng)文檔要花不少時(shí)間。pageindex/flash/ 提供的 Flash 模式基于版面統(tǒng)計(jì)規(guī)則提取結(jié)構(gòu)生成樹的過程完全不需要 LLM摘要仍會(huì)調(diào)用一次模型千頁(yè)級(jí)文檔也能在秒級(jí)出結(jié)構(gòu)python3 run_pageindex.py --flash --pdf_path document.pdf加--optimize可讓 LLM 再對(duì)樹做一輪合并/展開得到更適合檢索的結(jié)構(gòu)。下圖是官方基準(zhǔn)中耗時(shí) vs 文檔頁(yè)數(shù)的關(guān)系可見 585 頁(yè)、1098 頁(yè)的長(zhǎng)文檔依舊在可接受范圍內(nèi)最快接入 Claude 和 Cursor 的方法PageIndex 通過 MCP 協(xié)議對(duì)外提供服務(wù)倉(cāng)庫(kù)內(nèi)置了 MCP 橋接pageindex/mcp_bridge.py與各 SDK 適配器pageindex/integrations/同一個(gè)索引能力可以接到不同工作環(huán)境里。Claude 桌面版在 Claude 桌面版設(shè)置的 MCP Servers 中添加 PageIndex MCP 服務(wù)器條目即可。之后可以直接把 PDF 交給對(duì)話讓它基于樹索引檢索作答回答會(huì)落到具體章節(jié)與頁(yè)碼。Cursor在 Cursor 的 MCP 設(shè)置里添加同一套 PageIndex 服務(wù)器配置。適合邊寫代碼邊查技術(shù)手冊(cè)把 API 文檔或規(guī)格書索引好后在聊天窗口提問模型沿樹定位到相關(guān)小節(jié)再回答不用你手動(dòng)翻文檔。以 SDK 方式接入自己的程序如果要做自動(dòng)化流水線pageindex/client.py 的PageIndexClient提供了一組現(xiàn)成入口as_claude_mcp()/claude_agent_config()直接產(chǎn)出 Claude Agent SDK 可用的mcp_servers配置as_openai_tools()對(duì)接 OpenAI Agents SDKagent_tools()任意 Agent 框架LangChain、PydanticAI 等都能用的普通函數(shù)工具。本地模式不傳 API key會(huì)用你自己的 LLM 密鑰在本地建索引和檢索云端模式則上傳 PDF 由服務(wù)端完成增強(qiáng) OCR 與建樹接口一致。三個(gè)典型使用場(chǎng)景附適用人群財(cái)報(bào)與監(jiān)管文檔分析適用人群金融分析師、合規(guī)人員、投研團(tuán)隊(duì)。SEC 文件、財(cái)報(bào)、監(jiān)管披露是這套方法最被驗(yàn)證的場(chǎng)景基于 PageIndex 構(gòu)建的 Mafin 2.5 系統(tǒng)在 FinanceBench 金融文檔問答基準(zhǔn)上取得了98.7% 的準(zhǔn)確率大幅領(lǐng)先傳統(tǒng)向量 RAG 方案。樹搜索提示詞還可以注入領(lǐng)域規(guī)則例如問到 EBITDA 調(diào)整時(shí)優(yōu)先查 Item 7 和 Item 8 腳注。技術(shù)手冊(cè)與 API 文檔查詢適用人群研發(fā)工程師、技術(shù)文檔維護(hù)者。幾百頁(yè)的產(chǎn)品手冊(cè)索引后某個(gè)參數(shù)的取值范圍是什么這類問題可以秒級(jí)定位到章節(jié)。需要跨多份文檔檢索時(shí)examples/tutorials/doc-search/ 給出了按元數(shù)據(jù)、按語(yǔ)義、按描述三種輕量策略按文檔數(shù)量選擇即可。學(xué)術(shù)論文與長(zhǎng)教材適用人群科研人員、研究生。examples/documents/ 里就放了 PRML758 頁(yè)等論文和教材的樣例索引Flash 基準(zhǔn)也覆蓋了 15 頁(yè)的 Attention 論文到 1098 頁(yè)的機(jī)器學(xué)習(xí)教材如果想跳過 OCR、直接對(duì)頁(yè)面圖像做視覺推理可以看 cookbook/vision_RAG_pageindex.ipynb。從這些材料繼續(xù)深入材料路徑適合誰(shuí)快速上手聊天cookbook/pageIndex_chat_quickstart.ipynb第一次跑通流程最小推理式 RAG 示例cookbook/pageindex_RAG_simple.ipynb想理解原理Agentic 無向量 RAG 完整示例examples/agentic_vectorless_rag_demo.py想自建 Agent 管線樹搜索 / 多文檔檢索教程examples/tutorials/想調(diào)優(yōu)檢索策略真實(shí)文檔與生成的樹examples/documents/results/想看索引長(zhǎng)什么樣團(tuán)隊(duì)還在持續(xù)擴(kuò)展文檔格式支持、更強(qiáng)的推理檢索與更大規(guī)模的語(yǔ)料索引。建議就從手頭那份總也讀不完的 PDF 開始先跑一遍索引再把目錄樹喂給 Claude 或 Cursor 問一個(gè)問題感受下推理式檢索和向量檢索的差距。【免費(fèi)下載鏈接】PageIndex PageIndex: Document Index for Vectorless, Reasoning-based RAG項(xiàng)目地址: https://gitcode.com/GitHub_Trending/pa/PageIndex創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考