Выбор провайдера
Одна и та же модель у апстрима обслуживается несколькими эндпоинтами: у закрытых моделей это разные тиры обслуживания одного вендора, у моделей с открытыми весами — разные компании-хостеры. По умолчанию маршрут выбирается сам, и вмешиваться не нужно. Параметры provider и service_tier нужны, когда важно что-то конкретное: цена, запрет на хранение запросов или полные веса.
Оба поля принимают POST /v1/chat/completions, POST /v1/responses и POST /v1/messages.
Тир обслуживания
Заголовок раздела «Тир обслуживания»service_tier выбирает класс обслуживания у того же провайдера — модель и веса те же, отличаются цена и приоритет в очереди:
| Значение | Что меняется |
|---|---|
"flex" |
Примерно вдвое дешевле стандартного, но по остаточному принципу: выше задержка и ниже доступность |
"priority" |
Быстрее и надёжнее стандартного, дороже примерно вдвое |
| не передан | Стандартный тир |
curl https://api.mixen.ai/v1/chat/completions \ -H "Authorization: Bearer $MIXEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-6-astra", "service_tier": "flex", "messages": [{"role": "user", "content": "Разбери этот лог"}] }'Тир есть не у всех моделей. Он существует у моделей OpenAI и Google; у Claude, например, тиров нет вовсе. Запрос с service_tier к такой модели не вернёт ошибку — апстрим обслужит его по обычной цене. Так что дешевле станет не везде, где вы попросите: сверяйтесь с ценами, а фактическое списание смотрите в GET /v1/history.
Списание идёт по факту, поэтому экономия на flex попадает прямо в счёт: платите вы за реально выполненный запрос, а не за прайс стандартного тира.
Выбор провайдера
Заголовок раздела «Выбор провайдера»provider — объект, который уходит апстриму как есть:
| Поле | Тип | Что делает |
|---|---|---|
order |
string[] | Порядок предпочтения |
only |
string[] | Белый список: только эти |
ignore |
string[] | Чёрный список |
sort |
string | price, latency или throughput |
allow_fallbacks |
bool | Разрешить уход к другому при отказе (по умолчанию да) |
data_collection |
string | deny — не маршрутизировать к тем, кто может хранить запросы |
zdr |
bool | Только эндпоинты с нулевым удержанием данных |
quantizations |
string[] | Допустимые квантизации: fp8, fp16, bf16 и др. |
max_price |
object | Потолок цены за токен |
from openai import OpenAI
client = OpenAI(base_url="https://api.mixen.ai/v1", api_key=MIXEN_API_KEY)
resp = client.chat.completions.create( model="glm-5.3", messages=[{"role": "user", "content": "Обработай персональные данные клиента"}], extra_body={"provider": {"data_collection": "deny", "quantizations": ["bf16", "fp16"]}},)curl https://api.mixen.ai/v1/chat/completions \ -H "Authorization: Bearer $MIXEN_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "glm-5.3", "provider": {"data_collection": "deny", "quantizations": ["bf16", "fp16"]}, "messages": [{"role": "user", "content": "Обработай персональные данные клиента"}] }'Квантизация — не то же самое, что дешевизна
Заголовок раздела «Квантизация — не то же самое, что дешевизна»У моделей с открытыми весами разброс цены между хостерами объясняется в первую очередь квантизацией: одни отдают полные веса, другие — сжатые до fp8 или fp4. Ответ такой модели дешевле, но и качество другое. Если задача чувствительна к точности, задавайте quantizations явно, а не полагайтесь на «взять подешевле».
Имя провайдера и тир — разные вещи
Заголовок раздела «Имя провайдера и тир — разные вещи»Базовый слаг провайдера не включает его тиры: only: ["google-vertex"] даст стандартный эндпоинт, а не дешёвый. Тир указывается либо через service_tier, либо суффиксом в самом имени — only: ["google-vertex/flex"].
Когда запрос упадёт
Заголовок раздела «Когда запрос упадёт»С allow_fallbacks: false и недоступным списком провайдеров запрос вернёт 404 вместо ухода к другому эндпоинту — это ожидаемое поведение, а не сбой:
{"error": {"message": "No allowed providers are available for the selected model.", "type": "invalid_request_error"}}Оставляйте фолбэк включённым везде, где важнее получить ответ, чем получить его именно у выбранного провайдера.
Что учесть с балансом
Заголовок раздела «Что учесть с балансом»Просьба о дорогом тире учитывается в предварительной проверке баланса: priority считается по удвоенной цене, потому что каталожная цена — это цена стандартного эндпоинта. Практическое следствие — на priority вам понадобится больше свободных средств, чем показывает арифметика по каталогу.
Ставки у маршрутов свои, и различаются они сильнее, чем кажется: у моделей с открытыми весами разные хостеры берут за чтение кэша до 2.6 раза по-разному при почти равной цене входа. Полный список маршрутов модели с ценой каждого, квантизацией, контекстом и наблюдаемым аптаймом есть на её карточке в каталоге — там же копируется тег для provider.only. Некоторые маршруты вдобавок меняют ставку на длинном промпте или по расписанию UTC — см. ступени цены.