PageIndex 本地部署不建向量数据库的推理 RAG5 分钟出树状索引【免费下载链接】PageIndex PageIndex: Document Index for Vectorless, Reasoning-based RAG项目地址: https://gitcode.com/GitHub_Trending/pa/PageIndexPageIndex 是一个向量化的反面它不建向量库、不做分块而是先把长 PDF 变成一份目录式的层级树索引再让 LLM 在树上做推理检索定位到具体章节和页码。自托管它的价值在于——文档解析和检索链路完全跑在本地你只需要一个 LLM API 密钥。本文按装环境 → 出第一个结果 → 验证 → 调参的路径走一遍。动手前备齐这三样Python 3.8依赖 PyPDF2、pypdfium2 做 PDF 文本解析pip 能正常安装即可。一个 LLM API 密钥默认走 OpenAI也可通过 LiteLLM 支持的格式接其他供应商config 里写provider/model。一份待测 PDF仓库自带现成的直接拿examples/documents/q1-fy25-earnings.pdf试跑即可不必等自己的文档到位。注意一点前提本地版依赖 PDF 内嵌文本流扫描件纯图片 PDF跑不出正确结果后面会展开。从克隆到第一个树索引的最短路径三条命令完成安装git clone https://gitcode.com/GitHub_Trending/pa/PageIndex cd PageIndex pip3 install --upgrade -r requirements.txt在项目根目录创建.env文件写入密钥OPENAI_API_KEYyour_openai_key_here旧变量名CHATGPT_API_KEY也被代码兼容见 pageindex/utils.py但新部署建议直接用OPENAI_API_KEY。然后处理第一份 PDFpython3 run_pageindex.py --pdf_path examples/documents/q1-fy25-earnings.pdf你会看到先输出Parsing done, saving to file...最后一行是Tree structure saved to: ./results/q1-fy25-earnings_structure.json。文件没出现在./results/下说明参数或密钥没配对。如果不想消耗 LLM token 来建树可以用 Flash 模式——结构提取是纯启发式规则LLM 只用于生成节点摘要python3 run_pageindex.py --flash --pdf_path examples/documents/q1-fy25-earnings.pdf输出文件名会带_structure_flash后缀。官方基准显示 Flash 加树优化后整体耗时与页数近似线性1000 页约 218 秒R²0.924Markdown 文件走另一条路径按#层级识别标题##是二级python3 run_pageindex.py --md_path /path/to/your/document.md验证部署结果核对这三个信号打开生成的 JSON每个节点应有title、node_id、start_index/end_index和嵌套nodes。检查页码是否随目录层级单调递增、父节点的页范围是否覆盖所有子节点。对照仓库样例examples/documents/results/ 存放了多份真实文档财报、PRML、监管文件等的成品树结构层级深度和粒度可直接拿来当参照系。跑一次端到端检索按 cookbook/pageindex_RAG_simple.ipynb 走一遍最小推理 RAG 流程树能被检索消费才算链路完整。效果不对时问题到参数的对照你遇到的问题调哪里说明章节切分太碎或太粗--max-pages-per-node/--max-tokens-per-node默认 10 页、20000 token 每节点大文档可各调小一档目录没被识别整篇变成一个节点--toc-check-pages默认 20只检查前 N 页找目录目录超长的文档调大它节点摘要太贵/不需要--if-add-node-summary no或 Flash 加--no-summary纯结构模式不消耗摘要 token想换模型--model默认gpt-4o-2024-11-20默认值集中在 pageindex/config.yaml改文件比改命令行更持久树太深、检索代价高--flash --optimize先做确定性合并再做 LLM 扩展并打印优化前后最坏搜索代价再往下走树建好之后做什么树索引只是原料。想接上 Agent 做完整问答看 examples/agentic_vectorless_rag_demo.py——基于 OpenAI Agents SDK 的端到端示例运行前需pip3 install openai-agents。Flash 模块的内部实现和更多参数在 pageindex/flash/。踩坑备忘扫描件 PDF 直接失败本地解析没有 OCR页面提不出文本时树会为空或混乱。这类文档要么换有文本层的版本要么走官方的云端 OCR 管线别在本地硬试。密钥配了但没生效确认.env在项目根目录且变量名拼写正确用python3 -c import pageindex; print(__import__(os).getenv(OPENAI_API_KEY))可以快速确认它已加载。PDF 转来的 Markdown 别用--md_path多数转换工具会丢失原始标题层级生成的树质量差官方也不推荐这种用法。【免费下载链接】PageIndex PageIndex: Document Index for Vectorless, Reasoning-based RAG项目地址: https://gitcode.com/GitHub_Trending/pa/PageIndex创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考