公司动态
PageIndex:给长 PDF 建一棵 LLM 能推理的树索引
PageIndex给长 PDF 建一棵 LLM 能推理的树索引【免费下载链接】PageIndex PageIndex: Document Index for Vectorless, Reasoning-based RAG项目地址: https://gitcode.com/GitHub_Trending/pa/PageIndexPageIndex 把长 PDF 转成 LLM 可用的树索引——无向量库、无分块模型沿树逐层推理来定位相关章节。基于它的检索系统在 FinanceBench 金融文档问答基准上拿到 98.7% 的准确率且每一步检索路径都可回溯。专业文档越长向量检索越容易答非所问向量 RAG 靠语义相似性召回但你在专业文档里要的其实是相关性。问收入确认政策向量检索可能命中一段读起来很像、实际在讲成本核算的段落分块边界还经常把关键表格从中间切开。文档越长这类问题越明显——SEC 年报、监管文件、行业白皮书召回越多噪音越多。更麻烦的是向量检索说不清为什么找到这一处只给一个相似度分数。做财务分析或合规审查时没有路径的检索结果基本无法采信。树索引如何替向量库承担定位工作PageIndex 分两步先用 LLM 从文档生成目录——每个节点带页码范围和摘要的树状结构提问时模型在这棵树上逐节点推理即树搜索逐步逼近答案所在的章节全程路径可见。{ title: Financial Stability, node_id: 0006, start_index: 21, end_index: 22, nodes: [ ... ] }三步跑通本地树生成安装依赖pip3 install --upgrade -r requirements.txt在根目录建.env写入密钥默认 OpenAI其他厂商可用provider/model前缀OPENAI_API_KEYyour_key执行生成python3 run_pageindex.py --pdf_path /path/to/your/document.pdf结果写入./results/文件名_structure.json。config.yaml 里最值得动的四个参数model/summary_model想省钱或换用非 OpenAI 模型时调主模型和摘要模型可分开配置见 pageindex/config.yaml。toc_check_page_num默认 20文档很大、目录不在前 20 页时调大否则可能漏检目录直接降级。max_page_num_each_node默认 10节点太粗一个节点半章就调小树碎得没法看就调大。max_token_num_each_node默认 20000单节点内容过长、下游检索被截断时调小。标准流程之外的两条进阶路径Flash 快速通道加--flash后纯启发式抽取结构秒级出树LLM 只负责节点摘要耗时随页数近似线性增长。Agentic 检索示例examples/agentic_vectorless_rag_demo.py 用 OpenAI Agents SDK 搭了一条完整的提问—检索—回答链路pip3 install openai-agents后直接运行即可。树生成常见卡点与检查位置运行报 PDF file not found → 检查路径是否真实存在、扩展名是否为.pdfrun_pageindex.py 会对这两项做严格校验。报OPENAI_API_KEY is not set→ 确认.env在仓库根目录、键名无误并重新执行命令。Markdown 模式出来的树又平又乱 → 多半是.md由 PDF/HTML 转换而来、层级已丢失建议用人工维护的 Markdown。先挑一份最棘手的长文档跑一遍看看 results 目录里那棵树的成色心里就有数了。【免费下载链接】PageIndex PageIndex: Document Index for Vectorless, Reasoning-based RAG项目地址: https://gitcode.com/GitHub_Trending/pa/PageIndex创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考