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: falseJSON приходит только после завершения генерации. Модели с reasoning могут отвечать дольше 10 секунд; настройте таймаут своего клиента с учётом этого. - Параметры tools, structured output и мультимодальный ввод работают только у моделей, которые их поддерживают.
- Для моделей OpenRouter и
gorouter/freeGoRouter автоматически удаляет неподдерживаемые нейтральные настройки: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-провайдером в его совместимом формате.