PDFを解析し、LLMSを使用してコンテンツを分析するためのパッケージ。
このパッケージは、GPTPDFの概念に基づいた改善です。
GPTPDFはPymUPDFを使用してPDFを解析し、テキスト領域と非テキスト領域の両方を識別します。次に、特定のルールに基づいてテキスト領域をマージまたはフィルターし、最終結果を解析のマルチモーダルモデルに入力します。この方法は特に効果的です。
この概念に基づいて、私はいくつかの小さな改善を行いました。
レイアウト分析モデルを使用して、PDFの各ページは、テキスト、タイトル、フィギュア、フィギュア、テーブル、テーブルキャプション、ヘッダー、フッター、参照、および方程式を含む各領域のタイプを識別するために解析されます。各領域の座標も取得されます。
レイアウト分析結果の例:
[{'header': ((101, 66, 436, 102), 0)},
{'header': ((1038, 81, 1088, 95), 1)},
{'title': ((106, 215, 947, 284), 2)},
{'text': ((101, 319, 835, 390), 3)},
{'text': ((100, 565, 579, 933), 4)},
{'text': ((100, 967, 573, 1025), 5)},
{'text': ((121, 1055, 276, 1091), 6)},
{'reference': ((101, 1124, 562, 1429), 7)},
{'text': ((610, 565, 1089, 930), 8)},
{'text': ((613, 976, 1006, 1045), 9)},
{'title': ((612, 1114, 726, 1129), 10)},
{'text': ((611, 1165, 1089, 1431), 11)},
{'title': ((1011, 1471, 1084, 1492), 12)}]
この結果には、各地域のタイプ、座標、および読み取り順序が含まれます。この結果を使用することにより、より正確なルールを設定して、PDFを解析できます。
最後に、対応する領域の画像をGPT-4OやQWEN-VLなどのマルチモーダルモデルに入力して、RAGソリューションに優しいテキストブロックを直接取得します。
| IMG_PATH | タイプ | page_no | ファイル名 | コンテンツ | filepath |
|---|---|---|---|---|---|
| {Absolute_path}/page_1_title.png | タイトル | 1 | 注意が必要です | [テキストブロック1] | {file_absolute_path} |
| {Absolute_path}/page_1_text.png | 文章 | 1 | 注意が必要です | [テキストブロック2] | {file_absolute_path} |
| {absolute_path}/page_2_figure.png | 形 | 2 | 注意が必要です | [テキストブロック3] | {file_absolute_path} |
| {Absolute_path} /page_2_figure_caption.png | 図のキャプション | 2 | 注意が必要です | [テキストブロック4] | {file_absolute_path} |
| {Absolute_path}/page_3_table.png | テーブル | 3 | 注意が必要です | [テキストブロック5] | {file_absolute_path} |
| {Absolute_path}/page_3_table_caption.png | テーブルキャプション | 3 | 注意が必要です | [テキストブロック6] | {file_absolute_path} |
| {Absolute_path}/page_1_header.png | ヘッダ | 1 | 注意が必要です | [テキストブロック7] | {file_absolute_path} |
| {Absolute_path}/page_2_footer.png | フッター | 2 | 注意が必要です | [テキストブロック8] | {file_absolute_path} |
| {Absolute_path}/page_3_reference.png | 参照 | 3 | 注意が必要です | [テキストブロック9] | {file_absolute_path} |
| {Absolute_path}/page_1_equation.png | 方程式 | 1 | 注意が必要です | [テキストブロック10] | {file_absolute_path} |
詳細については、llm_parser.pyメイン関数をご覧ください。
pip install llmdocparser
このプロジェクトをソースからインストールするには、次の手順に従ってください。
リポジトリをクローンします:
まず、リポジトリをローカルマシンにクローンします。端末を開き、次のコマンドを実行します。
git clone https://github.com/lazyFrogLOL/llmdocparser.git
cd llmdocparser依存関係をインストールします:
このプロジェクトは、依存管理に詩を使用しています。詩がインストールされていることを確認してください。そうでない場合は、詩のインストールガイドの指示に従うことができます。
詩がインストールされたら、プロジェクトのルートディレクトリで次のコマンドを実行して、依存関係をインストールします。
poetry installこれにより、 pyproject.tomlファイルを読み取り、プロジェクトに必要なすべての依存関係をインストールします。
from llmdocparser . llm_parser import get_image_content
content , cost = get_image_content (
llm_type = "azure" ,
pdf_path = "path/to/your/pdf" ,
output_dir = "path/to/output/directory" ,
max_concurrency = 5 ,
azure_deployment = "azure-gpt-4o" ,
azure_endpoint = "your_azure_endpoint" ,
api_key = "your_api_key" ,
api_version = "your_api_version"
)
print ( content )
print ( cost )パラメーター
LLM_TYPE:str
オプションはAzure、Openai、DashScopeです。
pdf_path:str
PDFファイルへのパス。
output_dir:str
解析されたすべての画像を保存するための出力ディレクトリ。
max_concurrency:int
GPT解析ワーカースレッドの数。バッチ呼び出し詳細:バッチサポート
azureを使用する場合、azure_deploymentとazure_endpointパラメーターを渡す必要があります。それ以外の場合、APIキーのみを提供する必要があります。
base_url:str
OpenAI互換サーバーURL。詳細:OpenAI互換サーバー
「注意が必要です」という分析には、選択されたモデルはGPT-4Oで、次のようにコストがかかります。
Total Tokens: 44063
Prompt Tokens: 33812
Completion Tokens: 10251
Total Cost (USD): $0.322825
ページあたりの平均コスト:0.0215ドル