Маршрут никогда не бывает чёрным ящиком.
Каждый запрос сохраняет структурированную запись: оценка, выбранная модель, провайдер, задержка, количество токенов, стоимость и причина сбоя, если он произошёл.
- Фильтруйте по ключу, модели, группе, идентификатору запроса или типу и копируйте любой запрос в готовую команду cURL.
- Сбои разделяются на ошибки на стороне провайдера и ошибки параметров запроса — так вы сразу видите, что можно исправить, а что нет.
- Включите захват полезной нагрузки — тело запроса сохраняется отдельно от строки лога, и вы сможете точно подтвердить, что именно было отправлено.
Что сломалось и насколько это важно
Ошибки делятся на два типа: сбои на стороне провайдера и ошибки параметров запроса, которые вы можете устранить сами. Категория параметров разбита по причинам, чтобы вы сразу переходили к проблемному полю; категория провайдера отображается только счётчиком — потому что неудачный день у поставщика — это не список задач, который можно проработать.
Каждый вызов — в журнале.
Оценка. Модель. Провайдер. Задержка. Токены на входе, токены на выходе, токены из кэша. Стоимость. А если что-то упало — что именно и кто подхватил. Не выборка — каждый запрос.
От строки журнала — к воспроизведению.
Найдите запрос, скопируйте его как готовую команду cURL и отлаживайте реальный вызов, а не воспоминания о нём. Включите захват полезной нагрузки — тело запроса хранится отдельно от строки лога, и вы сможете подтвердить, что именно было отправлено, даже когда спор давно начался.