Жизненный цикл моделей
Модель в каталоге Вайбкод находится в одном из трёх состояний. От состояния зависит, обслуживается ли вызов запрошенной моделью и какие сигналы приходят в заголовках ответа. Правила общие для всех вызовов модели — чата, эмбеддингов и распознавания речи.
| Состояние | Что происходит при вызове | Заголовки ответа |
|---|---|---|
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-клиентами без дополнительного кода.
Перенаправление не меняет цену запроса. Вызов тарифицируется по цене модели, которая фактически его обслужила. Для отключённой модели это цена преемника, а не её собственная.