PageIndex:无向量推理式RAG引擎
无需向量数据库和分块,通过构建层级树索引并进行推理式检索,实现类人的上下文感知文档检索。
- Star 数
- ★ 39k
- 最近更新
- 今天
- License
- MIT
- 主语言
- Python
- FA 评分
- 33/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API
- 费用
- 有免费版,另有付费云服务
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 金融分析师需要从SEC文件或财报中快速提取特定信息,进行投资研究。
- 不适合
- 需要完全离线、数据不出本地的团队(云端索引与OCR需上传文档)
- 处理扫描件或复杂版式文档的用户(本地版仅支持文本型PDF)
- 追求稳定生产可用的团队(Flash模式仍为预览版)
这个 Agent 能做什么,适合哪些场景?
PageIndex 是一个开源的、无向量、基于推理的RAG系统,它从长文档中构建层级树状索引,并利用LLM在该索引上进行推理检索。与传统的基于向量相似度的RAG不同,PageIndex通过树搜索模拟人类专家的阅读方式,强调相关性与可解释性。该仓库提供自托管的Python包,可生成PDF或Markdown文档的树状结构,并支持标准PDF解析和可选的PageIndex Flash快速生成。项目声称在FinanceBench金融文档问答基准上达到98.7%的准确率,显著优于向量RAG方案。部署方式包括自托管、云服务(通过API/MCP)和企业私有化部署。
PageIndex将PDF或Markdown文档转换为层级树状索引(类似目录),每个节点包含标题、摘要和页码。检索时,LLM对树进行推理式搜索,返回最相关的文档部分。核心操作包括:运行run_pageindex.py生成树结构,支持--pdf_path或--md_path参数;可选--flash模式进行启发式快速生成;通过examples/agentic_vectorless_rag_demo.py演示Agentic RAG。最终输出是带有node_id、start_index、end_index和summary的JSON树结构。
- 金融分析师需要从SEC文件或财报中快速提取特定信息,进行投资研究。
- 法律团队在数千页的法规文件中查找相关条文,确保合规性。
- 医疗研究人员从大量学术论文中检索特定研究结果,用于文献综述。
- 技术文档编写者从产品手册中查找API细节,更新用户指南。
- 企业知识管理需要可追溯、可解释的文档检索,用于内部问答系统。
如何安装或部署这个 Agent?
从GitHub克隆仓库,安装依赖:pip3 install --upgrade -r requirements.txt。需要设置LLM API密钥,在根目录创建.env文件并添加OPENAI_API_KEY=your_key(支持LiteLLM多模型)。
如何使用这个 Agent?
使用python3 run_pageindex.py --pdf_path /path/to/document.pdf生成PDF树结构,或使用--md_path处理Markdown文件。可选参数包括--model(默认gpt-4o-2024-11-20)、--max-pages-per-node等。快速模式:python3 run_pageindex.py --flash --pdf_path ...。对于Agentic RAG,安装openai-agents并运行python3 examples/agentic_vectorless_rag_demo.py。
这个 Agent 有哪些优点和局限?
- 无向量数据库和无分块,避免了传统RAG的相似度与相关性不匹配问题。
- 树状索引和推理式检索提供了更好的可追溯性和可解释性。
- 在FinanceBench上达到98.7%的准确率,优于向量RAG。
- 支持自托管、云服务和企业部署,灵活性强。
- 依赖LLM推理,导致检索延迟和成本较高,且需要API密钥。
- 标准PDF解析对复杂版面效果有限,高质量解析需使用云服务。
- 自托管版本仅支持PDF和Markdown,部分高级功能(如OCR)需付费。
- 项目仍处于早期阶段,Flash模式为预览版,可能不稳定。
这个 Agent 与同类方案有什么区别?
与传统的向量数据库RAG系统(如基于FAISS或Pinecone的方案)相比,PageIndex强调推理而非相似度,声称在专业文档上准确率更高。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| PageIndex:无向量推理式RAG引擎 当前 | 33 · 缺口较多 | 代码库 / SDK免费版 + 付费版 | ★ 39k | 今天 | Python | OpenAI API |
| AI 银行账单自动化 | 48 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 627 | 2 个月前 | Jupyter Notebook | OpenAI API |
| 可控复杂 RAG 智能体 | 40 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 1.6k | 27 天前 | Jupyter Notebook | OpenAI API |
| CAMEL 多智能体框架 | 61 · 存在缺口 | 代码库 / SDK免费 + 模型费 | ★ 18k | 7 天前 | Python | OpenAI API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:仓库未提供任何权限模型、用户确认机制、数据流透明性说明、敏感数据处理策略、依赖安全审计、外部影响评估、回滚机制或来源归属。所有信任相关标准均无证据支持,故评分为0。
证据显示:代码和测试在内部逻辑上一致,测试覆盖了关键路径,但依赖版本固定(如litellm==1.84.0)且未提供依赖可用性保障;错误处理在测试中有体现,但生产环境中的失败消息未明确。因此自洽性2分,依赖可用性1分,失败消息1分。
证据显示:README明确了目标受众(处理长文档的专业用户)和场景(金融、法律等),能力边界(标准PDF解析,复杂PDF需云服务)有说明,但触发精度(如命令行参数)未详细说明,环境适配(如操作系统、Python版本)未明确。因此受众与场景2分,能力边界2分,触发精度1分,环境适配1分。
证据显示:README结构清晰,安装步骤明确,示例和FAQ存在,已知限制(如标准PDF解析)有提及,MIT许可证明确,但版本控制与变更日志缺失,维护责任未明确(未验证发布者)。因此信息架构2分,安装说明2分,命名稳定性1分,示例与FAQ 2分,已知限制1分,许可证2分,版本与变更日志0分,维护责任1分。
证据显示:输出为树结构JSON,可直接用于RAG,边际价值在于无需向量数据库,但成本效益未量化(如API成本、性能对比)。因此输出可用性2分,边际价值2分,成本效益1分。
证据显示:README声称98.7%准确率,但未提供可复现的验证步骤;跨来源佐证有限(仅提及外部基准);事实与推断未明确分离。因此声明可追溯性1分,跨来源佐证1分,事实与推断分离1分。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
- 未提供任何安全或隐私相关文档,使用前需自行评估数据泄露风险。
- 依赖版本固定但未提供安全审计,建议检查依赖漏洞。
- 性能声明(98.7%准确率)缺乏可复现的验证步骤,需谨慎对待。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v0.4.4 PageIndex 0.4.4 — cheaper than vector index; also runs on your Claude subscription
发布说明摘录
- Unified SDK: vectorless RAG. Local or cloud. Index or chat. - Faster: trees are created from layout stats. - Cheaper than vector index: LLMs only write node summaries. - Runs on your Claude subscription. Index, to chat, to agent integration, one client. Local mode needs no server, no vector DB, no PageIndex API key. ```python client = PageIndexClient() client.submit_document("report.pdf") client.chat("What does the report conclude?") ``` Highlights …在 GitHub 查看 ↗ -
v0.4.3 PageIndex 0.4.3 — cheaper than vector index; also runs on your Claude subscription
发布说明摘录
- Unified SDK: vectorless RAG. Local or cloud. Index or chat. - Faster: trees are derived from layout stats. - Cheaper than Vector Index: LLMs only write node summaries. - Runs on your Claude subscription. Index, to chat, to agent integration, one client. Local mode needs no server, no vector DB, no PageIndex API key. ```python client = PageIndexClient() client.submit_document("report.pdf") client.chat("What does the report conclude?") ``` Highlights …在 GitHub 查看 ↗ -
发布说明摘录
PageIndex is now cheaper to build than a vector index. - The PageIndex SDK, local or cloud — vectorless, reasoning-based RAG, end to end. - Much faster indexing — the PageIndex Flash engine gets the tree from layout stats: no LLM involved for the structure generation itself, LLMs only write the node summaries, and tree expansion proposes a wave of nodes concurrently. ```python client = PageIndexClient() client.submit_document("report.pdf") client.chat("What does the report conclude?") ``` Index, to chat, to agent integration, one client. …在 GitHub 查看 ↗