Выбор провайдера
RouterAI маршрутизирует запросы к оптимальным провайдерам для вашей модели. По умолчанию выполняется балансировка нагрузки между топ-провайдерами для максимизации аптайма.
Стратегия балансировки
Для каждой модели RouterAI распределяет нагрузку между провайдерами, отдавая приоритет низкой цене.
Когда вы отправляете запрос с параметрами
toolsилиtool_choice, RouterAI будет маршрутизировать его только к тем провайдерам, которые поддерживают использование инструментов. Аналогично, если вы установитеmax_tokens, RouterAI будет маршрутизировать запрос только к провайдерам, поддерживающим ответ такой длины.
Стандартный алгоритм балансировки нагрузки RouterAI работает следующим образом:
- Приоритет стабильности: В первую очередь выбираются провайдеры, у которых не наблюдалось значительных сбоев за последние 30 секунд.
- Выбор по цене: Среди стабильных провайдеров рассматриваются кандидаты с наименьшей стоимостью.
- Резервные варианты: Оставшиеся провайдеры используются в качестве запасных (fallbacks).
Управление выбором через объект provider
Если стандартное поведение вас не устраивает, передайте объект provider в теле запроса. Поддерживаемые поля:
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
order |
Array<String> |
— | Приоритетный список slug’ов провайдеров — подсказка маршрутизации, применяется когда запрос проходит через нашу мульти-провайдерную сеть. |
only |
Array<String> |
— | Whitelist провайдеров для мульти-провайдерной маршрутизации. |
ignore |
Array<String> |
— | Blacklist провайдеров для мульти-провайдерной маршрутизации. |
allow_fallbacks |
Boolean |
true |
При false RouterAI не пытается использовать резервный провайдер, если выбранный провайдер вернул ошибку — клиент получит эту ошибку как есть. |
country |
String |
— | Двухбуквенный код страны для фильтрации провайдеров по гео-политике (например, "ru"). |
Slug’и провайдеров пишутся в нижнем регистре, например "openai", "anthropic", "google", "deepseek".
Примечание про область применения
order/only/ignore. Если для запрошенной модели у нас настроен прямой провайдер или специальный маршрут, мы используем его — поляorder/only/ignoreв этом случае на наш выбор не влияют. Они применяются, когда запрос идёт через гибкую мульти-провайдерную маршрутизацию. Для гарантированного ограничения по гео-политике используйтеcountry, для отключения резервных попыток —allow_fallbacks: false.
Примеры
Выбор страны обработки данных
Если вам критично, чтобы обработка данных происходила на территории России, укажите country:
curl -X POST "https://routerai.ru/api/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-oss-120b",
"messages": [
{"role": "user", "content": "Привет!"}
],
"provider": {
"country": "ru"
}
}'
Приоритетный порядок провайдеров
order указывает порядок предпочтения провайдеров. Применяется при маршрутизации через нашу мульти-провайдерную сеть.
curl -X POST "https://routerai.ru/api/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-4.5",
"messages": [{"role": "user", "content": "Привет!"}],
"provider": {
"order": ["anthropic", "google"]
}
}'
Только указанные провайдеры (only)
Применяется при маршрутизации через мульти-провайдерную сеть:
curl -X POST "https://routerai.ru/api/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o",
"messages": [{"role": "user", "content": "Привет!"}],
"provider": {
"only": ["openai"]
}
}'
Исключение провайдеров (ignore)
curl -X POST "https://routerai.ru/api/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-4.5",
"messages": [{"role": "user", "content": "Привет!"}],
"provider": {
"ignore": ["google"]
}
}'
Отключение fallback (allow_fallbacks: false)
По умолчанию, если выбранный провайдер вернул ошибку, RouterAI повторяет запрос через резервный провайдер. Если это поведение нежелательно — например, вы хотите гарантированно получить ответ только от выбранного провайдера, либо предпочитаете увидеть его исходную ошибку:
curl -X POST "https://routerai.ru/api/v1/chat/completions" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anthropic/claude-sonnet-4.5",
"messages": [{"role": "user", "content": "Привет!"}],
"provider": {
"allow_fallbacks": false
}
}'
Комбинации
Поля можно комбинировать. Например, “обработать в России и без резервных попыток”:
{
"model": "openai/gpt-oss-120b",
"messages": [{"role": "user", "content": "Привет!"}],
"provider": {
"country": "ru",
"allow_fallbacks": false
}
}
Или “при мульти-провайдерной маршрутизации предпочитать DeepSeek, потом Yandex, и только в России”:
{
"model": "openai/gpt-4o",
"messages": [{"role": "user", "content": "Привет!"}],
"provider": {
"order": ["deepseek", "yandex"],
"country": "ru"
}
}
Тарификация при выборе провайдера
Стоимость запроса считается по фактическому провайдеру, в которого ушёл запрос. Один и тот же запрос через разных провайдеров может стоить по-разному. Точная цена для каждого провайдера видна в личном кабинете и в детализации запросов.
При ошибках (когда запрос не выполнен), а также при allow_fallbacks: false, если выбранный провайдер вернул ошибку, средства не списываются.
Возможные ошибки
| Код | Когда возникает |
|---|---|
503 |
Для запрошенной модели нет ни одного доступного провайдера. |
402 |
Недостаточно средств на балансе. |
500 / 502 / 503 |
Ошибка провайдера. Если allow_fallbacks: true (default) — RouterAI попробовал резервный провайдер и тот тоже не отработал. При allow_fallbacks: false — клиент получает исходную ошибку выбранного провайдера, без повторных попыток. |