📄 页索引:基于推理的 RAG 文档索引系统,支持deepseek v3模型,兼容其他openai接口模型
"PageIndex"的PDF文档结构分析工具。它能够自动解析PDF文档,提取目录结构,并生成带有页码的文档大纲。该项目的主要功能包括:
- 目录结构提取 :自动检测和提取PDF文档中的目录结构
- 页码映射 :将目录项与实际页面关联起来
- 层次化结构生成 :构建文档的层次化目录树
- 大型节点递归处理 :能够处理超过设定页数或令牌数的大型章节
项目使用以下方法解析PDF文档:
- 目录检测流程 :
- 检查文档前几页是否存在目录
- 判断目录是否包含页码信息
- 根据不同情况选择适当的处理策略
- 处理策略 :
- 有目录有页码:直接提取目录结构和页码,映射到实际位置
- 有目录无页码:提取目录结构,通过AI分析内容确定页码
- 无目录:通过AI分析整个文档生成结构
- AI辅助分析 :
- 使用OpenAI的API(如gpt-4o模型)分析文档内容
- 识别章节标题在页面中的位置
- 验证提取结构的准确性并修复问题
run_pageindex.py
:主脚本,处理命令行参数和运行流程page_index.py
:核心功能实现,包含目录结构提取、页码映射等逻辑utils.py
:工具函数,包括PDF文本提取、API调用、JSON处理等config.yaml
:配置文件,定义各种参数设置
工具支持多种配置参数:
- 使用的AI模型
- 检查目录的最大页数
- 每个节点的最大页数和令牌数
- 是否添加节点ID、节点摘要和文档描述
- 读取PDF文档并提取文本内容
- 检测是否存在目录及其格式
- 根据检测结果选择处理方法
- 生成初始结构并验证准确性
- 修复不准确的部分
- 对大型节点进行递归处理
- 添加节点ID、摘要等附加信息
- 输出最终的JSON结构
这个工具特别适合处理大型PDF文档,如学术论文、书籍、技术文档等,帮助用户快速理解文档结构。