openai.ChatCompletion.create()を実行して、APIRemovedInV1エラーが発生した時の対処法

NLP
元教師
元教師

こんにちは!データサイエンティストの青木和也(https://twitter.com/kaizen_oni)です!

今回の記事では、openai.ChatCompletion.create()を実行して、APIRemovedInV1エラーが発生した時の対処法について解説していきたいと思います。

私は「大規模言語モデル入門」のコードを実行している際にこのエラーが発生してしまったので、同じようなエラーに直面してしまった方に届くと幸いです!

エラー内容

書籍「大規模言語モデル入門」の第9章質問応答のP261のChatGPTのAPIを使用した以下の質問応答コードを実行すると、APIRemovedInV1エラーが発生してしまいます。

import os

os.environ['OPENAI_API_KEY'] = 'sk-***'

import openai

messages = [{'role': 'user', 'content': '日本で一番高い山は何?'}]
completion = openai.ChatCompletion.create(
    model = 'gpt-3.5-turbo',
    messages = messages,
    temperature = 0.0
)
print(completion['choices'][0]['message']['content'])
Screenshot

このエラーの原因はopenaiライブラリの使用が変わってしまったことによります。

解決策

上記のコードは以下のように書き換えることによって、書籍の内容と同様の回答結果を得ることができます。

import os

os.environ['OPENAI_API_KEY'] = 'sk-***'

from openai import OpenAI

messages = [{'role': 'user', 'content': '日本で一番高い山は何?'}]

# OpenAIのAPIと通信を行うClientを定義する
client = OpenAI(
    api_key = os.environ.get('OPENAI_API_KEY')
)

completion = client.chat.completions.create(
    model = 'gpt-3.5-turbo',
    messages = messages,
    temperature = 0.0
)
print(completion.choices[0].message.content)

RateLimitErrorが出てしまう場合は?

最近、OpenAIのGPTのAPIを利用する際の料金の支払い方法が従量課金式から前払い式に変更されました。

その関係で、料金を先に支払わないとAPIを利用することができないため、上記のように「支払い詳細を見てね」と言われてしまいます。(要は金払えということです)

以下の記事が参考になります。

まとめ

今回の記事では、openai.ChatCompletion.create()を実行して、APIRemovedInV1エラーが発生した時の対処法について解説いたしました。

今後もOpenAIのAPIの仕様変更はあるかもしれませんので、随時更新していきたいと思います。

コメント

タイトルとURLをコピーしました