Перейти к основному содержанию
Рассуждающая модель перед ответом пишет развёрнутый ход мысли в отдельные токены. Это повышает качество на задачах, где нужен вывод, а не подстановка, — и напрямую увеличивает цену, потому что рассуждение тарифицируется как выходные токены.
В примерах ниже $TEXT_MODEL — переменная окружения с идентификатором модели из GET /api/v1/models. Идентификаторы не зашивают в код: состав каталога меняется. Разбор — в разделе Модели и цены.

Что это такое

Обычная модель выдаёт текст напрямую. Рассуждающая делает паузу, формулирует промежуточные шаги, проверяет себя и только потом пишет ответ. Пользователю это видно как пауза перед первым токеном ответа. Практические следствия:
  • Время до первого токена заметно больше, чем у обычной модели. При stream: true это нормально, а не зависание.
  • Текст рассуждений не обязателен в ответе — см. раздел ниже.
  • Стоимость растёт вместе с глубиной рассуждения, иногда в разы относительно обычного ответа той же длины.

Включение: reasoning_effort

Есть два равнозначных способа задать глубину. Значение effort, отличное от none, включает рассуждение.
Уровни: Полная форма объекта reasoning:
reasoning_effort и reasoning.effort задавать одновременно нельзя — придёт 400 invalid_request. Это две записи одного параметра, и API считает их конфликтом, а не повторением. Пользуйтесь чем-то одним; краткая форма удобнее.

Ответ

cURL
reasoning и reasoning_content — один и тот же текст под двумя именами. Дублирование сделано для совместимости с разными SDK: часть читает reasoning, часть — reasoning_content. Берите любое, но не складывайте.

Сколько токенов ушло на рассуждение

usage.completion_tokens_details.reasoning_tokens — объём рассуждения. Это подмножество completion_tokens, а не отдельная категория сверх него.
Python
Прибавлять reasoning_tokens к completion_tokens при расчёте объёма нельзя: получите двойной счёт. Рассуждение — часть выхода.

Стоимость

Рассуждение тарифицируется по ставке выходных токенов, а у рассуждающих моделей выход обычно дороже всего. Механика простая: поднимаете effort — платите больше, потому что модель производит больше выходных токенов. Иллюстрация без конкретных цен: при cost_completion из каталога и ответе, где 150 из 400 выходных токенов пришлись на рассуждение, в счёт уйдут все 400 по выходной ставке. Поднятие effort с low до high на одной и той же задаче обычно даёт рост выхода в разы при практически неизменном входе.
Python
Практический вывод: эффективность определяется не максимальным effort, а минимальным, который решает задачу. На большинстве запросов low или medium дают тот же итоговый ответ, что и high, за в разы меньшую цену. Замерьте на своей выборке запросов долю рассуждения и итоговое качество — вместе.

Выбор уровня по классу задачи

Высокий effort не делает модель «умнее в целом» — он даёт ей больше места на вывод. Если задача не выигрывает от развёрнутого хода мысли, вы платите за пустые токены.

Рассуждение может не вернуться

Текст рассуждений приходит не всегда, даже при явно заданном effort. Часть моделей возвращает только итоговый ответ, часть — сокращённую сводку, часть — ничего. Поле reasoning_tokens при этом может быть ненулевым, то есть токены потрачены, а текст вам не показан.
Поэтому:
  • не стройте продукт, который показывает ход мысли пользователю — можете получить пустой блок;
  • не рассчитывайте стоимость по видимому тексту: сверяйтесь с usage;
  • для отладки используйте usage.completion_tokens_details.reasoning_tokens как признак того, что рассуждение шло.

В потоке

Разбор потока целиком — на странице Потоковая передача.

Что дальше

Модели и цены

Ставка за выход и контекстное окно

Учёт средств

Как читать usage и cost

Кэширование

Снижение цены длинного стабильного префикса

Запрос чату

Поля reasoning и reasoning_effort