# get_paper_inf.py Documentation

## 1) プログラムの動作
このプログラムは、指定されたPDFファイルから学術論文のメタデータを抽出し、Excelファイルに保存するツールです。プログラムは以下の手順で動作します：

1. コマンドライン引数を解析し、必要なパラメータを取得します。
2. 指定されたPDFファイルからテキストを抽出します。
3. 抽出したテキストをOpenAIまたはGoogleのAPIに送信し、論文のメタデータを取得します。
4. 取得したメタデータをExcelファイルに保存します。
5. オプションで、生成されたファイル名に基づいて元のPDFファイルをリネームまたはコピーします。

## 2) 必要な非標準ライブラリとインストールコマンドとインストール方法
このプログラムは以下の非標準ライブラリを使用しています：

- `python-dotenv`: 環境変数を管理するためのライブラリ
- `openpyxl`: Excelファイルを操作するためのライブラリ
- `PyPDF2`: PDFファイルからテキストを抽出するためのライブラリ
- `google-generativeai`: Googleの生成AI APIを使用するためのライブラリ

### インストールコマンド
以下のコマンドを使用して、必要なライブラリをインストールできます：

```bash
pip install python-dotenv openpyxl pypdf2 google-generativeai
```

## 3) 必要な入力ファイル
プログラムを実行するためには、以下の入力ファイルが必要です：

- **PDFファイル**: メタデータを抽出する対象のPDFファイルのパスを指定します。
- **環境変数ファイル**: `translate.env`および`accounts.env`という名前の環境変数ファイルが必要です。これらのファイルには、APIキーやモデル名などの設定が含まれています。

## 4) 実行後に生成される出力ファイル
プログラムの実行後、以下の出力ファイルが生成されます：

- **summary.xlsx**: 抽出したメタデータが保存されるExcelファイル。各論文のメタデータが行として追加されます。

## 5) コマンドラインでの使用例 (Usage)
プログラムはコマンドラインから以下のように実行します：

```bash
python get_paper_inf.py [options] <input_file>
```

### 引数
- `--api`: 使用する生成AIのAPIを指定します。デフォルトは`openai`です。`google`も選択可能です。
- `input_file`: 処理するPDFファイルのパスを指定します。
- `--summary_path`: 出力するExcelファイルのパスを指定します。デフォルトは`summary.xlsx`です。
- `--recursive`: サブディレクトリを再帰的に処理する場合は`1`を指定します。デフォルトは`0`です。
- `--rename`: 生成AIで推薦ファイル名を取得できた場合にリネームする場合は`1`を指定します。デフォルトは`0`です。
- `--delete_original`: リネームした場合に元のファイルを削除する場合は`1`を指定します。デフォルトは`1`です。
- `--max_bytes`: APIに送信する最大テキストバイト数を指定します。デフォルトは`10000`です。
- `--template`: ファイル名を変える際のテンプレートを指定します。デフォルトは`(author_first)_(author_last)_(short_title)_(shortest_name)_(year).pdf`です。

### 使用例
```bash
python get_paper_inf.py --api openai my_paper.pdf --summary_path output.xlsx --rename 1
```

このコマンドは、`my_paper.pdf`からメタデータを抽出し、`output.xlsx`に保存し、生成されたファイル名で元のPDFファイルをリネームします。