Модели, endpoints и провайдеры
Как найти модель, выбрать endpoint и управлять маршрутизацией.
В каталоге можно сравнить модели по цене, контексту и поддерживаемым возможностям. На странице модели указаны доступные провайдеры, их тарифы и настройки маршрутизации.
Выбор модели
Список моделей для генерации текста и изображений:
curl "https://gorouter.ru/api/v1/models?output_modalities=text,image"Автоматический выбор провайдера для указанной модели:
{
"model": "deepseek/deepseek-v4-flash-0731",
"messages": [{"role": "user", "content": "Привет"}],
"max_tokens": 1024
}Важные параметры
/modelsбез фильтра возвращает текстовые модели./embeddings/models,/images/modelsи/videos/modelsвозвращают модели нужной модальности.output_modalities=decisionsвозвращает модели для структурированных решений. Их вызов описан в Decisions.- Без
provider.sortиprovider.orderпровайдер выбирается автоматически с учётом цены и доступности. Модель остаётся той, которую вы указали. - При ошибке провайдера разрешено переключение на другого подходящего провайдера той же модели. Ограничения запроса, приватности и бюджета действуют для всех вариантов.
Выбор стратегии и провайдера
Настройки передаются в объекте provider. Автоматическому режиму соответствует отсутствие этого объекта или "provider": {}.
| Настройка | Поведение |
|---|---|
"sort": "price" | Сначала провайдеры с меньшей ценой. |
"sort": "throughput" | Приоритет скорости генерации. |
"sort": "latency" | Приоритет меньшей задержки. |
"order": ["deepinfra", "fireworks"] | Указанный порядок; затем остальные подходящие провайдеры, если разрешено переключение. |
"only": ["deepinfra/fp8"] | Только перечисленные провайдеры или варианты endpoint. |
"ignore": ["fireworks"] | Исключить перечисленных провайдеров. |
"allow_fallbacks": false | Отключить автоматическое переключение. |
Например, для приоритета цены добавьте в запрос:
{
"model": "deepseek/deepseek-v4-flash-0731",
"messages": [{"role": "user", "content": "Привет"}],
"max_tokens": 1024,
"provider": { "sort": "price" }
}Выбор стратегии сам по себе не отключает переключение при ошибках. only ограничивает все попытки, включая запасные. При allow_fallbacks: false вместе с order используются только указанные в нём провайдеры. Если подходящих вариантов не осталось, запрос завершится ошибкой. После начала выдачи ответа GoRouter не запускает генерацию повторно.
Маршрутизация доступна для Chat Completions, Responses, embeddings, Decisions и изображений через OpenRouter. Фиксированные модели и специализированные API речи, транскрибации и видео используют маршрут, доступный для конкретной модели.
Резерв и фактическая стоимость
GoRouter учитывает доступный баланс, политику долга и расходные лимиты. Для текста начальный резерв покрывает оценку входа и начала ответа по самому дорогому из допустимых вариантов, затем увеличивается по мере генерации. Итоговое списание рассчитывается по фактическому использованию и провайдеру. Неиспользованная часть резерва освобождается после расчёта.
Провайдеры должны поддерживать применённый лимит выходных токенов. Лимит может быть уменьшен до доступного бюджета; при разрешённом долге остаток баланса сам по себе не уменьшает явно заданный лимит. Без явного лимита выбирается конечная граница по доступным средствам. Подробнее — текстовая генерация. В веб-чате стратегия по умолчанию — «Автоматически»; сохранённые настройки существующих чатов продолжают действовать. На странице модели можно скопировать ID провайдера для явного выбора в запросе.
Ответ
Каталог возвращает ID, архитектуру, поддерживаемые параметры, провайдеров и отображаемые цены. Используйте поле id без изменений.
Latest-алиасы
ID вида ~author/family-latest выбирает актуальную модель семейства. Например:
{
"model": "~deepseek/deepseek-v4-flash-latest",
"messages": [{"role": "user", "content": "Привет!"}],
"max_tokens": 256
}Такие ID поддерживаются в Chat Completions, Responses и веб-чате. Перед резервированием средств GoRouter получает цель из alias_target.slug каталога OpenRouter и фиксирует конкретную модель для этого запроса. При смене версии уже выполняющийся запрос продолжает работать с прежней моделью.
В каталоге сохраняется исходный id алиаса, а поле alias_target содержит { slug, name } текущей модели. Цены, контекст, параметры и endpoints относятся к целевой модели; model_id внутри endpoint содержит конкретный ID. В ответах генерации поле model также содержит фактически использованную модель. Для воспроизводимости отправляйте её ID напрямую.
Для latest-алиасов при обязательных рассуждениях значения reasoning.effort: "none", reasoning.enabled: false, reasoning.max_tokens: 0 и reasoning_effort: "none" преобразуются в минимальный поддерживаемый уровень; нулевой reasoning-бюджет удаляется. Конкретные ID сохраняют строгую семантику. Наценка и ручные скидки берутся из настроек выбранного алиаса, а фактическая стоимость — у его цели.
Алиас и цель должны быть включены в локальном каталоге. Новые модели появляются после штатной синхронизации. Неизвестная или отключённая цель возвращает 404 model_not_found; при недоступности свежего соответствия возвращается 503 model_resolution_unavailable, при отсутствии тарификационного контракта — 503 billing_unbounded. Просроченное соответствие и другие модели не используются как запасной вариант. Недоступные алиасы временно исключаются из списков выбора.
Уровни рассуждений
Доступные значения reasoning.effort зависят от выбранной модели. GoRouter строит переключатель веб-чата по полю reasoning.supported_efforts из каталога и не добавляет уровни, которых модель не объявила. Полная шкала OpenRouter отображается слева направо по возрастанию: minimal, low, medium, high, xhigh, max; конкретная модель может поддерживать только часть этих значений. Для необязательной модели крайним слева дополнительно показывается «Выкл.».
- Массив
supported_effortsзадаёт точный список доступных уровней. - Значение
nullозначает поддержку всей шкалы. - Отсутствие
supported_effortsозначает, что модель не предоставляет выбор effort. Если она принимает общий объектreasoning, веб-чат показывает только включение и выключение рассуждений. default_effortзадаёт уровень, выбираемый по умолчанию при включении рассуждений.default_enabledзадаёт исходное состояние. Если поле не опубликовано, остальные reasoning-возможности всё равно учитываются; обязательная модель считается включённой.- При
mandatory: trueрассуждения обязательны, поэтому веб-чат не показывает возможность их выключить.
В мультимодельном чате reasoning настраивается отдельно для каждого экземпляра модели. Выбранный уровень применяется к следующей генерации.
Ошибки и ограничения
404 model_not_foundозначает, что модель выключена или временно недоступна.- GoRouter не обещает поддержку параметра, которого нет в
supported_parametersмодели.