欣淇
发布于 2026-05-16 / 0 阅读
0
0

📑 PageIndex:31.4k Stars 的无向量推理 RAG,不用向量数据库也能 98.7% 准确率

📑 PageIndex:31.4k Stars 的无向量推理 RAG,不用向量数据库也能 98.7% 准确率

项目地址:github.com/VectifyAI/PageIndex | ⭐ 31,400+ | 🛠 Python | 📅 2026-04


老实说,搞过 RAG 的人都知道,向量数据库那套东西看着美好,实际用起来全是坑。chunk size 调半天、embedding 维度选多大、召回率上不去、相似度 ≠ 相关性——这几个问题缠了你多久?

PageIndex 的思路挺狠:直接把向量数据库扔了

一、核心逻辑:相似度 ≠ 相关性

传统 RAG 的核心逻辑是「语义相似度搜索」——你把文档拆成小段(chunk),每段算一个向量,用户问问题时算相似度,挑最像的几条返回。

这听起来合理,但你仔细想想:相似不等于相关

一份 200 页的财报里,问「2024年Q3现金流」——向量搜索可能给你返回一段讲「现金流定义」的科普段落,因为它跟「现金流」这三个字在语义上最像。但你要的是 Q3 的具体数字,不是定义。

PageIndex 的做法不一样:它不存向量,直接对文档建一棵树

python3 run_pageindex.py --pdf_path /path/to/your/document.pdf

这行命令会把 PDF 变成一棵「智能目录树」,每个节点都包含标题、页码范围、内容摘要。查询的时候,LLM 在这棵树上做树搜索——先找到最相关的章节,再下钻到子节点,像人查资料一样层层定位。

二、不是分块,是建树

❌ 传统做法:文档 → 固定长度分块 → embedding → 向量搜索

✅ PageIndex:文档 → 语义树索引 → 树搜索 → 精准定位

树的结构长这样:

{
  "title": "Financial Stability",
  "node_id": "0006",
  "start_index": 21,
  "end_index": 22,
  "summary": "The Federal Reserve ...",
  "nodes": [
    {
      "title": "Monitoring Financial Vulnerabilities",
      "node_id": "0007",
      "start_index": 22,
      "end_index": 28,
      "summary": "The Federal Reserve's monitoring ..."
    }
  ]
}

每个节点有自然标题(不是人工切块)、有摘要、有页码范围。LLM 拿到查询后,先在顶层节点里定位相关章节,再展开下级节点。整个流程透明可追溯——不像向量搜索那样是个黑盒。

三、三行跑起来

# 1. 装依赖
pip3 install --upgrade -r requirements.txt

# 2. 配 LLM key(支持任意 LiteLLM 供应商)
echo "OPENAI_API_KEY=sk-..." > .env

# 3. 建索引
python3 run_pageindex.py --pdf_path report.pdf

它就做了三件事:提取文本、LLM 分析结构、生成树索引。之后查询的时候,直接在树上走推理搜索,不走向量。

还支持 Agentic RAG 模式——结合 OpenAI Agents SDK,让 Agent 自己决定什么时候搜、搜什么、怎么组合结果:

pip3 install openai-agents
python3 examples/agentic_vectorless_rag_demo.py

四、98.7% 准确率,不是噱头

PageIndex 团队基于这套框架做了一个叫 Mafin 2.5 的金融文档分析系统,在 FinanceBench(金融问答 benchmark)上跑出了 98.7% 准确率,碾压传统向量 RAG。

金融文档是最严苛的场景——法律条款、财务数据、监管文件,一个字都不能错。PageIndex 能在这个场景跑通,说明推理式检索确实比相似度搜索靠谱。

五、适用场景

  • 💰 金融分析:财报、招股书、监管文件
  • ⚖️ 法律文档:合同审查、判例检索
  • 📚 学术论文:长论文的精准引用定位
  • 🏭 技术手册:产品文档的智能问答

老实说,PageIndex 不是来替代向量数据库的。向量搜索在开放域、大规模语料场景下仍然有优势。但在专业长文档这个场景里——金融、法律、学术——靠相似度不如靠推理,这是 PageIndex 给的最直接的信号。

当然它也有局限:建树依赖 LLM,对于数百页的超长文档,API 成本和延迟需要考虑。另外树结构天然适合单篇文档的深度检索,跨文档聚合不是它的强项。选工具看场景,没有银弹。

总结

  • 向量数据库不是 RAG 的唯一答案,PageIndex 证明了「推理 > 相似度」
  • 一行命令建语义树索引,不用调 chunk 不用选 embedding 模型
  • 树搜索 + LLM 推理 = 可解释、可追溯的检索结果
  • 金融场景 98.7% 准确率,专业文档的利器
  • Agentic RAG 模式给 Agent 装上了「会推理」的检索能力

想试试不用向量数据库的 RAG?pip install + 一行命令,你的大模型就能像人一样翻书找答案了。


评论