Выбор поставщика и площадки
В JSON-теле запроса можно назвать поставщика и, отдельно, площадку. Шлюз оставляет только подходящие строки и дальше выбирает среди них как обычно: по цене, ско
Имена берите из карточки модели, блок «Доступные площадки». Регистр и пробелы не различаются: ChineseLLM-discount и chinesellm-discount — одна площадка.
{
"model": "z-ai/glm-5.3-flash",
"messages": [{ "role": "user", "content": "Привет" }],
"provider": {
"only": ["apixly"],
"host": "chinesellm-discount"
}
}Оба поля необязательны. Нет объекта provider, пустой объект, пустой only и пустой host список строк не сужают.
only | host | Что остаётся |
|---|---|---|
| нет | нет | все строки, как без этого объекта |
| есть | нет | строки названных поставщиков |
| есть | есть | эти поставщики и эта площадка |
| нет | есть | эта площадка у любых поставщиков |
only — список идентификаторов поставщиков. Площадку пишите в host, одно значение. Идентификатор площадки в only поставщика не выбирает.
Без host запасные попытки остаются внутри названных поставщиков. С host другой площадки нет: наружу уходит ошибка этой строки.
Запрос с этим объектом не запоминается как обычный маршрут. Следующий вызов без provider снова идёт по общему выбору.
Объект к поставщику не пересылается. Если у выбранной площадки есть свой признак бэкенда, шлюз подставляет его сам, уже после снятия вашего объекта.
Поля order, ignore, allow_fallbacks, sort, zdr, max_price и quantizations шлюз не читает. Они уходят вместе с объектом provider.
Объект действует в JSON-теле чата, Completions, Messages, Responses, embeddings, Decisions, генерации картинок, синтеза речи и видео. Realtime и загрузка файла (multipart) его не читают.
Ошибки
Неверный тип поля — only не массив строк или host не строка — даёт 400:
{
"error": {
"message": "provider.only must be an array of strings and provider.host must be a string",
"type": "invalid_request_error"
}
}Подходящих строк нет — тоже 400, с другим текстом. Другого поставщика и другую площадку шлюз не подставляет. Запасная модель из цепочки при этом не вызывается:
{
"error": {
"message": "no endpoint matches the requested provider",
"type": "invalid_request_error"
}
}На POST /messages эти два ответа приходят в конверте OpenAI, как выше. Остальные ошибки Messages остаются в конверте Anthropic.
Если поставщик уже ответил ошибкой, а запасная модель в цепочке есть, наружу уходит ошибка поставщика, а не этот 400.