Жизненный цикл моделей

Модель в каталоге Вайбкод находится в одном из трёх состояний. От состояния зависит, обслуживается ли вызов запрошенной моделью и какие сигналы приходят в заголовках ответа. Правила общие для всех вызовов модели — чата, эмбеддингов и распознавания речи.

Состояние Что происходит при вызове Заголовки ответа
ACTIVE Стандартное обслуживание, без сигналов клиенту
DEPRECATED Запрос обрабатывается запрошенной моделью, в заголовках приходят сигналы об устаревании Deprecation: true, Sunset: <дата отключения> если она назначена, Link: </v1/models/<преемник>>; rel="successor-version" и X-Model-Replacement: <id-преемника> если преемник назначен
DISABLED Запрос прозрачно перенаправляется на модель-преемник. В response.model приходит фактически отработавшая модель X-Model-Fallback: <запрошенный modelId>, X-Model-Replacement: <фактический modelId>, X-Model-Fallback-Reason: model_disabled

Что делать клиенту

  • Deprecation: true — пометьте использование модели в логах. Если пришёл Link: rel=successor-version, спланируйте переход. До даты Sunset модель работает, после — будет отключена.
  • X-Model-Replacement без X-Model-Fallback — это рекомендуемая модель-преемник для будущих запросов. Переключиться можно сразу.
  • X-Model-Fallback присутствует — модель уже отключена, и ответ пришёл от преемника. Его идентификатор лежит в response.model. Обновите model в коде на этот идентификатор либо оставьте прежний: перенаправление продолжит работать.

Если для отключённой модели преемник не настроен, вызов вернёт 503 model_unavailable. Это единственный случай, когда перенаправление для состояния DISABLED не срабатывает.

Сигнал в каталоге моделей

В `GET /v1/models` модели в состоянии DEPRECATED остаются — клиент видит, что они ещё работают. Модели в состоянии DISABLED из каталога скрыты, но прямой запрос по их modelId всё равно проходит через перенаправление на преемника.

Проверить состояние конкретной модели можно через `GET /v1/models/:modelId`: у снятой с публикации модели в ответе появляется поле replaced_by с идентификатором преемника, а pricing показывает цену преемника — ту, по которой вызов фактически тарифицируется.

Известные особенности

Заголовки соответствуют стандартам. Deprecation, Sunset и Link следуют `RFC 8594` и `RFC 8288`, поэтому распознаются стандартными HTTP-клиентами без дополнительного кода.

Перенаправление не меняет цену запроса. Вызов тарифицируется по цене модели, которая фактически его обслужила. Для отключённой модели это цена преемника, а не её собственная.

Смотрите также