2023年3月1日、OpenAI社からChatGPTのAPIが公開されました。
▽ Introducing ChatGPT and Whisper APIs
https://openai.com/blog/introducing-chatgpt-and-whisper-apis
APIというのは、例えばChatGPT APIならChatGPTをプログラムに組み込んでその機能を使うためのツールのようなものです。質問文などを送信することで、ChatGPTが返してくれる返答が取得できます。
Pythonでは非常に簡単にChatGPTを使用することができますので、今回はそのやり方を紹介します。これをマスターすれば、ご自身のPythonアプリにChatGPTの機能を組み込むことが可能です!
OpenAIのAPIキーを取得する
ChatGPTのAPIを使用するためには、APIキーというものが必要です。
OpenAIのアカウントを作成する
OpenAIのアカウントを持っていない人は作成しましょう。OpenAIの公式サイトにアクセスし、SignUpを押します。メールアドレス、パスワードを入力するとメールが届くのでそれをクリック。名前と誕生日、電話番号を入力して、届いたSMSの番号を入力したらアカウントが作成できます。
OpenAIのAPIキーを取得する
OpenAIのAPIのサイトに行き、Developers>Overviewを押します。(ログインが必要な場合はログインした後、)OpenAI API のプラットフォームに到着します。
右上のPersonal>View API keysを押し、+ Create new secret key を押しましょう。すると英数字の列が出てきます。これがAPIキーです。一度しか表示されませんので、確実にコピーしてどこかにメモしておきましょう。
APIキーは認証情報ですので、他人に教えてはいけません。APIキーが漏れて悪用されると、他人がAPIを使った分の請求があなたのアカウントに来ますので要注意。
Pythonでプログラムを書く
Pythonはすでに持っているという前提で話を進めます。もし持っていない人は各自でPythonのインストール方法を調べるか、Google Colabortaryなどのインストール不要でPythonをWeb上で実行できるサービスを利用してみてください。
仮想環境の作成(任意)(Google Colabの人は不要)
PythonをPCに直接インストールしている場合やAnacondaでインストールしている場合は仮想環境の作成がオススメです(Google Colabotaroryの人は不要)。ターミナルを開いて、プログラムを作成するフォルダに移動します(cd ファイルパス)。その後、
Python直接インストールの人は
python -m venv .venv
Anacondaの人は
conda create --name .venv python=3.10
で仮想環境を作成できます。(.venvが仮想環境名。python=3.10でpythonを同時にインストール)
作成できたら、Pythonの人は
.venv/Scripts/activate.ps1
Anacondaの人は
conda activate .venv
で仮想環境に入ります。(.venv)というのが行の先頭についたらOKです。ターミナルを閉じたら仮想環境から出てしまいますので、もう一度activateして仮想環境に入りなおしてください。
パッケージのインストール
ChatGPTの機能を使うためのパッケージ(拡張機能のようなもの)をインストールします。
pip install openai
を実行してください。Google Colaboratoryを使っている人は「!」をつけて
!pip install openai
を実行(セルの左側にある再生ボタンを押します)。
プログラムを書く
import openai
# APIキーをセット
openai.api_key = "YOUR_API_KEY"
question = "こんにちは!"
# ChatGPTにテキスト生成をリクエスト
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": question}
]
)
# 生成されたテキストを表示
print(response["choices"][0]["message"]["content"])
YOUR_API_KEYには先ほど取得したAPIキーを書きます。
また、questionに送信する質問を記入します。
あとはこれを実行するだけでChatGPTを使うことができます!
python chatgpt.py
で実行します(chatgpt.pyはファイル名なので、ご自身のファイル名に合わせてください。)GoogleColaboratoryの人は、セルの再生ボタンをクリックで実行します。
実行結果は以下の通り(返答は少し違うと思います)
応用編
APIキーをファイル外に書く
APIキーは他人に知られてはいけないため、ChatGPT APIを使用したPythonファイルを共有するときは上のコードのように"YOUR_API_KEY"のように書き換える必要があります。しかし、いちいちAPIキーの部分を書き直すのは面倒ですし、それを忘れる可能性もあります。
そこでAPIキーをpythonファイルとは別のファイルに書いておき、そこからAPIキーを取得するということができます。
python-dotenvをインストール
python-dotenvというパッケージをインストールします。
pip install python-dotenv
// Google Colabの人は !pip install python-dotenv
.envファイル
.envファイルを作成し、
OPENAI_API_KEY = "YOUR_API_KEY"
を記載します(つまり一行だけ書いたファイルになります)。YOUR_API_KEYは同じように自分のAPIキーを入力しましょう。
Pythonプログラム
元のプログラムの上から4行:
import openai
# APIキーをセット
openai.api_key = "YOUR_API_KEY"
を、下のように書き換えます
import openai
import os
from dotenv import load_dotenv
# APIキーをセット
load_dotenv()
openai.api_key = os.environ.get("OPENAI_API_KEY")
あとは同じように python chatgpt.py などで実行すれば同じような結果が得られます。
この方法であれば、例えばGitHubにプログラムをアップロードする際、.envはコミットされないようにしておけば(レポジトリ作成の際に.gitignoreをPython用にしておけば、デフォルトで.envファイルはコミットされないはずです)、APIキーの情報だけはアップロードされないという状態を作り出すことができます。
返答を徐々に表示する
ChatGPTから送られる返答はすべてが一気に返ってくる状態ですが、公式サイトのように徐々に文章が表示されるようにも設定できます。その方法については別の記事で紹介したいと思います。
コメント