ChatGPT Batch Whipperでバッチジョブを簡単に！

ChatGPT Batch Whipperは、ChatGPTを使用してバッチジョブをシンプルにするツールです。このツールを使うと、次のことができます。

プロンプトを保存して再利用し、入力CSVファイルを使用して自動的に複数の入力に適用することができます。
同じプロンプトに対する入力データを同じ会話に送信することで、連続性と一貫性を確保します。
データ保存機能により、プロセスを意図せず停止しても、バッチジョブを中断した場所から再開することができます。
時間枠の制限を心配する必要がありません。このツールは再実行まで待機するため、1時間の送信回数を超えることはありません。
ChatGPT Batch Whipperは、ChatGPTバッチジョブを効率的かつ使いやすく行うためのツールです。ご意見やご提案がありましたら、ぜひお試しください！

GitHubリポジトリをチェックして、始めてください：  
[https://github.com/CodeDiggerM/chatgpt-batch-whipper](https://github.com/CodeDiggerM/chatgpt-batch-whipper)。
リポジトリにスターをつけて、他の人にも知ってもらって、ツールの改善とより多くの人々への到達を支援してください。

ご支援いただき、ありがとうございます！

## Installation
### Use PIP command
※プログラムでAPIを使用したくない場合は、この手順をスキップすることができます。

1.GitHubから最新バージョンのソフトウェアをpipで直接インストールします。
```bash
  pip install git+https://github.com/CodeDiggerM/chatgpt-batch-whipper.git
```
2.**auth**モードに移動します。これにより、ブラウザウィンドウが開きます。ブラウザウィンドウでChatGPTにログインし、ブラウザを閉じます。
```bash
run_chatgpt auth
```
### Streamlit UIのセットアップ
以下は、Streamlit UIをセットアップする手順です。
1.ソースコードをワーキングディレクトリにクローンします。
```bash
git clone https://github.com/CodeDiggerM/chatgpt-batch-whipper.git
```
2.依存関係をインストールします。
```bash
pip install -r requirements.txt
```

3.Playwrightにブラウザをインストールします（まだインストールされていない場合）。デフォルトではFirefoxが使用されます。
```
playwright install firefox
```
4.chatgpt-batch-whipper/に移動します。
```bash
cd chatgpt_batch_whipper/
````

5. Streamlitでメインページを実行します。
Streamlitについては[streamlit](https://github.com/streamlit/streamlit) を参照してください。
```bash
streamlit run start_whipper.py
````
6. OpenAIアカウントに認証します。
 **auth** ボタンをクリックします。
![auth1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3192752/b6b1adcf-5511-9962-bbc3-ddbc41199a54.png)
これにより、Playwrightを使用してインストールしたWebブラウザで認証ページが開きます。以下のように、登録済みのアカウントで認証します。
![auth2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3192752/42b5db2b-2c3c-b4ac-1672-38ec1962cce0.png)
上記の手順に従って、Streamlit UIをセットアップし、ChatGPT Batch Whipperを使用することができます。

## Quickstart

### APIを使う
1.ChatGPTから認証を受けます。
```python
from chatgpt_batch_whipper.pub.chatgpt_wrapper import ChatGPT
bot = ChatGPT()
response = bot.auth()
print(response) 
```
2. ChatGPTに質問を投げます。
```python
from chatgpt_batch_whipper.pub.chatgpt_wrapper import ChatGPT
bot = ChatGPT()
response = bot.ask("Greeting!")
print(response) 
```
### Streamlit UIの説明
以下は、Streamlitを使用したChatGPT Batch Whipperの実行手順です。
```
streamlit run streamlit_app.py
```

#### Single shoot mode(単発モード)

1.**Single shoot mode**を選択します。.
2.プロンプトを入力し、**submit**をクリックします。
3.**submit**をクリックします。
![single shoot.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3192752/50895f04-b27f-c4be-e083-a4e650fd15a9.png)


#### Fully Automatic mode(全自動モード)
You can apply your prompt to multiple records in the **Fully Automatic mode**.

以下は、Fully Automatic modeでのプロンプトの適用方法です。

1.**Fully Automatic mode**を選択します。.
2.**CSV file**を選択します。
3.処理したい列を選択します。
4.**prompt**を入力します。.
5.**Submit**クリックします。
![Fully Automatic mode.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3192752/cc5875c0-4862-8c4c-44b5-db6503ba71d7.png)
6.処理が完了すると、処理結果は**The processed result**セクションに表示されます。
![Fully Automatic mode result.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3192752/93923f74-aa75-226e-beb7-6756fc0b39ae.png)
7. 処理結果を確認し、**is false**をチェックして、再処理する必要のある**failed**のものを再処理することができます。　
![Fully Automatic mode result check.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3192752/c2761c33-3c96-b587-32e3-9eb19052dd7f.png)

### ヒント
以下は、プロンプトを使用する際のヒントです。
* **Add**ボタンをクリックして、プロンプトを保存できます。
* **prompt list**を選択して、古いプロンプトを選択することができます。
* **Delete Prompt**をクリックして、古いプロンプトを削除できます。
* **Delete Cached result**をクリックして、保存された処理結果を削除できます。
* **Update**をクリックして、保存された処理結果を更新できます。
* **Download**をクリックして、結果ファイルをダウンロードできます。

上記の手順とヒントを参考にして、ChatGPT Batch Whipperを使用して、データ処理を効率的に行ってください。
## まとめ
ChatGPT Batch Whipperは、ChatGPTを使用してバッチ処理を行うためのユーティリティツールです。このツールを使用すると、プロンプトを保存して再利用したり、同じプロンプトを使用してデータの処理を継続したり、処理結果を保存したりできます。また、完全自動モードを使用することで、複数のレコードに対してプロンプトを適用することができます。

この記事では、ChatGPT Batch Whipperを使用する際の手順やヒントについて紹介しました。これらの手順やヒントを覚えておくことで、ユーティリティツールの使用がよりスムーズになることでしょう。

ChatGPT Batch Whipperは、データの処理を自動化する上で非常に役立つツールです。ぜひ、ChatGPT Batch Whipperを使用して、効率的なデータ処理を行ってみてください。