PageIndex:无向量检索的文档索引

VectifyAI/PageIndex 访问 GitHub ↗
🔤 Python ★ 39570 ⑂ 0 monthly #19 (+3867) 抓取 2026-10-24

一句话简介

基于大模型的层级化文档索引与检索框架,无需向量数据库,通过树形结构和推理实现长文档智能导航与问答。

标签

  • RAG
  • 文档检索
  • 大语言模型
  • Python
  • 层级索引

适用应用场景

  • 长文档智能问答
  • 无需向量库的语义检索
  • 金融与法律文档分析
  • PDF/书籍层级化索引

README 中文摘要

PageIndex:基于推理的无向量 RAG

PageIndex 面向长篇、复杂且高度依赖上下文的专业文档。传统向量检索依赖语义相似度,但“相似”并不等于“相关”:真正相关的内容可能措辞不同,而语义接近的内容未必能回答问题。PageIndex 以分层树状索引替代向量数据库,让大语言模型像专家阅读长报告一样,通过推理定位正确章节,无需切块即可完成检索。

核心架构

系统采用两步流程:

  1. 建立索引:依据文档布局生成层级化树状目录。
  2. 检索内容:由智能体结合对话历史、领域知识及问题上下文,在树上逐步推理搜索。

其结果可追溯到明确章节或页面,相比仅依赖查询嵌入的向量 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…