Ошибка 429 Too Many Requests в API нейросетей: причины и как исправить
Ошибка 429 Too Many Requests означает, что запросов слишком много за единицу времени: сработал лимит частоты или бюджета. Вызов не выполнился и не был оплачен. Лечится паузой с повтором, снижением параллельности или поднятием лимита в политиках кабинета LLM Mart.
Содержание
Что значит 429
Код 429 расшифровывается как Too Many Requests, слишком много запросов. Сервер принял ваш вызов, но отказался его выполнять, потому что превышен лимит. В ответе приходит конверт с типом ошибки rate_limit_exceeded, а оплата не списывается.
Ошибка говорит о темпе, а не о качестве кода: если повторить тот же запрос через минуту, он обычно проходит.
Какие бывают лимиты
Лимиты считаются по двум величинам. Первая: число запросов в минуту, RPM. Вторая: число токенов в минуту, TPM. Можно уложиться в десяток запросов и всё равно получить 429, если каждый из них несёт сотню тысяч токенов контекста.
Отдельно от частоты работает бюджет: это ограничение на сумму расходов за период, и при его исчерпании тоже приходит 429. Разница в том, что частота восстанавливается через минуту, а бюджет только после сброса периода или его изменения.
Чем отличается от других кодов
Ошибки легко перепутать, а лечение у них разное.
| Код | Что означает | Что делать |
|---|---|---|
| 400 | Неверные параметры запроса | Исправить тело запроса |
| 401 | Ключ неверный или отозван | Выпустить новый ключ |
| 402 | Недостаточно баланса | Пополнить счёт |
| 403 | Блокировка правилом | Проверить политику доступа |
| 404 | Модель не найдена | Взять слаг из каталога |
| 429 | Превышен лимит частоты или бюджета | Пауза, повтор, лимит |
Как повторять правильно
Главная ошибка: повторять запрос сразу в цикле без паузы. Это усиливает нагрузку и растягивает блокировку. Правильно ставить нарастающую задержку: первая попытка через секунду, следующая через две, затем через четыре, с上限 на разумном значении.
import time
from openai import OpenAI
client = OpenAI(
api_key=os.environ["LLM_MART_API_KEY"],
base_url="https://llmmart.ru/api/v1",
)
def ask(messages, attempts=4):
for i in range(attempts):
try:
return client.chat.completions.create(
model="openai/gpt-5.6-luna",
messages=messages,
)
except Exception as err:
if "429" not in str(err) or i == attempts - 1:
raise
time.sleep(2 ** i)Поймать 429
Обрабатывайте код отдельно от прочих ошибок: остальные повторы только вредят.
Пауза
Повторяйте с нарастающей задержкой: 1, 2, 4, 8 секунд, но не бесконечно.
Ограничить поток
Держите число параллельных запросов небольшим: очередь в приложении дешевле 429.
Проверить лимит
Посмотрите расход и правила политик: возможно, бюджет уже исчерпан.
Как снизить вероятность
Три приёма. Первое: ограничьте параллельность воркеров. Десять одновременных запросов к одной модели чаще ловят 429, чем очередь из десяти последовательных. Второе: сокращайте размер контекста, потому что TPM зависит именно от токенов.
Третье: распределяйте нагрузку по моделям. Если приложение делает массовую разметку, дешёвая модель с высокой пропускной способностью подойдёт лучше флагмана, к которому обращаются все.
Где смотреть лимиты
Лимиты частоты задаются правилами политик: на организацию, участника, группу, систему или отдельный ключ. Там же настраивается бюджет в рублях и период его сброса. Механика описана в документации по лимитам, полный список кодов есть в справочнике ошибок.
Частые вопросы
Что означает ошибка 429 на сайте?
Это превышение лимита запросов: сервер принял вызов, но отказался выполнять, потому что темп выше разрешённого. В API нейросетей такие лимиты считаются по числу запросов в минуту и по числу токенов в минуту. Запрос не выполняется и не оплачивается, а повтор в каталоге LLM Mart через минуту обычно проходит.
Чем 429 отличается от 401 и 402?
401 означает проблему с ключом: он неверный или отозван. 402 говорит о нехватке баланса. 429 сообщает о превышении лимита частоты или бюджета. В каталоге LLM Mart коды возвращаются в конверте OpenAI, поэтому их легко различать по полю code: rate_limit_exceeded, invalid api key или insufficient_balance.
Как правильно повторять запрос после 429?
С нарастающей задержкой: сначала секунда, затем две, четыре и восемь, с ограничением числа попыток. Немедленный повтор в цикле только усиливает нагрузку и продлевает блокировку. Полезно также ограничить параллельность: очередь из десяти запросов ловит ошибку реже, чем десять одновременных, а бюджет-правило в кабинете LLM Mart убережёт от лишних вызовов.
Почему 429 приходит на первый же запрос?
Скорее всего исчерпан бюджет правила, а не частота. Бюджет сбрасывается по выбранному периоду: день, неделя или месяц, и до сброса запросы отклоняются. Посмотрите расход в кабинете LLM Mart и лимиты в разделе политик: там видно, какое правило сработало и когда оно восстановится.
Можно ли увеличить лимиты?
Лимиты задаются правилами политик в кабинете LLM Mart: на организацию, участника, группу, систему или отдельный ключ, с суммой в рублях и периодом сброса. Изменить правило можно в любой момент, ограничение пересчитывается сразу. Частотные ограничения у провайдера управляются иначе и зависят от конкретной модели каталога.
Комментарии 0