ChatGPT Google Colabから利用する

ai generated robot android human 7718642
目次

OpenAIのAPIキーを取得する

以下からOpenAI platformのページにログインします。

View API keysをクリックします。

あわせて読みたい

Create new secret keyをクリックします。

ここで表示されたAPIキーをコピーしてローカルにテキストとして保存しておきます。 Doneをクリックすると、二度と表示されないので注意してください。

APIキーが追加されました。

Google Colabの新規ノートブックを作成する

Google DriveでColabのノートを新規作成してください。

Google Colabのノートブックのランタイム変更する

ランタイム>ランタイムのタイプを変更 でCPUTPUに変更します。

小坂悠真の"アスリート視点"
Google ColaboratoryでChatGPT-4を動かすための方法 | 小坂悠真の"アスリート視点" 最近使いまくっている組合せは Chat GPT APIとGoogle Apps Script Chat GPT APIとGoogle Colaboratory どちらもGoogle上で動くのですが、環境構築不要で、サクッ …

ランタイムの設定を変更していくと無料でもスペックが上がるので便利です。
ランタイム→ランタイムのタイプを変更→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文の実行後に対話コードブロックを実行してください。

よかったらシェアしてね!
目次