OpenAIのAPIを使った最初の PythonプログラムをMacで動かしてみたら意外とてこずった件

AIの本を読んでいて、OpenAIのAPIを使ってみたくなったので、Mac上で環境を用意し、PythonプログラムからOpenAI のAPIを呼び出してみました。

単純なプログラムを動かすだけなのですぐにできるだろうと思いましたが意外と手こずったので、ここにその時の記録を残しておきます。

エラー1.cannot import name ‘OpenAI’ from ‘openai’

まず Mac上で作成した Pythonのプログラム(test.py)を動かそうとして最初に発生したのがこのエラーでした。

% python test.py
Traceback (most recent call last):
File "/Users/XXX/tmp/test.py", line 1, in <module>
from openai import OpenAI
ImportError: cannot import name 'OpenAI' from 'openai' ・・・

原因はどうやら自分のMAC上の openai のライブラリが古いようで、以下のコマンドでバージョンアップしてあげることで解消しました。

% pip install --upgrade openai
Requirement already satisfied: openai in /Users/XXX/.pyenv/versions/3.10.0/lib/python3.10/site-packages (0.27.10)
Collecting openai
Downloading openai-2.52.0-py3-none-any.whl.metadata (40 kB)
 ・・・

エラー2.NameError: name ‘sk’ is not defined

そして次に遭遇したのがこのエラーです。

エラーの理由は単純で、あらかじめ取得しておいた api_keyをプログラム内に設定する際に””で括ってあげていない為でした。

ただしくは以下の通りに記述する必要があります。(本当はプログラム内に直接 APIキーを書かない方がいいですが。)

client = OpenAI(
api_key ="sk・・・・・"
)

エラー3.openai.RateLimitError

そして最後に遭遇したのがこのエラーです。詳しくは以下の通り出力されていました。

openai.RateLimitError: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}

このエラーの原因も単純で、まだこの時点ではOpenAI のWeb上から api_key を入手しただけで、支払い処理(クレジットカードの登録)を実施していなかった為でした。

OpenAI の APIの作成手続きを済ませた直後は無料枠が使えるのかと思っていましたが、そんなに甘くはないようです。(2027.8.1時点)

ついに成功

その後、支払いを済ませて再度プログラムを実行すると、正常動作しました。

% python test.py
こんにちは!元気ですか?何かお手伝いできることはありますか?

たとえばこんなことができます。
- 日本語↔英語の翻訳・添削
- 文章の要約・ブラッシュアップ
- アイデア出しや企画の構成作成
- 技術的な質問・コーディングのサポート
- 日常の相談・学習サポート

話したいトピックを教えてください。最近の話題でもOKです。