Перейти к содержимому
EN

Выбор провайдера

Одна и та же модель у апстрима обслуживается несколькими эндпоинтами: у закрытых моделей это разные тиры обслуживания одного вендора, у моделей с открытыми весами — разные компании-хостеры. По умолчанию маршрут выбирается сам, и вмешиваться не нужно. Параметры 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"]}},
)

Квантизация — не то же самое, что дешевизна

Заголовок раздела «Квантизация — не то же самое, что дешевизна»

У моделей с открытыми весами разброс цены между хостерами объясняется в первую очередь квантизацией: одни отдают полные веса, другие — сжатые до 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 — см. ступени цены.