見出し画像

【Python】OpenAIのAPIを使ってチャットをしようとしたときのエラー解決策!!


PythonでChatGPTのチャットを利用したプログラムを実行しようとすると、以下のようなエラーが出ました。

エラー文を見る

You tried to access openai.ChatCompletion, but this is no longer supported in openai>=1.0.0 - see the README at https://github.com/openai/openai-python for the API.
You can run `openai migrate` to automatically upgrade your codebase to use the 1.0.0 interface.
Alternatively, you can pin your installation to the old version, e.g. `pip install openai==0.28`
A detailed migration guide is available here: https://github.com/openai/openai-python/discussions/742

エラー文が出たコード

俺のエラーがでたところのプログラムを簡単に書くと

response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=msg_list,
        )

こういう感じです。

俺のした行動

それで、エラー文を読むと、openai migrateを実行してくださいと書いていますが、コマンドプロンプトで実行しようとすると、Windowsだと実行できないというエラーが出ました。

それで、最初に貼ったエラー文の最後にgithubのリンクが載っているので、そこからいろいろ調べていると、単純にopenai.ChatCompletion.createは最新のopenaiでは使えないようです(まあ、最初のエラー文にもopenai.ChatCompletion is no longer supported in openai>=1.0.0というようなことが書いてますが)。

解決策をさくっと知る

それで、解決策は

response = openai.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=msg_list,
        )

ここですね。
openai.ChatCompletion.createではなくて、openai.chat.completions.createですね。

OpenAIのドキュメントのChat Completions APIのリンクを貼っておきますね。上の文字のとこをクリックしてもらえると、ドキュメントに移動します。

ほかの解決策

最初に貼ったエラー文を見ると、
コマンドプロンプトかWindows PowerShellで

pip install openai==0.28

としても良いのかもしれないですね。

まあ、そういうわけで、春とかの頃にopenaiで簡易的なチャットみたいなのを作っても、冬にはopenaiがアップグレードしちゃってるのでコードを変えないとエラーが出ちゃうみたいですね。

なるほどー。プログラムは奥が深いっすねー!

追記(変数responseに収められているcontentへのアクセス方法について)

ちなみに、もしかしたら、ここでエラーがでるんじゃないかっていうのがあって、それを書き忘れてました!

response["choices"][0]["message"]["content"]

こうやって、アクセスしようとするとエラーが出ます。

response.choices[0].message.content

こうすると良いですね。

ここでのアクセス方法でもちょっと調べる時間がかかったんで、追記として載せておきます。お役に立てれば幸いです。

それでは、最後まで読んでいただき、ありがとうございました!


この記事が参加している募集

AIとやってみた

よろしくお願いしますッ!