get_paper_inf5 プログラム仕様
学術論文のPDFからメタデータを抽出し、ファイルのリネームやExcelサマリーへの出力を行うスクリプト。
このスクリプトは、指定されたPDFファイルからテキストを抽出し、 OpenAI (GPT-4/GPT-5-nano) または Google Gemini などの生成AIモデルに送信して、 論文の著者、タイトル、ジャーナル、発行年などの情報をJSON形式で取得します。 取得したメタデータはExcelファイルに追記され、オプションでPDFファイルの名前を AIが推奨するファイル名に変更することができます。
関連リンク: get_paper_inf5.py 技術ドキュメント
- ai.get_paper_inf5.append_xlsx(path, mode, labels, data_list)[ソース]
Excelファイルにデータを追記します。
指定されたパスのExcelファイルが存在しないか、mode`が"w"の場合は新規作成し、 ヘッダー(`labels)を追加します。それ以外の場合は既存のファイルにデータを追記します。
- ai.get_paper_inf5.extract_text_from_pdf(pdf_path: str, max_bytes: int) str[ソース]
指定されたPDFファイルからテキストを抽出し、最大バイト数に制限します。
PyPDF2ライブラリを使用してPDFの各ページからテキストを抽出し、 指定されたmax_bytesを超えないように切り詰めます。 エラーが発生した場合は空文字列を返します。
- ai.get_paper_inf5.get_inf(input_file, summary_path, api='openai', max_bytes=10000, rename=False, delete_original=True, template='(author_first)_(author_last)_(short_title)_(shortest_name)_(year).pdf')[ソース]
単一のPDFファイルから論文メタデータを抽出し、Excelに記録し、必要に応じてリネームします。
PDFからテキストを抽出し、指定されたAPI(OpenAI GPT-4, OpenAI GPT-5-nano, Google Gemini) を使用してメタデータを取得します。取得したメタデータは`summary_path`で指定された Excelファイルに追記されます。`rename`が`True`の場合、AIが推奨するファイル名に PDFファイルを変更します。
- パラメータ:
input_file (str) -- 処理するPDFファイルのパス。
summary_path (str) -- メタデータを記録するExcelファイルのパス。
api (str) -- (オプション) 使用するAI API ("openai", "openai5", "google")。デフォルトは"openai"。
max_bytes (int) -- (オプション) APIに送信するテキストの最大バイト数。デフォルトは10000。
rename (bool) -- (オプション) ファイル名をAIが推奨するものに変更するかどうか。デフォルトはFalse。
delete_original (bool) -- (オプション) `rename`がTrueの場合、元のファイルを削除するかどうか。デフォルトはTrue。
template (str) -- (オプション) ファイル名変更時に使用するテンプレート。デフォルトはDEFAULT_TEMPLATE。
- 戻り値:
処理が成功した場合はTrue、失敗した場合はFalse、APIの指定が誤っている場合はNone。
- 戻り値の型:
bool or None
- ai.get_paper_inf5.get_metadata_from_google(text: str, template: str) dict[ソース]
Google Gemini APIを使用して論文のメタデータを抽出します。
抽出されたテキストとファイル名テンプレートをプロンプトに組み込み、 Google GeminiモデルにJSON形式での情報抽出をリクエストします。
- ai.get_paper_inf5.get_metadata_from_openai(text: str, template: str) dict[ソース]
OpenAI GPT-4 APIを使用して論文のメタデータを抽出します。
抽出されたテキストとファイル名テンプレートをプロンプトに組み込み、 OpenAI GPT-4モデルにJSON形式での情報抽出をリクエストします。
- ai.get_paper_inf5.get_metadata_from_openai5(text: str, template: str) dict[ソース]
OpenAI GPT-5-nano APIを使用して論文のメタデータを抽出します。
抽出されたテキストとファイル名テンプレートをプロンプトに組み込み、 OpenAI GPT-5-nanoモデルにJSON形式での情報抽出をリクエストします。
- ai.get_paper_inf5.initialize()[ソース]
コマンドライン引数を解析するためのArgumentParserを設定します。
処理するPDFファイルのパス、使用するAI API、サマリーExcelのパス、 再帰検索の有無、ファイルリネームの有無、元のファイル削除の有無、 APIに送る最大テキストバイト数、ファイル名テンプレートなどの引数を定義します。
- 戻り値:
設定済みのArgumentParserオブジェクト。
- 戻り値の型:
- ai.get_paper_inf5.main()[ソース]
スクリプトのメインエントリポイント。コマンドライン引数を処理し、ファイル群に対してメタデータ抽出を実行します。
`initialize`関数を呼び出して引数を解析し、`input_file`の指定に基づいてPDFファイルを検索します。 見つかった各ファイルに対して`get_inf`関数を呼び出し、メタデータ抽出と処理を行います。
- 戻り値:
なし。
- 戻り値の型:
None