Загрузка...

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

RouterAI маршрутизирует запросы к оптимальным провайдерам для вашей модели. По умолчанию выполняется балансировка нагрузки между топ-провайдерами для максимизации аптайма.

Стратегия балансировки

Для каждой модели RouterAI распределяет нагрузку между провайдерами, отдавая приоритет низкой цене.

Когда вы отправляете запрос с параметрами tools или tool_choice, RouterAI будет маршрутизировать его только к тем провайдерам, которые поддерживают использование инструментов. Аналогично, если вы установите max_tokens, RouterAI будет маршрутизировать запрос только к провайдерам, поддерживающим ответ такой длины.

Стандартный алгоритм балансировки нагрузки RouterAI работает следующим образом:

  1. Приоритет стабильности: В первую очередь выбираются провайдеры, у которых не наблюдалось значительных сбоев за последние 30 секунд.
  2. Выбор по цене: Среди стабильных провайдеров рассматриваются кандидаты с наименьшей стоимостью.
  3. Резервные варианты: Оставшиеся провайдеры используются в качестве запасных (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 — клиент получает исходную ошибку выбранного провайдера, без повторных попыток.