PageIndex 0.2.19 教程:先用本地模式检索一份长 PDF
PageIndex 把文档组织成层级树,再让模型沿树寻找相关页面。它没有向量数据库和 embedding 流程,但仍会调用 LLM 写节点摘要、搜索树并回答问题。
1. Flash 到底省掉了什么
传统流程通常要切块、生成 embedding,再部署向量存储。PageIndex 的 Flash 引擎从 PDF 布局统计和可信书签取得树结构,这一步本身不调用 LLM。随后它仍要让模型写节点摘要;默认的 optimize="full" 还会并发扩展树。把它称为“完全不使用模型的索引”是不准确的。
查询时,模型阅读树节点并逐层判断相关分支,最后返回页面内容并生成答案。这个设计更看重章节关系和推理导航,而不是向量相似度。
2. 本地模式的安装条件
官方 pyproject要求 Python 3.10 及以上,并声明支持 3.10 到 3.13。创建隔离环境后安装:
python3 -m venv .venv source .venv/bin/activate pip install -U pageindex
随后配置所选模型服务的 API key。v0.2.19 的本地模式不需要 PageIndex API key、PageIndex server 或向量数据库;这不等于不需要模型凭据。
3. 最小本地流程
官方 SDK 为本地路径提供 PageIndexLocalClient(storage_path=...)。实际试验应选择一份可以公开处理、文字可复制、答案能人工核对的 PDF。流程是:
- 创建本地客户端并指定索引目录。
- 提交 PDF,保存返回的
doc_id。 - 使用同一客户端和
doc_id提问。 - 保存回答、页级引用、索引时间和模型费用。
- 打开原 PDF,逐项检查引用页是否真的支持回答。
索引模型可以选较轻的模型;负责树搜索和回答的 chat 模型会更直接影响准确度。不要只看最终文字是否通顺。
4. 本地与 Cloud 的边界
官方能力表把本地路径定位为文本型 PDF、本地目录存储和页级引用。扫描件、图片丰富文档、OCR、图像理解、block citation、文件夹和面向大量文档的 File System 属于 Cloud 能力。
因此“支持百万文档”不能直接套到本地 SDK。要把文档传给 Cloud 时,还要单独评估数据位置、保留期限、访问控制和组织合规要求。
5. 成本和官方 benchmark 怎么看
官方给出 Flash 索引成本、耗时和 FinanceBench 准确率等结果。这些数字来自项目方自己的模型选择和测试环境。本地评估至少记录四项:引用页命中率、问题答案正确率、每份文档模型费用、索引与查询耗时。文档结构、页数和模型变化都会改变结果。
6. 商业化判断
PageIndex 确实推广 Cloud、企业部署和预约演示,但 v0.2.19 的 MIT 本地 SDK 有独立可用路径,不需要 PageIndex 账号、充值或订阅额度。当前没有把开源安装强制导向付费结账,所以保留本页,同时把云端专属能力明确标出来。
7. 和 LightRAG 对比
LightRAG同时维护知识图谱、向量嵌入以及 KV、vector、graph 存储,支持多种切块策略、增量更新和多种生产后端。PageIndex 的本地路线不建向量库,重点是单份文档树上的推理导航。
需要跨语料实体关系、增量维护和成熟存储后端,可以评估 LightRAG;主要处理结构清楚的长文档,希望减少存储组件,可以先用 PageIndex 做小样本对照。
这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。
先判断这个项目是否适合你
适合谁用
适合财报、法规、研究报告和技术手册等章节结构清楚、需要跨页推理的长文档。若材料主要是扫描图、表格图片或需要跨百万文件导航,应先评估云端 OCR、图像理解和 File System 产品;本地开源路径不能自动获得这些云端能力。
采用建议
PageIndex 值得在结构清楚的长 PDF 上做小规模对照测试。判断效果时应同时记录命中页、回答准确性、模型费用和索引时间;官方 benchmark 可作线索,不能代替自己的文档集验证。
原教程未展开的系统信息
核心功能
层级树检索
每份文档建立可导航的树,查询时由 LLM 在树上逐层判断相关节点,而不是先做向量相似度召回。
统一客户端表面
PageIndexClient 与 PageIndexLocalClient 覆盖提交文档和对话流程,本地模式把索引存到指定目录,云端模式改由 PageIndex 托管文档与索引。
架构与数据流
PageIndex 先把文档组织成层级树,再让模型阅读节点摘要并选择下一层,最终返回相关页面并生成回答。v0.2.19 的 Flash 路径把 PDF 结构提取改为基于布局统计的确定性步骤,但节点摘要和部分树优化仍需模型。LocalClient 使用本地目录保存索引;Cloud 客户端则把文档和索引交给 PageIndex 服务。
技术栈和运行条件
语言
Python 3.10 及以上
框架
PageIndex Python SDK;本地或 PageIndex Cloud
关键依赖
- pageindex PyPI 包
- openai、openai-agents 与 LiteLLM
- PyPDF2、pypdfium2、Pillow
- 所选模型提供商的 API key
运行环境
本地模式不需要 PageIndex server、向量数据库或 PageIndex API key;云端模式需要 PAGEINDEX_API_KEY
常见问题
PageIndex 本地模式需要 PageIndex API key 吗?
不需要,但仍要配置所选 LLM provider 的凭据。
Flash 索引是不是完全不调用 LLM?
不是。结构生成可不调用 LLM,节点摘要和默认 full 树优化仍会调用。
本地 PageIndex 能直接处理扫描 PDF 吗?
官方把本地模式标为 text-based PDF;扫描件、图片理解和 OCR 属于 Cloud 能力。
vectorless 是否代表 PageIndex 没有使用成本?
不代表。它省掉向量数据库和 embedding,摘要、树搜索及回答仍会产生模型费用。