Роутинг
Цепочки резервных моделей в кабинете — создание, условия переключения, подключение по имени route/…, логи и статистика.
Цепочка — это виртуальная модель с именем route/<идентификатор>: основная модель и до четырёх резервов. Если основная отвечает ошибкой провайдера или не начинает ответ вовремя, запрос уходит к следующей модели внутри того же вызова — без ретраев и второй ноды на вашей стороне. Всё живёт на странице Роутинг.
Как устроен сам каскад и что происходит с картинками и файлами — в Model Fallbacks. Здесь — про кабинет: куда нажимать и что произойдёт.
Создание цепочки
- Откройте Роутинг → «Создать цепочку».
- Дайте название — оно только для списка в кабинете, символы любые: «Прод-агент», «Дешёвые батчи».
- Идентификатор подставится из названия автоматически (
prod-agent,deshevye-batchi), его можно поправить: строчная латиница, цифры и дефис, от 2 до 40 символов. Именно он уйдёт в параметрmodelс префиксомroute/. - Выберите основную модель — откроется каталог с поиском, тот же, что в чате, — и нажмите «Создать»: откроется страница цепочки.
Идентификатор уникален в пределах вашего кабинета. Чужую цепочку с таким же именем ваш ключ не увидит, а свою — никто другой: в общий каталог цепочки не попадают.
Страница цепочки
Цепочка. Шаг 1 — основная модель, дальше резервы по порядку. «Добавить резерв» открывает выбор модели из каталога с поиском; стрелками меняется порядок, крестиком шаг убирается. У каждого шага показано, что модель принимает на вход — текст, картинки, файлы: возможности берутся из каталога автоматически, руками их настраивать не нужно. Изменения применяются по кнопке «Сохранить».
Условия переключения. Три переключателя:
| Условие | Когда срабатывает |
|---|---|
429 | Провайдер ответил, что лимит запросов исчерпан |
5xx | Сбой на стороне провайдера, включая его модерацию содержимого |
| Таймаут первого байта | Модель приняла запрос, но за указанное число секунд не начала отвечать |
Все три работают только до первого байта ответа: начатый поток не прерывается и не отправляется заново. Снятый переключатель означает, что по этой причине цепочка дальше не пойдёт — клиент получит ошибку как при прямом вызове.
Название и идентификатор. Оба можно менять. Смена идентификатора ломает клиентов, у которых старое имя прописано в коде, — сначала обновите их, потом переименовывайте.
Подключение. Готовый пример: меняется только model. Кнопка копирования — рядом с кодом.
За 30 дней. Запросы через цепочку, сколько из них ушло на резерв (и доля), расход, дата последнего переключения.
Выключить / Удалить. Выключенная цепочка отвечает 404 model_not_found, настройки сохраняются — удобно на время разбирательств. Удаление необратимо: имя перестаёт работать сразу, логи прошлых запросов остаются.
Подключение
Укажите имя цепочки вместо модели — работает везде, где принимается model: /v1/chat/completions, /v1/messages, SDK OpenAI и Anthropic, LangChain, n8n, cURL.
curl -s https://api.hubris.pw/v1/chat/completions \
-H "Authorization: Bearer sk-gw-..." \
-H "Content-Type: application/json" \
-d '{
"model": "route/prod-agent",
"messages": [{"role": "user", "content": "Привет"}]
}'from openai import OpenAI
client = OpenAI(base_url="https://api.hubris.pw/v1", api_key="sk-gw-...")
ROUTE = "route/prod-agent" # имя цепочки со страницы «Роутинг»
resp = client.chat.completions.create(
model=ROUTE,
messages=[{"role": "user", "content": "Привет"}],
)
print(resp.model) # какая модель ответила на самом делеВ ответе поле model — модель, которая реально ответила. Списание — по её обычной цене; цепочка ничего не добавляет.
В n8n и IDE, которые тянут список моделей через GET /v1/models, ваши цепочки появляются в выпадающем списке рядом с обычными моделями (owned_by: "hubris") — отдельной настройки не нужно.
Логи и статистика
В Логах запрос через цепочку помечен значком у имени модели: зелёный — ответила основная, жёлтый — было переключение. В подробностях запроса видно, какая цепочка запрошена и почему пропущен шаг: «лимит провайдера (429)», «не начала ответ вовремя», «не принимает вложения запроса».
Отфильтровать журнал по цепочке можно двумя способами: кнопкой «Логи цепочки» на странице цепочки или через «Фильтр» → «Цепочка» в самих логах. Фильтр учитывает и запросы, ушедшие на резерв, — они помечены вашей цепочкой, а не моделью, которая ответила.
Цепочка из одного шага — тоже цепочка: так удобно завести стабильное имя для интеграций и менять модель под ним без правок в коде клиентов.
Что дальше
- Model Fallbacks — как работает каскад, картинки и файлы, разовый массив
modelsбез сохранённой цепочки. - Ключи и проекты — лимиты и защита ключей, которыми вызывают цепочки.
- Логи — журнал запросов с фильтром по цепочке.
Обновлено: