Как сделать надёжные вызовы API модели — повторы, таймауты, смена провайдера?
- Что делать при ошибке 429 от API модели?
- Как не зависеть от одного провайдера LLM?
429 (превышен лимит) и 5xx (сбой провайдера) повторяют с экспоненциальной паузой и случайным разбросом, учитывая заголовок Retry-After; ошибки 4xx запроса не повторяют. У каждого вызова — таймаут (на соединение и на общий ответ), у повторов — общий бюджет времени. Провайдер скрыт за тонкой абстракцией: модель и провайдер меняются конфигурацией, а не кодом.
- Без случайного разброса клиенты повторяют синхронно и снова упираются в лимит
- Для потоковых ответов таймаут — на паузу между фрагментами, а не только на весь ответ
- Повтор после частично полученного ответа — помнить, что токены уже оплачены
А ещё Лимиты провайдера считают в запросах и токенах в минуту — следить за обоими
Подробно
Повторы:
- повторять: 429, 500, 502, 503, 504, обрывы соединения;
- не повторять: 400 (неверный запрос), 401/403 (ключ), превышение контекста — повтор даст ту же ошибку;
- пауза: база × 2^попытка + случайная добавка, не больше 3–5 попыток и общего бюджета времени.
Таймауты. Генерация длинного ответа может идти десятки секунд, поэтому таймаут подбирают по сценарию; при стриминге следят за паузой между фрагментами.
Абстракция. Интерфейс «сообщения → ответ, токены, причина остановки» с реализациями для разных провайдеров. Модель, версия и параметры — в конфигурации. Это позволяет переключиться на резервного провайдера и проводить эксперименты.
Что хотят услышать
- Какие ошибки повторять и как (экспонента, разброс, Retry-After).
- Таймауты, в том числе для стриминга.
- Абстракция над провайдерами и конфигурация модели.
Проверьте себя
Несколько верных вариантов. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✗Повторять ответ 400 «неверный запрос» в цикле, пока он не пройдёт
- ✓Повторять 429 и 5xx с экспоненциальной паузой и разбросом
- ✗Повторять любые ошибки сразу и без паузы — так запрос быстрее дойдёт до модели
- ✓Таймаут на вызов и общий бюджет времени на повторы
- ✓Менять модель и провайдера конфигурацией
Разбор темы
- LLM в продакшене — стоимость, надёжность и наблюдаемость
Как сделать LLM-функцию быстрой, недорогой и надёжной — стриминг, повторы, кэш, guardrails, трассировка и борьба с галлюцинациями.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.