Вопрос с собеседования · AI и LLM

Как сделать надёжные вызовы API модели — повторы, таймауты, смена провайдера?

MiddleLLM в продакшене
Ещё спрашивают так:
  • Что делать при ошибке 429 от API модели?
  • Как не зависеть от одного провайдера LLM?
Коротко

429 (превышен лимит) и 5xx (сбой провайдера) повторяют с экспоненциальной паузой и случайным разбросом, учитывая заголовок Retry-After; ошибки 4xx запроса не повторяют. У каждого вызова — таймаут (на соединение и на общий ответ), у повторов — общий бюджет времени. Провайдер скрыт за тонкой абстракцией: модель и провайдер меняются конфигурацией, а не кодом.

  • Без случайного разброса клиенты повторяют синхронно и снова упираются в лимит
  • Для потоковых ответов таймаут — на паузу между фрагментами, а не только на весь ответ
  • Повтор после частично полученного ответа — помнить, что токены уже оплачены

А ещё Лимиты провайдера считают в запросах и токенах в минуту — следить за обоими

Подробно

Повторы:

  • повторять: 429, 500, 502, 503, 504, обрывы соединения;
  • не повторять: 400 (неверный запрос), 401/403 (ключ), превышение контекста — повтор даст ту же ошибку;
  • пауза: база × 2^попытка + случайная добавка, не больше 3–5 попыток и общего бюджета времени.

Таймауты. Генерация длинного ответа может идти десятки секунд, поэтому таймаут подбирают по сценарию; при стриминге следят за паузой между фрагментами.

Абстракция. Интерфейс «сообщения → ответ, токены, причина остановки» с реализациями для разных провайдеров. Модель, версия и параметры — в конфигурации. Это позволяет переключиться на резервного провайдера и проводить эксперименты.

Что хотят услышать

  • Какие ошибки повторять и как (экспонента, разброс, Retry-After).
  • Таймауты, в том числе для стриминга.
  • Абстракция над провайдерами и конфигурация модели.

Проверьте себя

Несколько верных вариантов. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Повторять ответ 400 «неверный запрос» в цикле, пока он не пройдёт
  • ✓Повторять 429 и 5xx с экспоненциальной паузой и разбросом
  • ✗Повторять любые ошибки сразу и без паузы — так запрос быстрее дойдёт до модели
  • ✓Таймаут на вызов и общий бюджет времени на повторы
  • ✓Менять модель и провайдера конфигурацией

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования