Reasoning (режим рассуждений)
Современные модели умеют «думать» перед ответом — генерировать внутреннюю цепочку рассуждений (reasoning). Это заметно повышает качество на сложных задачах (математика, код, многошаговая логика), но расходует дополнительные токены. NordRouter прозрачно пропускает все стандартные параметры управления reasoning — ничего специально настраивать не нужно.
Как это влияет на биллинг
Правило одно: reasoning-токены тарифицируются как обычные токены вывода — по цене выхода модели из каталога.
- В ответе они уже включены в
usage.completion_tokens. - Отдельно их видно в
usage.completion_tokens_details.reasoning_tokens.
"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"):
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-токены всё равно тарифицируются |
Как экономить
- Ставьте
effort: "low"на простых задачах для GPT/Grok — качество не страдает, расход падает в разы. - Не включайте thinking на Claude без нужды — sonnet-5 по умолчанию отвечает без рассуждений и дешевле.
- Ограничивайте
max_tokens— это жёсткий потолок на весь вывод, включая рассуждения. - Не используйте
excludeдля экономии — он только прячет текст, деньги не возвращает. - Для рутины берите нерассуждающие модели (
deepseek-chat-v3.1,gemini-3.5-flash) — смотрите фактическийusage, а не только прайс.