429, поэтому регулируйте скорость запросов в своём коде.
Как обработать 429
1
Прочитайте тело ошибки
Тело
429 говорит, это лимит скорости, нехватка ёмкости или проблема с квотой. Если в нём есть insufficient_user_quota, баланса не хватает на предварительно резервируемую сумму; см. Сбой при положительном балансе. Повторы не помогут.2
Делайте паузу и повторяйте
Увеличивайте паузу перед каждым повтором, например 1, 2, 4, затем 8 секунд, добавляйте небольшой случайный разброс и ограничьте число попыток. Не отправляйте тот же запрос в ту же секунду, когда пришёл
429.3
Отправляйте меньше запросов одновременно
Ограничьте число запросов в полёте локальной очередью или семафором. Если
429 не исчезает, вдвое уменьшите параллельность и затем повышайте её постепенно.Ограничение параллельности семафором
Этот пример на Python держит в полёте не более 10 запросов и повторяет429 с экспоненциальной задержкой:
pip install openai и сначала задайте LAOZHANG_API_KEY. Запросы к изображениям и рассуждающим моделям идут дольше, поэтому для них берите меньшую параллельность и задавайте таймауты так, как описано в материале Таймауты запросов.
Перед большим пакетом
- Сначала запустите небольшой пакет и проверьте длительность, долю успешных запросов и стоимость в журнале вызовов.
- Видеомодели работают как асинхронные задачи. Опрашивайте их с интервалом, который советует руководство по видеомодели, а не так быстро, как возможно.
- Если планируете большую волну запросов, заранее напишите на hi@laozhang.ai: укажите модели, ожидаемый объём и сроки, чтобы можно было проверить ёмкость апстрима.