再試行によるレート制限の回避
カスタムメッセージを使ってチャット補完を実行する関数を作成しましたが、レート制限により失敗することがあることに気づきました。そこで、@retry ライブラリの tenacity デコレーターを使って、エラーをできる限り回避することにしましょう。
この演習はコースの一部です
OpenAI API を使った AI システムの開発
演習の手順
tenacityライブラリからretry、wait_random_exponential、stop_after_attemptをインポートします。- OpenAI API クライアントを作成します。
- 再試行のデコレーターに必要なパラメーターを設定してください。間隔は5秒から始まり最大40秒、試行回数は4回で停止するように指定します。
演習がタイムアウトした場合は、間隔と試行回数の値が上記の指定と完全に一致しているか確認してください。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the tenacity library
from ____ import ____
client = OpenAI(api_key="")
# Add the appropriate parameters to the decorator
@retry(____, ____)
def get_response(model, message):
response = client.chat.completions.create(
model=model,
messages=[message]
)
return response.choices[0].message.content
print(get_response("gpt-4o-mini", {"role": "user", "content": "List ten holiday destinations."}))