WeChat (李轻水)
ai-engineering
Original source

PageIndex:扔掉向量数据库,RAG 准确率飙到 98.7%

Summary

PageIndex 是 VectifyAI 团队 2025年9月开源的项目(GitHub 23,000+ stars),灵感来自 AlphaGo 的树搜索策略。在 FinanceBench 基准上达到 98.7% 准确率,传统向量 RAG 只有 30-50%。

核心思路

完全不用向量数据库、不做文档分块、不用 embedding 模型。用 LLM 推理替代向量搜索,用树状结构替代 chunk,让 LLM「像人一样翻目录找答案」。

向量 RAG 的五个结构性缺陷

  1. 查询文本不像答案文本(意图 ≠ 内容)
  2. 同一个词出现60次,向量排名几乎相同
  3. 分块切碎表格(标题和数据行分属不同 chunk)
  4. 跨页引用完全丢失(「详见附录G」向量搜不到)
  5. 多轮对话无记忆

两步架构

  1. 构建层次树索引:分析 PDF 结构生成 JSON 树(标题/摘要/页码/子节点),不存向量库,放在 LLM 上下文窗口里
  2. 基于推理的树搜索:LLM 读取树结构 → 推理哪些章节相关 → 获取原始页面 → 判断是否足够 → 生成答案

自修正目录提取(三层 fallback)

  • 路径A:有页码的 TOC → 验证+修正
  • 路径B:无页码的 TOC → 内容匹配推断页码
  • 路径C:无 TOC → LLM 从零生成层次结构

代码极简

  • 6个 Python 文件,~2900 行
  • 无 PyTorch/FAISS/向量库依赖
  • 核心依赖:LiteLLM、PyMuPDF、tiktoken、PyYAML

FinanceBench 数据

系统准确率
Mafin 2.5 (PageIndex)98.7%
Dewey Agentic RAG~91%
开源标准 RAG~76%
传统向量 RAG30-50%
GPT-4o(无RAG)~31%

局限

  • 速度慢:每次检索多轮 LLM 调用,数秒级(向量 RAG 毫秒级)
  • 成本高:多轮推理 vs 单次 embedding
  • 深度工具非广度工具:擅长单份长文档深度提取,不适合搜索10,000份短文档
  • 只在 FinanceBench 验证过,杂乱/多领域场景未独立验证
  • 树索引质量依赖文档结构(格式混乱的扫描 PDF 效果差)

最佳实践:混合方案

向量搜索快速定位相关文档 → PageIndex 对单份文档做深度提取

最新进展

  • Agentic Vectorless RAG(OpenAI Agents SDK 集成)
  • 视觉无向量 RAG(跳过 OCR,视觉 LLM 直接看 PDF 图像)
  • TypeScript SDK(2026年初)
  • MCP 桌面扩展(Claude Desktop 一键安装)
  • ChatIndex(树索引应用于长对话历史)

适用场景

适合:长篇结构化专业文档(年报/法律/监管/技术手册)、准确率优先、需要审计追踪 不适合:高并发亚秒响应、大规模短文档库、成本敏感