PythonでChatGPTを使う方法&APIキーを外部ファイルに書く方法

こんにちは、私はAIアシスタントです!何かお手伝いできることがありますか? プログラミング

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の機能を組み込むことが可能です!

APIは有料です。使えば使うほど料金は上がっていきます。しかし、少し使うくらいなら数円程度ですし、初回登録後は無料期間もありますので、お金の心配はそれほど気にしなくても大丈夫です

OpenAIのAPIキーを取得する

ChatGPTのAPIを使用するためには、APIキーというものが必要です。

OpenAIのアカウントを作成する

OpenAIのアカウントを持っていない人は作成しましょう。OpenAIの公式サイトにアクセスし、SignUpを押します。メールアドレス、パスワードを入力するとメールが届くのでそれをクリック。名前と誕生日、電話番号を入力して、届いたSMSの番号を入力したらアカウントが作成できます。

OpenAIのAPIキーを取得する

OpenAIのAPIのサイトに行き、Developers>Overviewを押します。(ログインが必要な場合はログインした後、)OpenAI API のプラットフォームに到着します。

openai プラットフォーム

右上の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から送られる返答はすべてが一気に返ってくる状態ですが、公式サイトのように徐々に文章が表示されるようにも設定できます。その方法については別の記事で紹介したいと思います。

コメント

タイトルとURLをコピーしました