0. はじめに
ChatGPTにはAPIが公開されていて、それを呼び出すプログラムをPythonやNode.jsで作成可能、だというのは皆さんご存じと思います。
OpenAI公式ページにあるAPIの紹介ページ → OpenAI API
そんな中、PythonでWebアプリ(*)を作るフレームワーク「Django」を使って、ChatGPTのAPIを呼び出す自前のChatアプリを作るという、まあまあ面白い記事がありました。出来上がると本記事の表紙のようなアプリが出来上がります。
How To Implement Chat GPT In Django
(*) Webアプリとは、大雑把にいえばブラウザ上で動作するアプリのことです。
それだけならここで紹介するほどのことでもないのですが、やってみると1点プログラミング上のハマり箇所があったので、それも含めて全自動でChatGPTのフロントWebアプリサーバを立ち上げるスクリプトにまとめましたので、こちらで紹介しておこうと思います。
1. 必要な準備
(1) Ubuntu環境を準備します
ココは面倒な方にとってはちょっとだけ面倒なのですが・・・Ubuntu環境が必要です。
ちなみに、本記事の内容は、今のところWindows WSLとHyper-V上のUbuntuにて動作成功しています。
(2) OpenAIのAPIを呼び出せるアカウントを作成します
OpenAIのアカウントを作成した後、paid account登録を行う必要があるものと思われます(**)。
(**) ほんとは無料お試し枠があるかもしれません・・・私は完全なプログラムができる前にpaid account登録しちゃったので確かめられませんでした。)
Paid account登録は、こちらでクレジットカードなどの情報を登録をすることで完了しました。
https://platform.openai.com/account/billing/overview
(3) Organization IDとAPI Keyを取得しておきます
Organization IDの取得先はこちら。API Keyの取得先はこちらです。
2. スクリプトはこちらです
以下がスクリプトです。ただしそのままではなく、Organization IDとAPI Keyの箇所を、前章で取得して頂いた内容に書き換えて使います。
sudo apt update
sudo apt install -y python
sudo apt install -y python-is-python3
sudo apt install -y python3-django
sudo apt install -y python3-pip
pip install openai
cd ~
sudo apt install -y git
git clone https://github.com/Johnkh2002/ChatGPT-Tutorial.git
sed -i -e 's/openai.api_key/openai.organization = \"取得したOrganization ID\"\n openai.api_key/' ChatGPT-Tutorial/chat/views.py
sed -i -e 's/YOUR_API_KEY/取得したAPI Key/' ChatGPT-Tutorial/chat/views.py
cd ChatGPT-Tutorial
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
(1)で準備したUbuntu環境にてTerminalを立ち上げ、上記の内容を含む .shファイルを作成し、chmodコマンドで実行可能な形式にして実行します。途中で聞かれる質問は全てyes(y)と回答します。それだけで、サーバ立ち上げまで完了します。
と言われると難しく感じてしまう場合は、後ろの方の「5. プログラミングできなくてもできる?」の章を参考にしてみて下さい。
スクリプトの実行が無事完了すると、Terminalに以下の画面が現れます。あとは右クリックしてブラウザを立ち上げれば、表紙の画像のようなアプリが立ち上がります!!
3. ハマり箇所は何だったか?
元々の記事のHow To Implement Chat GPT In Djangoには出てこなかったのですが、views.pyの中のopenai.api_keyの前に、openai.organizationの行を追加しないと、(たとえpaid account登録してあっても) API呼び出しが上手くいきませんでした。
4. APIって高い?
そうでもなさそうです。OpenAIのPricing情報 によれば、1,000トークンで$0.002、そして1,000トークンが750wordsらしいので、人間が手で入力して会話している分にはよっぽど大丈夫です。APIを自動でガンガン呼び出すプログラムを作るとなると注意が必要ですが・・・なお、課金状況は以下のサイトで確認できます。https://platform.openai.com/account/usage
5. プログラミングできなくてもできる?
Ubuntuさえ操作できればおそらく楽勝です。このサイトの下の方についている添付ファイルをダウンロードし、少しだけ編集して実行するだけでOK。以下の感じですので参考にしてみてください。
あとがき. Ubuntu環境のバックアップを持つことのススメ
私の自宅PCはWindows10でして、この手のUbuntu上の実験を行う際はHyper-Vを使っています。ここで以下のように、いつでもやり直しが効き、かつ要らなくなったらまっさらに削除できるように、チェックポイントを作成しています。