OpenAIのAPIキーを取得する
以下からOpenAI platformのページにログインします。
View API keysをクリックします。
Create new secret keyをクリックします。
ここで表示されたAPIキーをコピーしてローカルにテキストとして保存しておきます。 Done
をクリックすると、二度と表示されないので注意してください。
APIキーが追加されました。
Google Colabの新規ノートブックを作成する
Google DriveでColabのノートを新規作成してください。
Google Colabのノートブックのランタイム変更する
ランタイム>ランタイムのタイプを変更
でCPU
→TPU
に変更します。
ランタイムの設定を変更していくと無料でもスペックが上がるので便利です。
ランタイム→ランタイムのタイプを変更→GPUかTPUに変更します。
ChatGPTを利用するためのPythonコードを書く
必要なライブラリのインストール
# 必要なライブラリをインストールします
!pip install openai
APIキーの設定
# APIキーの設定
import os
import getpass
os.environ["OPENAI_API_KEY"] = getpass.getpass('OpenAI API Key:')
実際の対話
# 対話
import openai
# 質問の設定
content = "日本の初代総理大臣は誰ですか?"
# APIキーの設定
openai.api_key = os.getenv("OPENAI_API_KEY")
# Chatモデルの初期化
chat_model = "gpt-3.5-turbo"
# 初期メッセージ
messages = [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": content},
]
# 対話の実行
response = openai.ChatCompletion.create(
model=chat_model,
messages=messages
)
print(response['choices'][0]['message']['content'])
このコードでは、以下のように2段階でAPIキーをセットしています。
- APIキーを環境変数に代入する
openai.api_key
にOSの環境変数から取得したAPIキーを取得する。
コードを共有する予定がなければ、openai.api_key
に直接APIの文字列をセットしても良いのかもしれません。
OpenAI APIのエラー(openai.error.RateLimitError)が発生
実行すると、以下のエラーが発生しました。
RateLimitError Traceback (most recent call last)
<ipython-input-4-0fe312fb4eea> in <cell line: 20>()
18
19 # 対話の実行
---> 20 response = openai.ChatCompletion.create(
21 model=chat_model,
22 messages=messages
4 frames
/usr/local/lib/python3.10/dist-packages/openai/api_requestor.py in _interpret_response_line(self, rbody, rcode, rheaders, stream)
763 stream_error = stream and "error" in resp.data
764 if stream_error or not 200 <= rcode < 300:
--> 765 raise self.handle_error_response(
766 rbody, rcode, resp.data, rheaders, stream_error=stream_error
767 )
RateLimitError: You exceeded your current quota, please check your plan and billing details.
原因:支払いに関する問題が発生している
支払いに関する問題が生じているようです。
RateLimitError: You exceeded your current quota, please check your plan and billing details.
解決策:OpenAIのアカウントで上限金額を設定する
個人か企業かを選択します。
クレジットカード情報と請求先住所を選択します。
初回購入分のクレジット金額を設定します。
利用金額の上限は自動的に設定されますが、必要に応じて変更してください。
再度実行してみる
同じコードを実行してみましたが、同じエラーが発生しました。以下のようにリミットの施行には遅延があると書かれていますので、反映まで時間がかかるのかもしれません。
There may be a delay in enforcing any limits, and you are responsible for any overage incurred.
とりあえず、Usage limitsで明示的にsaveをクリックしてからもう一度コードを実行しましたところ、正常に動作しました。
日本の初代総理大臣は伊藤博文です。彼は日本の近代化を推進し、明治時代の初期に大きな役割を果たしました。
ライブラリ・APIキーの呼び出しが行われていない状態で実行するとModuleNotFoundErrorエラーが発生する
ランタイムが切断後等、以下の場合、 ModuleNotFoundError
が発生する場合があります。
- 必要なライブラリのインストールが実行されていない
- 必要なimport文が実行されていない
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-1-2e83d6b0f397> in <cell line: 2>()
1 # 対話
----> 2 import openai
3
4 # 質問の設定
5 content = "日本の初代総理大臣は誰ですか?"
ModuleNotFoundError: No module named 'openai'
---------------------------------------------------------------------------
NOTE: If your import is failing due to a missing package, you can
manually install dependencies using either !pip or !apt.
To view examples of installing some common dependencies, click the
"Open Examples" button below.
---------------------------------------------------------------------------
この場合は改めて、ライブラリのインストール、import文の実行後に対話コードブロックを実行してください。