429 が返ることがあるため、コード側でリクエストの間隔を調整してください。
429が返ったときの対処
1
エラーのボディを読む
429 のボディには、レート制限、処理能力の不足、クォータの問題のどれかが示されています。insufficient_user_quota が含まれている場合は、事前確保される金額を残高がまかなえていません。残高があるのに失敗する理由を参照してください。リトライしても解決しません。2
バックオフしてリトライする
リトライのたびに待ち時間を延ばし(たとえば1、2、4、8秒)、少しランダムなゆらぎを加えて、試行回数に上限を設けます。
429 が返った直後に、同じリクエストを再送しないでください。3
一度に送る数を減らす
ローカルのキューやセマフォで、処理中のリクエスト数を制限します。
429 が続く場合は、同時実行数を半分にして、少しずつ戻してください。セマフォで同時実行数を制限する
次のPythonの例は、処理中のリクエストを最大10件に保ち、429 を指数バックオフでリトライします。
pip install openai でSDKをインストールし、LAOZHANG_API_KEY を設定してください。画像や推論のリクエストは時間がかかるため、同時実行数を低めにし、タイムアウトはAPIのタイムアウト設定に従って設定します。
大量のバッチを実行する前に
- まず小さなバッチを実行し、所要時間、成功率、課金額を呼び出しログで確認します。
- 動画モデルは非同期のタスクとして動きます。ポーリングは、できるだけ速く繰り返すのではなく、各動画モデルのガイドが推奨する間隔で行ってください。
- 短時間に大量のリクエストを送る予定がある場合は、上流の処理能力を確認できるよう、事前に hi@laozhang.ai へ、モデル、想定する量、時期をメールで知らせてください。