![見出し画像](https://assets.st-note.com/production/uploads/images/123758520/rectangle_large_type_2_14df0b944369236a0782e03663bb4f35.png?width=1200)
【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
こうすると良いですね。
ここでのアクセス方法でもちょっと調べる時間がかかったんで、追記として載せておきます。お役に立てれば幸いです。
それでは、最後まで読んでいただき、ありがとうございました!
いいなと思ったら応援しよう!
![gorojy](https://assets.st-note.com/production/uploads/images/172166903/profile_a9600fc7e2166bc937e3b5560c69d5cc.png?width=600&crop=1:1,smart)