PageIndex:一个开源PDF文档索引系统,可实现更精准、更逻辑化的检索
PageIndex是什么?
PageIndex 是一个开源的PDF文档索引系统,只要提升长篇专业文档的检索准确性和LLM的推理能力。它通过将PDF文档转化为层次化的树状结构,取代了传统的向量 RAG 语义相似度搜索,从而实现更精准、更逻辑化的检索。
PageIndex核心功能包括将文档转化为类似智能目录的树状结构,提供精准的页面定位,避免随意分块,并适配超长文档,轻松处理数百甚至上千页的内容。
工作原理是将 PDF 文档转化为语义树结构,结合查询分析、文档选择、节点选择和内容生成,最终提供准确的回答。与依赖向量数据库或传统分块方式的系统不同,PageIndex 完全免费且开源。它特别适合处理金融报告、监管文件、学术教科书、法律或技术手册,以及任何超出LLM上下文限制的文档。
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