Прозрачная маршрутизация и flight breakdown
Прозрачный роутер PlusVibe: явный выбор маршрута через :alias или auto-route по стратегии ключа. Публичные псевдонимы, failover, reveal/debug-заголовки x-plusvibe-route и поля route/address_as в истории.
PlusVibe — прозрачный маршрутизатор: вы либо явно выбираете публичный вариант через суффикс :alias, либо оставляете имя модели без суффикса — тогда шлюз сам подбирает маршрут по стратегии аккаунта/ключа и при сбоях переключается на другой доступный вариант. В ответах и истории используются только публичные идентификаторы маршрутов.
Два режима: pin или auto
| Параметр | Тип | Описание |
|---|---|---|
Явный pin | model: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»). Основные псевдонимы:
| Параметр | Тип | Описание |
|---|---|---|
:sub | alias | Публичный вариант модели. Доступность и цена указаны в каталоге. |
:sub6 | alias | Сейчас недоступен; явный запрос вернёт публичную ошибку маршрута. |
:sub4 | alias | Публичный вариант для совместимых моделей. |
:sub5 | alias | Публичный вариант для совместимых моделей. |
:sub5plus | alias | Расширенный GPT-5.6 sub-пул (Plus tier). |
:sub5pro | alias | Pro-tier GPT-5.6 sub-пул. |
:aurora | alias | Основной CDN-вариант, кэш промпта. Дефолт у многих моделей без :sub. |
:nexus | alias | OpenRouter — широкий каталог, обычно дороже. |
:energy | alias | NeuralWatt — GLM / Kimi / Qwen, низкая задержка. |
:silver | alias | Cerebras (gemma-4, zai-glm-4.7, gpt-oss-120b). |
:deepseek | alias | Прямой канал DeepSeek. |
:flex | alias | Бюджетный assistant-пул. |
:pixel / :flow | alias | Медиа-маршруты (изображения/видео), не чат. |
Настройки аккаунта и ключа
Для auto-запросов (bare model) в личном кабинете задаются:
| Параметр | Тип | Описание |
|---|---|---|
routingStrategy | string | priority (по умолчанию) — порядок providerPriority, иначе первый вариант в каталоге; price — самый дешёвый для нас вариант; latency — самый быстрый по недавним замерам; default — жёстко первый eligible вариант. |
providerPriority | список | Приоритет внутренних тегов провайдеров (в кабинете — человекочитаемые имена). Используется при strategy=priority. Ключ переопределяет аккаунт. |
disabledProviders | список | Исключить провайдеров из auto-маршрутизации. Объединяется по ключу и аккаунту (union). Явный :alias по-прежнему можно вызвать, если вариант существует. |
cacheOnly | boolean | Только варианты с поддержкой кэша промпта — выгодно при повторяющемся префиксе. |
allowedModels и лимиты в таблице ниже.Стратегия маршрутизации
| Параметр | Тип | Описание |
|---|---|---|
priority (по умолчанию) | strategy | Обычный маршрут по умолчанию. |
price | strategy | Выбирать вариант с наименьшей ценой среди доступных для модели. |
latency | strategy | Выбирать самый быстрый по недавним замерам вариант. |
cacheOnly | boolean | Только кэширующие варианты — выгодно при повторяющемся префиксе промпта. |
: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-route | string | Публичный псевдоним маршрута: sub, aurora, nexus, sub5plus, sub5pro, … |
x-plusvibe-model | string | Значение model для повторного pin: base или base:alias (например gpt-5.6-luna:sub5plus). При явном pin совпадает с вашим выбором. |
x-pv-generation-id | string | ID записи в истории (не-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 и кабинете к каждой записи добавлены поля:
| Параметр | Тип | Описание |
|---|---|---|
model | string | Базовое имя модели (без внутренних суффиксов). |
route | string | null | Публичный :alias победившего маршрута. |
address_as | string | Точное значение для поля model при повторном pin (как в каталоге addressAs). |
model и cost_usd (кроме клиентов с reveal-исключением). Flight breakdown — только в заголовках и истории, без поломки SDK.Ограничения
PlusVibe не предоставляет OpenRouter-style «сырой» waterfall с перечислением upstream-провайдеров в теле запроса. Управление — через публичные :alias, стратегию ключа и auto-failover внутри каталога модели. Нет отдельного API «ignore providers» или ZDR-флагов маршрутизации.