VectifyAI / PageIndex

VectifyAI/PageIndex

open_in_new前往仓库

📑 PageIndex:面向无向量、基于推理的RAG系统的文档索引工具。

项目概览

项目概述

PageIndex 是一个开源的、无向量(Vectorless)的检索增强生成(RAG)引擎,由 VectifyAI 开发。它摒弃了传统 RAG 中依赖向量数据库和文本分块(Chunking)的做法,转而通过构建文档的层级树状索引,并利用大语言模型(LLM)的推理能力进行上下文感知的检索。PageIndex 旨在模拟人类专家阅读和提取复杂文档知识的方式,提供可追溯、可解释的检索结果。该项目在金融文档问答基准 FinanceBench 上取得了 98.7% 的准确率,显著优于传统向量 RAG 方案。

核心功能

  • 无向量数据库:不依赖向量相似度搜索,而是利用文档结构和 LLM 推理进行检索。
  • 无文本分块:文档按自然章节组织,而非人工切块。
  • 可追溯与可解释:检索由推理驱动,并基于明确的页面和章节引用,结果可追溯、可解释。
  • 上下文感知检索:检索结果依赖于完整上下文(如对话历史和领域知识),并易于融入新上下文。
  • 类人检索:模拟人类专家在复杂文档中导航和提取知识的方式。
  • 层级树索引:将长文档转换为类似“目录”的语义树结构,优化用于 LLM 和 AI 代理。
  • 多部署选项:支持自托管、云服务和私有化部署(企业版)。
  • PageIndex Flash:预览功能,可在数秒内生成树结构,无需 LLM(仅用于摘要)。
  • Markdown 支持:支持从 Markdown 文件生成树结构。

适用与不适用场景

适用场景:

  • 长篇幅专业文档的检索增强生成,如财务报告、法律文件、监管文件、技术手册、医学文献、学术教科书等。
  • 需要高精度、可解释检索结果的场景,如金融分析、法律研究、医疗咨询等。
  • 需要上下文感知检索的对话式 AI 应用。
  • 希望避免向量数据库和分块复杂性的 RAG 应用。

不适用场景:

  • 对检索速度要求极高、且文档结构简单的场景(传统向量 RAG 可能更合适)。
  • 需要处理大量短文本或非结构化数据的场景。
  • 对成本敏感且无法承担 LLM 推理开销的场景。
  • 需要实时处理超大规模文档库的场景(需结合 PageIndex File System 等扩展方案)。

技术架构与依赖

  • 编程语言:Python
  • 核心依赖:LiteLLM(多 LLM 支持)、OpenAI Agents SDK(可选,用于代理示例)、标准 PDF 解析库。
  • 架构:PageIndex 将 PDF 文档转换为层级树结构(类似目录),每个节点包含标题、节点 ID、起始/结束索引和摘要。检索时,LLM 通过树搜索进行推理,实现上下文感知的检索。
  • 部署模式:自托管(开源仓库)、云服务(增强 OCR 和树构建)、企业版(VPC/本地部署)。

安装与快速开始

  1. 克隆仓库:
    git clone https://github.com/VectifyAI/PageIndex.git
    cd PageIndex
    
  2. 安装依赖:
    pip3 install --upgrade -r requirements.txt
    
  3. 设置 LLM API 密钥:在根目录创建 .env 文件,添加你的 LLM API 密钥(如 OpenAI):
    OPENAI_API_KEY=your_openai_key_here
    
  4. 生成 PageIndex 树结构:
    python3 run_pageindex.py --pdf_path /path/to/your/document.pdf
    
    或使用 Markdown 文件:
    python3 run_pageindex.py --md_path /path/to/your/document.md
    

典型使用方法

  • 生成树结构:使用 run_pageindex.py 脚本,可指定 PDF 或 Markdown 文件,并可通过可选参数调整模型、目录检查页数、每节点最大页数等。
  • PageIndex Flash:使用 --flash 参数快速生成树结构,--optimize 可优化树结构。
  • Agentic Vectorless RAG 示例:运行 examples/agentic_vectorless_rag_demo.py,需先安装 openai-agents。
  • Notebook 示例:提供 cookbook/pageindex_RAG_simple.ipynb 和 cookbook/vision_RAG_pageindex.ipynb,可在 Colab 中运行。
  • API 和 MCP:可通过 PageIndex Developer 集成 API 或 MCP 服务。

配置与部署要点

  • 自托管:使用标准 PDF 解析,适合简单 PDF。复杂 PDF 建议使用云服务或企业版。
  • 云服务:提供增强 OCR、树构建和检索,可通过 MCP 或 API 集成。
  • 企业版:支持 VPC 或本地部署,需联系销售。
  • 环境变量:通过 .env 文件配置 LLM API 密钥。
  • 可选参数:--model、--toc-check-pages、--max-pages-per-node、--max-tokens-per-node、--if-add-node-id、--if-add-node-summary、--if-add-doc-description 等。
  • Markdown 模式:使用 # 标题层级,需确保格式正确;从 PDF/HTML 转换的 Markdown 不推荐使用。

限制、风险与许可证

  • 许可证:MIT License。
  • 限制:自托管版本使用标准 PDF 解析,对复杂 PDF 效果有限;Markdown 模式依赖标题层级,转换工具可能丢失层级。
  • 风险:依赖 LLM 推理,可能产生较高成本;检索准确性受 LLM 能力影响。
  • 其他:仓库资料未提供更多限制信息。

官方链接

信息来源和分析时间

  • 信息来源:GitHub 仓库 README、官方文档、博客、发布页面。
  • 分析时间:2026年7月10日(基于最新发布版本 v0.3.0.dev3 的日期)。