PageIndex:一个开源PDF文档索引系统,可实现更精准、更逻辑化的检索

PageIndex是什么?

PageIndex 是一个开源的PDF文档索引系统,只要提升长篇专业文档的检索准确性和LLM的推理能力。它通过将PDF文档转化为层次化的树状结构,取代了传统的向量 RAG 语义相似度搜索,从而实现更精准、更逻辑化的检索。

PageIndex核心功能包括将文档转化为类似智能目录的树状结构,提供精准的页面定位,避免随意分块,并适配超长文档,轻松处理数百甚至上千页的内容。

工作原理是将 PDF 文档转化为语义树结构,结合查询分析、文档选择、节点选择和内容生成,最终提供准确的回答。与依赖向量数据库或传统分块方式的系统不同,PageIndex 完全免费且开源。它特别适合处理金融报告、监管文件、学术教科书、法律或技术手册,以及任何超出LLM上下文限制的文档。

PageIndex:一个开源PDF文档索引系统.webp

PageIndex核心功能

  • 文档处理:能够处理长文档,尤其是专业文档,通过构建搜索树结构来为基于推理的检索增强生成(RAG)做好准备。

  • 目录提取与处理

  • 可以从文档中提取目录内容,处理目录中有无页码的不同情况。

  • 对目录进行转换,将其转换为特定的 JSON 格式,方便后续处理。

  • 页码处理:为目录项添加物理索引,处理页码缺失或不正确的情况,通过多次尝试修复不正确的目录项。

  • 节点处理:对大节点进行递归处理,将其拆分为更小的节点,以满足 token 数量和页面数量的限制。

  • 验证修复:验证目录的准确性,计算准确率,并对不准确的结果进行修复。

PageIndex特点

  • 层次树结构:使 LLM 能够逻辑性地遍历文档,就像一个智能的、为 LLM 优化的目录。

  • 精确页面引用:每个节点包含其摘要和开始/结束页面的物理索引,实现精准检索。

  • 无任意分块:不使用任意分块,节点遵循文档的自然结构。

  • 支持大规模文档:设计用于轻松处理数百甚至上千页的文档。

PageIndex适用场景

金融领域

  • 财务报告分析:快速定位关键财务数据和指标。

  • 监管文件解读:精准查找法规条款,确保合规。

法律领域

  • 法律文件检索:高效查找法律条款和案例。

  • 合同审查:快速定位合同中的关键条款。

学术研究

  • 学术论文检索:快速找到研究结果和理论支持。

  • 教科书学习:便捷定位特定章节和知识点。

技术文档

  • 技术手册:快速查找操作步骤和技术参数。

  • 项目文档:高效检索项目中的关键信息。

企业内部

  • 内部报告:快速定位长篇报告中的关键内容。

  • 知识库管理:提升知识共享和检索效率。

医疗领域

  • 医学文献检索:快速找到研究结果和治疗方法。

  • 临床指南:精准定位临床操作指南。

教育领域

  • 在线课程资料:快速查找课程重点内容。

  • 考试复习资料:高效定位复习要点。

政府机构

  • 政策文件解读:快速查找政策条款。

  • 公共信息检索:提升公共服务效率。

PageIndex使用方法

1. 安装依赖项

pip3 install -r requirements.txt

2. 设置 Openai API 密钥

在根目录创建一个 .env 文件并添加你的 API 密钥:

CHATGPT_API_KEY=your_openai_key_here

3. 对 PDF 运行 PageIndex

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

还可以通过额外的可选参数自定义处理过程,例如:

--model                 OpenAI model to use (default: gpt-4o-2024-11-20)
--toc-check-pages       Pages to check for table of contents (default: 20)
--max-pages-per-node    Max pages per node (default: 10)
--max-tokens-per-node   Max tokens per node (default: 20000)
--if-add-node-id        Add node ID (yes/no, default: yes)
--if-add-node-summary   Add node summary (yes/no, default: no)
--if-add-doc-description Add doc description (yes/no, default: yes)

Github:https://github.com/VectifyAI/PageIndex

项目官网:https://vectify.ai/pageindex

收藏
最新工具
Sandspiel
Sandspiel

一款基于细胞自动机和实时物理的开源像素沙盘游戏,玩家可以在虚拟沙...

印象地图
印象地图

这是个可以帮你记住全国省市位置的测试工具。打开网站就能用,选个模...

Sandtris
Sandtris

一款把经典俄罗斯方块和流沙物理效果结合的休闲游戏。玩家需要利用沙...

Maze Toys
Maze Toys

一个以迷宫游戏为主的网站,提供多种类型的迷宫玩法,包括Mini、...

AiPyApp
AiPyApp

一款以Python为核心的开源新人工智能体助手,结合大模型和 P...

Adobe Express
Adobe Express

Adobe推出的一站式设计工具,整合了图像、视频、文档/PDF、...

Intangible AI
Intangible AI

创意行业空间智能AI平台,通过简洁的3D界面与空间智能技术解决A...

法大大iTerms
法大大iTerms

法大大推出的一站式法律AI工作台,基于自研法律大模型的AI智能体...

Relume
Relume

一个通过AI来优化网站设计与搭建流程的平台,可以快速生成网站地图...

Pomelli
Pomelli

Google开发的AI营销工具,主要服务中小商家。你只需要提供企...