Перейти к содержимому

Устаревшие модели

Провайдеры периодически снимают модели с обслуживания. У каждой такой модели есть дата снятия, после которой оригинальная модель больше не отвечает.

Чтобы это не ломало работающие интеграции, для части моделей мы заранее назначаем модель-аналог. После даты снятия запросы автоматически выполняются на ней — менять код не нужно.

Как узнать о снятии заранее

Все списки моделей — /v1/models для LLM, /v1/media/models и /api/v2/media/models для медиа — отдают состояние депрекации на каждой модели:

Поля депрекации

ПараметрТипОписание
deprecatedbooleanДата снятия уже наступила — запросы выполняются на аналоге либо возвращают 410. Пока false, модель работает как обычно.
deprecated_atstring | nullДата и время снятия в формате ISO 8601. Может быть в будущем — это анонс, у вас есть время перейти на другую модель. null — модель не помечена как устаревшая.
deprecation_redirect_tostring | nullid модели-аналога, на которой будут выполняться запросы после даты снятия. null — аналога нет, после даты запросы вернут 410.

Пример модели с запланированным снятием:

{
"id": "claude-4.5-haiku",
"object": "model",
"title": "Claude Haiku-4.5",
"deprecated": false,
"deprecated_at": "2026-08-27T08:22:18.305Z",
"deprecation_redirect_to": "claude-4.6-sonnet"
}

Что происходит после даты снятия

Если у модели назначен аналог, запрос выполняется на нём и возвращает обычный 200. О подмене сообщают заголовки ответа:

Заголовки ответа

ПараметрТипОписание
DeprecationstringВсегда true. Признак того, что запрошенная модель снята с обслуживания.
SunsetstringДата снятия запрошенной модели в формате HTTP-date.
WarningstringКод 299 и текст с пояснением: какая модель была запрошена, какая выполнила запрос и по какой считаются деньги.
x-model-requestedstringid модели, которую вы запросили.
x-model-servedstringid модели, на которой запрос выполнен фактически.
HTTP/1.1 200 OK
Deprecation: true
Sunset: Mon, 27 Jul 2026 08:04:44 GMT
Warning: 299 - "Model 'claude-3.7-sonnet' was deprecated by the provider and the
request was served by 'claude-3.5-haiku'. Billing follows the requested model
'claude-3.7-sonnet'. Update your integration to call 'claude-3.5-haiku' directly."
x-model-requested: claude-3.7-sonnet
x-model-served: claude-3.5-haiku

Поле model в теле ответа содержит модель, которая фактически выполнила запрос (x-model-served), — в том числе при потоковой передаче.

Если у модели аналога нет, запрос завершается статусом 410 Gone. Формат ответа зависит от API.

Для /v1/chat/completions, /v1/embeddings и OpenAI-совместимого режима транскрибации:

{
"error": {
"message": "Model 'gpt-4' is deprecated. See compatible alternatives.",
"type": "model_deprecated",
"code": "model_deprecated",
"param": "model"
}
}

Какую модель взять взамен, смотрите в списке моделей.

Когда переадресации не будет

Аналог назначается вручную и подходит не всегда. Запрос вернёт 410, даже если поле deprecation_redirect_to заполнено, в двух случаях:

  • аналог сам успели снять с обслуживания;
  • аналог не поддерживается этим методом. Например, для снятой Claude-модели назначен аналог из другого семейства: на /v1/chat/completions он отработает, а /v1/messages выполняет запросы только на Claude-моделях. В Creative Lab API v2 то же правило означает: аналог обязан быть в выдаче GET /api/v2/media/models — на модель, которой в каталоге нет, задача не уйдёт.

Где это работает

МетодПереадресация на аналогОшибка 410 без аналога
POST /v1/chat/completionsдада
POST /v1/embeddingsдада
POST /v1/messagesдада
POST /v1/media/createдада
POST /v1/audio/transcriptionsдада
POST /v1/media/generateнетнет
POST /api/v2/media/tasksдада
POST /api/v2/media/priceдада