PageIndex:より正確で論理的な検索を実現するオープンソースのPDFインデックスシステム
PageIndexとは?
PageIndexはオープンソースのPDFドキュメントインデックスシステムであり、専門的な長文ドキュメントの検索精度とLLMの推論能力を向上させます。PDFドキュメントを階層的なツリー構造に変換することで、従来のベクトルRAGセマンティック類似度検索に代えて、より正確で論理的な検索を実現します。
PageIndexの中核機能には、ドキュメントをスマートな目次に似たツリー構造に変換すること、正確なページ位置情報の提供、任意チャンク分けの回避、超長文ドキュメントへの対応(数百から数千ページのコンテンツを容易に処理)などが含まれます。
動作原理は、PDFドキュメントをセマンティックツリー構造に変換し、クエリ分析、ドキュメント選択、ノード選択、コンテンツ生成と組み合わせて、最終的に正確な回答を提供することです。ベクトルデータベースや従来のチャンク分け方式に依存するシステムとは異なり、PageIndexは完全無料かつオープンソースです。財務報告、規制文書、学術教科書、法律・技術マニュアル、およびLLMのコンテキスト制限を超えるあらゆるドキュメントの処理に特に適しています。

PageIndexの中核機能
ドキュメント処理:長文ドキュメント、特に専門的なドキュメントを処理でき、検索ツリー構造を構築することで推論に基づく検索拡張生成(RAG)の準備を行います。
目次の抽出と処理
ドキュメントから目次からコンテンツとページ番号を抽出できます。
目次を変換して特定のJSON形式に変換し、後続の処理を容易にします。
ページ番号処理:目次項目に物理インデックスを追加し、ページ番号の欠落や誤りを処理し、複数回の試行を通じて誤った目次項目を修復します。
ノード処理:大きなノードを再帰的に処理し、トークン数とページ数の制限を満たすように、より小さなノードに分割します。
検証と修復:目次の正確性を検証し、精度を計算し、正確でない結果を修復します。
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
脚本プランナー▸
AIアプリ
AIニュース 