PageIndex:无向量检索的文档索引
一句话简介
基于大模型的层级化文档索引与检索框架,无需向量数据库,通过树形结构和推理实现长文档智能导航与问答。
标签
适用应用场景
- 长文档智能问答
- 无需向量库的语义检索
- 金融与法律文档分析
- PDF/书籍层级化索引
README 中文摘要
PageIndex:基于推理的无向量 RAG
PageIndex 面向长篇、复杂且高度依赖上下文的专业文档。传统向量检索依赖语义相似度,但“相似”并不等于“相关”:真正相关的内容可能措辞不同,而语义接近的内容未必能回答问题。PageIndex 以分层树状索引替代向量数据库,让大语言模型像专家阅读长报告一样,通过推理定位正确章节,无需切块即可完成检索。
核心架构
系统采用两步流程:
- 建立索引:依据文档布局生成层级化树状目录。
- 检索内容:由智能体结合对话历史、领域知识及问题上下文,在树上逐步推理搜索。
其结果可追溯到明确章节或页面,相比仅依赖查询嵌入的向量 RAG,更具可解释性。适用场景包括财务报告、法律文件、监管披露、技术手册、医学文献和学术教材。
快速开始
安装 SDK:
pip install -U pageindex
配置模型并检索 PDF:
import os
from pageindex import PageIndexClient
os.environ["OPENAI_API_KEY"] = "your-openai-key"
client = PageIndexClient(
index="gpt-6-luna", # 构建树状索引
chat="gpt-6-sol", # 搜索索引
)
doc_id = client.submit_document("report.pdf")["doc_id"]
answer = client.chat("2023 年的营业利润率是多少?", doc_id=doc_id)
print(answer)
index 模型负责提取、总结和优化文档层级,基础模型通常已足够;chat 模型直接决定检索质量,应尽可能选择能力更强的模型。PageIndex 还可通过 Claude Code 使用 Claude 订阅额度:
pip install -U "pageindex[claude]"
client = PageIndexClient(
index="claude-code/haiku",
chat="claude-code/opus",
)
性能与成本
使用 gpt-5.6-luna 在本地建立索引,每页约需 0.001 美元。千页文档通常只需数美元以内和数分钟,之后可持续复用。实验中,索引阶段采用基础模型并未明显降低检索质量。
公开基准使用 34 份 PDF、共 1,945 页和 62 个查找问题,答案均直接出现在正文中,因此错误主要反映检索或阅读失败。PageIndex 在 FinanceBench 上达到 98.7% 的准确率。
与每次将完整 PDF 交给模型相比,PageIndex 只读取推理路径涉及的节点。在答案一致的情况下,52 页文档的成本约为 PageIndex 的 2.1 倍,420 页文档约为 16.6 倍;805 页时,原生 PDF 输入已超出上下文窗口。
本地与云端模式
本地模式适合以文本为主的 PDF:索引在当前机器构建并存储,引用精确到页面。
os.environ["PAGEINDEX_API_KEY"] = "your-pageindex-key"
os.environ["OPENAI_API_KEY"] = "your-openai-key"
client = PageIndexClient(
index="cloud",
chat="gpt-6-sol",
)
doc_id = client.submit_document("report.pdf", wait=True)["doc_id"]
print(client.chat("2023 年的营业利润率是多少?", doc_id=doc_id))
云端模式由 PageIndex 管理解析、OCR、图像理解、树索引构建和存储,同时继续使用应用已有的兼容对话模型。它支持扫描件及图文密集文档,并提供块级引用、元数据、文件夹和 MCP 服务。文件级 PageIndex File System 还可让系统对整个文档语料库进行推理检索,而非只处理单个文件。
摘要更新于 2026-10-21 00:38:04
· 原文 13305 字符
· md5 f0ad363ef577…