Skip to content

Reasoning (режим рассуждений)

Современные модели умеют «думать» перед ответом — генерировать внутреннюю цепочку рассуждений (reasoning). Это заметно повышает качество на сложных задачах (математика, код, многошаговая логика), но расходует дополнительные токены. NordRouter прозрачно пропускает все стандартные параметры управления reasoning — ничего специально настраивать не нужно.

Как это влияет на биллинг

Правило одно: reasoning-токены тарифицируются как обычные токены вывода — по цене выхода модели из каталога.

  • В ответе они уже включены в usage.completion_tokens.
  • Отдельно их видно в usage.completion_tokens_details.reasoning_tokens.
json
"usage": {
  "prompt_tokens": 179,
  "completion_tokens": 545,          // всего вывода — это и биллится
  "completion_tokens_details": {
    "reasoning_tokens": 445          // из них на рассуждения
  }
}

Рассуждающие модели «дороже», чем кажутся

DeepSeek R1, Grok, GLM и другие reasoning-модели думают по умолчанию — на простом вопросе ответ может стоить в 5–10 раз больше токенов, чем видимый текст. Сравнивайте не цену за токен, а фактический расход в usage.

Как управлять

Через объект reasoning в теле запроса (работает и классический OpenAI-вариант reasoning_effort: "low" | "medium" | "high"):

bash
curl https://nordrouter.com/v1/chat/completions \
  -H "Authorization: Bearer sk-nr-ВАШ-КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "anthropic/claude-sonnet-5",
    "max_tokens": 4000,
    "reasoning": { "effort": "high" },
    "messages": [{ "role": "user", "content": "Сложная задача…" }]
  }'
ПараметрЧто делает
reasoning.effortГлубина рассуждений: "low" / "medium" / "high". Меньше effort — меньше reasoning-токенов и дешевле ответ
reasoning.max_tokensБюджет на рассуждения в токенах (стиль Anthropic). Должен быть меньше max_tokens запроса
reasoning.enabled: falseВыключить рассуждения (где модель это поддерживает)
reasoning.exclude: trueСпрятать текст рассуждений из ответа. Не экономит деньги — модель всё равно думает, токены тарифицируются

Текст рассуждений (если не спрятан) возвращается в message.reasoning / message.reasoning_details.

Особенности моделей

Проверено живыми запросами через NordRouter:

МодельПоведение
anthropic/claude-sonnet-5По умолчанию не рассуждает. effort и max_tokens включают thinking, enabled: false честно выключает
anthropic/claude-fable-5Думает адаптивно — сама решает, сколько. Параметры reasoning.* не поддерживаются (будет 400); глубина управляется output_config: { "effort": "low" | "medium" | "high" }
openai/gpt-5.4, gpt-5.5Рассуждают по умолчанию; reasoning_effort масштабирует глубину
x-ai/grok-4.3Рассуждает по умолчанию и охотно (сотни токенов); effort: "low" заметно сокращает
deepseek/deepseek-r1, z-ai/glm-5.xДумают всегда: «выключение» лишь прячет текст, reasoning-токены всё равно тарифицируются

Как экономить

  1. Ставьте effort: "low" на простых задачах для GPT/Grok — качество не страдает, расход падает в разы.
  2. Не включайте thinking на Claude без нужды — sonnet-5 по умолчанию отвечает без рассуждений и дешевле.
  3. Ограничивайте max_tokens — это жёсткий потолок на весь вывод, включая рассуждения.
  4. Не используйте exclude для экономии — он только прячет текст, деньги не возвращает.
  5. Для рутины берите нерассуждающие модели (deepseek-chat-v3.1, gemini-3.5-flash) — смотрите фактический usage, а не только прайс.