GoRouter

Chat Completions и Responses

Два текстовых endpoint и выбор подходящего формата.

Задача

Выбрать API для текстовой генерации и отправить минимальный запрос.

Рабочий пример

Chat Completions:

{
  "model": "deepseek/deepseek-v4-flash-0731",
  "messages": [{"role": "user", "content": "Составь короткий заголовок"}],
  "max_tokens": 1024
}

Responses:

{
  "model": "deepseek/deepseek-v4-flash-0731",
  "input": "Составь короткий заголовок",
  "max_output_tokens": 1024
}

Отправляйте объекты на /api/v1/chat/completions и /api/v1/responses соответственно.

Кнопка «Отправить» в справочнике выполняет настоящий платный запрос с вашим ключом. Лимит 1024 в примерах ограничивает число выходных токенов, включая рассуждения модели. В начале удерживается оценка входа и начала ответа; резерв растёт по мере генерации. Параллельные запросы делят доступные средства. Списывается фактическая стоимость, неиспользованный резерв освобождается.

Любая задолженность аккаунта блокирует новые генерации, включая бесплатные, через API, веб-чат и playground: 402 outstanding_debt. Если долг появился в очереди до отправки провайдеру, запрос отменяется, а резервы освобождаются. Уже отправленные запросы продолжаются по прежним правилам; при разрешённом долге они не прерываются из-за остатка баланса. Расходные лимиты ключа, пространства и участника продолжают действовать. После погашения долга бесплатные модели доступны даже с нулевым балансом и не расходуют денежные лимиты.

Важные параметры

  • Chat Completions использует messages и удобен для существующих OpenAI-совместимых клиентов.
  • Responses использует input и формат событий Responses API.
  • stream: true включает SSE.
  • max_tokens / max_completion_tokens (Chat Completions) и max_output_tokens (Responses) ограничивают число выходных токенов, включая рассуждения. Скрытые рассуждения также оплачиваются и могут не отображаться в ответе.
  • Если лимит не указан, GoRouter задаёт конечный лимит по доступным средствам и возможностям маршрута. В защищённом режиме указанный лимит также может быть уменьшен до доступного бюджета; при разрешённом долге остаток баланса сам по себе его не уменьшает. Применённый лимит возвращается в x-gorouter-max-output-tokens.
  • Сервис модели может отклонить слишком большой лимит ответа с payment_required, даже если ожидается короткий ответ. Если сообщение содержит доступное число токенов, уменьшите лимит до указанного значения.
  • При stream: false JSON приходит только после завершения генерации. Модели с reasoning могут отвечать дольше 10 секунд; настройте таймаут своего клиента с учётом этого.
  • Параметры tools, structured output и мультимодальный ввод работают только у моделей, которые их поддерживают.
  • Для моделей OpenRouter и gorouter/free GoRouter автоматически удаляет неподдерживаемые нейтральные настройки: presence_penalty: 0, frequency_penalty: 0, repetition_penalty: 1, top_k: 0, min_p: 0, top_a: 0. Это позволяет подключать клиенты, например Unsloth, которые отправляют параметры даже в состоянии Off. Поддерживаемые настройки передаются без изменений. При выборе между провайдерами предпочтение получают маршруты, сохраняющие больше явно заданных настроек.
  • Для моделей OpenRouter provider.require_parameters: true отключает такую нормализацию: провайдер обязан поддерживать все переданные настройки. Если доступные провайдеры не поддерживают выбранный набор параметров, GoRouter возвращает unsupported_parameter со списком unsupported_parameters. Значения, меняющие генерацию, автоматически не удаляются.

Ответ

GoRouter сохраняет формат выбранного endpoint и добавляет итоговую цену в usage.cost, когда upstream сообщил достаточные данные для расчёта.

Ошибки и ограничения

  • Поле model обязательно.
  • Ошибки в неподдерживаемых параметрах могут возвращаться выбранным upstream-провайдером в его совместимом формате.

На этой странице