Прозрачная маршрутизация и flight breakdown

Прозрачный роутер PlusVibe: явный выбор маршрута через :alias или auto-route по стратегии ключа. Публичные псевдонимы, failover, reveal/debug-заголовки x-plusvibe-route и поля route/address_as в истории.

PlusVibe — прозрачный маршрутизатор: вы либо явно выбираете публичный вариант через суффикс :alias, либо оставляете имя модели без суффикса — тогда шлюз сам подбирает маршрут по стратегии аккаунта/ключа и при сбоях переключается на другой доступный вариант. В ответах и истории используются только публичные идентификаторы маршрутов.

Два режима: pin или auto

ПараметрТипОписание
Явный pinmodel:alias или model:NЗапрос всегда идёт через выбранный вариант. Межвариантный failover отключён: при 429/5xx ошибка возвращается как есть (допускается повтор на том же варианте).
Auto (bare model)только имя моделиШлюз выбирает вариант по настройкам аккаунта или ключа. При 429/5xx и пустом 200 пробует другие варианты той же модели с ограничениями по стоимости и входным данным.
"model": "claude-opus-4.8"          // auto — стратегия аккаунта/ключа
"model": "claude-opus-4.8:sub"      // pin — только :sub, без переключения на :nexus
"model": "claude-opus-4.8:2"        // pin — вариант №2 из каталога (устаревший :N синтаксис)

Публичные псевдонимы (:alias)

Суффикс после двоеточия — это публичный идентификатор маршрута, а не имя upstream. Полный перечень для конкретной модели — в каталоге (Модели, колонка «В API»). Основные псевдонимы:

ПараметрТипОписание
:subaliasПубличный вариант модели. Доступность и цена указаны в каталоге.
:sub6aliasСейчас недоступен; явный запрос вернёт публичную ошибку маршрута.
:sub4aliasПубличный вариант для совместимых моделей.
:sub5aliasПубличный вариант для совместимых моделей.
:sub5plusaliasРасширенный GPT-5.6 sub-пул (Plus tier).
:sub5proaliasPro-tier GPT-5.6 sub-пул.
:auroraaliasОсновной CDN-вариант, кэш промпта. Дефолт у многих моделей без :sub.
:nexusaliasOpenRouter — широкий каталог, обычно дороже.
:energyaliasNeuralWatt — GLM / Kimi / Qwen, низкая задержка.
:silveraliasCerebras (gemma-4, zai-glm-4.7, gpt-oss-120b).
:deepseekaliasПрямой канал DeepSeek.
:flexaliasБюджетный assistant-пул.
:pixel / :flowaliasМедиа-маршруты (изображения/видео), не чат.
Подробнее о вариантах одной модели — в разделе Модели → Провайдеры. Если суффикс для модели недоступен, запрос вернёт 400.

Настройки аккаунта и ключа

Для auto-запросов (bare model) в личном кабинете задаются:

ПараметрТипОписание
routingStrategystringpriority (по умолчанию) — порядок providerPriority, иначе первый вариант в каталоге; price — самый дешёвый для нас вариант; latency — самый быстрый по недавним замерам; default — жёстко первый eligible вариант.
providerPriorityсписокПриоритет внутренних тегов провайдеров (в кабинете — человекочитаемые имена). Используется при strategy=priority. Ключ переопределяет аккаунт.
disabledProvidersсписокИсключить провайдеров из auto-маршрутизации. Объединяется по ключу и аккаунту (union). Явный :alias по-прежнему можно вызвать, если вариант существует.
cacheOnlybooleanТолько варианты с поддержкой кэша промпта — выгодно при повторяющемся префиксе.
Настройки применяются только к запросам без явного суффикса. Поля ключа имеют приоритет над настройками аккаунта. Также см. allowedModels и лимиты в таблице ниже.

Стратегия маршрутизации

ПараметрТипОписание
priority (по умолчанию)strategyОбычный маршрут по умолчанию.
pricestrategyВыбирать вариант с наименьшей ценой среди доступных для модели.
latencystrategyВыбирать самый быстрый по недавним замерам вариант.
cacheOnlybooleanТолько кэширующие варианты — выгодно при повторяющемся префиксе промпта.
Стратегия применяется только к запросам по умолчанию. Если вы явно указали вариант суффиксом (например :energy) — он всегда уважается и маршрутизация его не переопределяет. Настраивается в личном кабинете для аккаунта или для конкретного ключа (ключ имеет приоритет над аккаунтом).

Явный выбор провайдера

Добавьте псевдоним провайдера через двоеточие — он уважается независимо от стратегии маршрутизации. Полный список псевдонимов и примеры — в разделе Модели → Провайдеры.

"model": "claude-opus-4.8"        // auto — стратегия аккаунта/ключа
"model": "claude-opus-4.8:sub"    // явно зафиксировать провайдера :sub
"model": "claude-opus-4.8:nexus"  // явно зафиксировать провайдера :nexus

Лимиты ключа

Для каждого API-ключа в кабинете можно задать:

ПараметрТипОписание
allowedModelsсписок моделейБелый список моделей, которые разрешено вызывать этим ключом. Пусто — разрешены все. Запрос модели вне списка получает 403.
routingStrategy / cacheOnlyпереопределениеСвоя стратегия и фильтр кэша для ключа — переопределяют настройки аккаунта.
limitRubлимит тратЛимит расходов на ключ.
allowedIpsбелый список IPОграничение по IP (см. раздел «Аутентификация»).
Это удобно для раздачи ключей командам и интеграциям: один ключ — только дешёвые модели, другой — с лимитом трат, третий — со своей стратегией. Всё настраивается в личном кабинете.

Failover (только auto)

При bare model шлюз может переключиться на другой публичный вариант той же модели, если текущий вернул 429, 5xx или пустой 200 без контента. Ограничения:

  • Запросы с изображениями/PDF не переключаются на другой провайдер (vision-совместимость).
  • Failover не уходит на вариант существенно дороже (кроме strategy=price).
  • Есть верхняя граница числа попыток на один клиентский запрос.
  • При pin (:alias) межпровайдерный failover отключён — вы получаете ошибку выбранного маршрута.

Повтор с экспоненциальной задержкой при 429 описан в Ошибки и лимиты.

Flight breakdown — какой маршрут обслужил запрос

Для доверенных reveal/debug-клиентов после выполнения запроса (включая auto) доступны заголовки с тем, какой публичный вариант реально отработал. Обычным клиентам эти данные не возвращаются.

Заголовки ответа для доверенных reveal/debug-клиентов (chat / messages / responses)

ПараметрТипОписание
x-plusvibe-routestringПубличный псевдоним маршрута: sub, aurora, nexus, sub5plus, sub5pro, …
x-plusvibe-modelstringЗначение model для повторного pin: base или base:alias (например gpt-5.6-luna:sub5plus). При явном pin совпадает с вашим выбором.
x-pv-generation-idstringID записи в истории (не-stream). См. Баланс и история.
curl -sD - https://plusvibeapi.ru/v1/chat/completions \
  -H "Authorization: Bearer $PLUSVIBE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5.6-luna","messages":[{"role":"user","content":"ping"}],"max_tokens":8}' \
  -o /dev/null | grep -i x-plusvibe

# x-plusvibe-route: sub5plus
# x-plusvibe-model: gpt-5.6-luna:sub5plus

История использования

В GET /v1/generations, GET /v1/usage и кабинете к каждой записи добавлены поля:

ПараметрТипОписание
modelstringБазовое имя модели (без внутренних суффиксов).
routestring | nullПубличный :alias победившего маршрута.
address_asstringТочное значение для поля model при повторном pin (как в каталоге addressAs).
В теле ответа OpenAI-совместимых эндпоинтов по-прежнему скрыты upstream-бренды, внутренние суффиксы в model и cost_usd (кроме клиентов с reveal-исключением). Flight breakdown — только в заголовках и истории, без поломки SDK.

Ограничения

PlusVibe не предоставляет OpenRouter-style «сырой» waterfall с перечислением upstream-провайдеров в теле запроса. Управление — через публичные :alias, стратегию ключа и auto-failover внутри каталога модели. Нет отдельного API «ignore providers» или ZDR-флагов маршрутизации.