Алиасы параметров
Как передавать provider, reasoning_effort и allow_fallbacks прямо в строке model
Алиасы параметров
Если ваш клиент не умеет отправлять дополнительные поля в body, часть routing- и reasoning-настроек можно передать прямо в строке model.
Alias-формат поддерживается только для chat-style API: /v1/chat/completions, /v1/responses и /v1/messages.
Что это даёт
С помощью alias-формата можно:
- выбрать конкретного провайдера через
provider - задать глубину reasoning через
reasoning_effort - включить или отключить fallback через
allow_fallbacks
Если в model нет символа @, запрос обрабатывается как обычно.
Поддерживаемые эндпоинты
| Эндпоинт | Поддержка |
|---|---|
/v1/chat/completions | ✅ |
/v1/responses | ✅ |
/v1/messages | ✅ |
| Embeddings | ❌ |
| Audio | ❌ |
| Media | ❌ |
Формат alias-строки
<model>@<key>=<value>&<key>=<value>
Примеры:
zai/glm-5.3-flash@reasoning_effort=high
zai/glm-5.3-flash@allow_fallbacks=false
anthropic/claude-fable-5.1@provider=Anthropic
zai/glm-5.3-flash@provider=Z.ai&reasoning_effort=high&allow_fallbacks=false
В ответах API возвращается canonical model без alias-суффикса. Например, если вы отправили zai/glm-5.3-flash@reasoning_effort=high, в ответе придёт zai/glm-5.3-flash.
Поддерживаемые alias-параметры
| Alias | Во что маппится | Что делает |
|---|---|---|
provider | provider.only = [value] | Выбирает конкретный provider routing path |
reasoning_effort | reasoning.effort = value | Управляет глубиной reasoning |
allow_fallbacks | provider.allow_fallbacks = boolean | Разрешает или запрещает fallback на другие провайдеры |
provider
provider работает так же, как обычное поле provider.only: передавайте тот же идентификатор, который у вас уже работает в provider.only.
anthropic/claude-fable-5.1@provider=Anthropic
reasoning_effort
Маппится в canonical-поле reasoning.effort. Поддерживаемые значения:
maxxhighhighmediumlowminimalnone
Конкретная модель или провайдер могут поддерживать только часть значений.
zai/glm-5.3-flash@reasoning_effort=high
allow_fallbacks
Допустимы только значения true и false.
zai/glm-5.3-flash@allow_fallbacks=false
Примеры запросов
curl -X POST https://api.usellm.ru/v1/chat/completions \
-H "Authorization: Bearer <USELLM_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "zai/glm-5.3-flash@reasoning_effort=high",
"messages": [
{ "role": "user", "content": "Ответь одним словом: да" }
]
}'
Эквивалент в обычном body
Alias-формат представляет собой сокращённую запись стандартных body-полей. Следующие запросы эквивалентны:
{
"model": "zai/glm-5.3-flash@reasoning_effort=high",
"messages": [{ "role": "user", "content": "Привет" }]
}
{
"model": "zai/glm-5.3-flash@provider=Z.ai&allow_fallbacks=false",
"messages": [{ "role": "user", "content": "Привет" }]
}
Конфликты alias и body
Если одно и то же поведение задано и через alias, и через обычные поля body, API вернёт 400.
Конфликтами считаются:
provider=...вmodelи любой объектproviderв bodyreasoning_effort=...вmodelиreasoning.effortв bodyallow_fallbacks=...вmodelиprovider.allow_fallbacksв body
Если вам нужна сложная routing-настройка (order, ignore, max_price и другие поля provider), используйте обычный body-контракт, а не alias-формат.
Пример конфликта, который вернёт 400:
{
"model": "zai/glm-5.3-flash@reasoning_effort=high",
"messages": [{ "role": "user", "content": "Привет" }],
"reasoning": {
"effort": "low"
}
}
Ошибки валидации
API вернёт 400, если:
- используется неизвестный alias-ключ
- ключ повторяется несколько раз
- значение пустое
- строка alias имеет неправильный формат
- alias конфликтует с body
Невалидные примеры:
openai/gpt-6-astra@
openai/gpt-6-astra@provider
openai/gpt-6-astra@provider=
openai/gpt-6-astra@provider=google=foo
openai/gpt-6-astra@provider=google&provider=openai
openai/gpt-6-astra@foo=bar
Ограничения
- Поддерживаются только
provider,reasoning_effortиallow_fallbacks - Provider-specific параметры через alias не поддерживаются
- Percent-encoding и дополнительные escape-механизмы не поддерживаются
- Alias-формат не распространяется на embeddings, audio и media