リトライによるレート制限の回避
カスタムメッセージでChat Completionsを実行する関数を作成しましたが、レート制限のために時々失敗することに気付きました。そのため、エラーを回避するためにtenacityライブラリの@retryデコレーターを使用することにしました。
この演習はコースの一部です
OpenAI API で開発する AI システム
演習の手順
"- 必要な関数 retry、wait_random_exponential、stop_after_attempt を使って tenacity ライブラリをインポートします。
- 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."}))