Знакомая история: попросили ChatGPT коротко объяснить одну мысль, а получили полотно на три экрана с введением, выводами и списком из семи пунктов. Или наоборот - нужен развёрнутый разбор, а модель отделалась абзацем. Разбираем по справке OpenAI, как управлять длиной ответа: что можно сделать прямо в чате формулировкой запроса, какие параметры отвечают за длину в API и почему жёсткий потолок в токенах и просьба "напиши 50 слов" работают по-разному.
Зачем вообще ограничивать длину
В справке названы три причины, и все три практические:
- Деньги. В API вы платите за токены, и лишние абзацы - это буквально расход.
- Скорость. Короткий ответ приходит быстрее, длинный дольше генерируется.
- Польза. Ограничение отсекает воду и держит ответ по делу.
Для чата ChatGPT прямых денежных последствий нет, зато остаются два других: читать короткий точный ответ проще, чем выуживать нужное из простыни.
Самое надёжное: попросить нужную длину словами
Первый рекомендованный способ - не параметры, а понятная инструкция в самом запросе. Справка приводит формулировки-образцы:
- "Перечисли ровно пять вариантов."
- "Напиши резюме на 50 слов."
- "Не больше 100 токенов. Если места не хватает, напиши: нужно больше места."
Обратите внимание на последний пример: вместо того чтобы обрубить мысль, модели дают запасной выход - специальную фразу. Это удобный приём и в обычном чате: вы сразу видите, что ответ не поместился, а не гадаете, почему он оборвался.
По нашему опыту, в чате ChatGPT такие формулировки и есть основной рычаг: параметры API там недоступны, а задать форму ответа ("одним абзацем", "списком из трёх пунктов", "без вступления") можно всегда. Тот же приём работает и в постоянных инструкциях, если вы хотите, чтобы ответы были короткими по умолчанию.
Показать пример нужной длины
Второй приём из справки - примеры. Если дать модели несколько образцов ответа одинаковой длины, она продолжит этот же формат. Работает лучше абстрактного "покороче", потому что образец задаёт не только объём, но и структуру: где список, где один абзац, где две строки.
Жёсткий потолок: max_output_tokens и max_completion_tokens
Это уже про API, и здесь важно не перепутать параметры.
- Responses API - для моделей GPT-5 и большинства o-серии. Потолок задаётся через max_output_tokens. Для запросов с compaction_trigger его либо не указывают вовсе, либо ставят не меньше 20000: меньшие значения отклоняются. Несколько вариантов ответа в одном вызове Responses API не поддерживает.
- Chat Completions API - для GPT-3.5, GPT-4o и части o-серии. Для рассуждающих моделей вроде o3 и o4-mini используется max_completion_tokens (это псевдоним max_tokens), для более ранних нерассуждающих продолжает работать max_tokens.
Простой пример запроса: модель gpt-5, входной текст "Summarize the findings in ~80 words", max_output_tokens 120. Обратите внимание, что просьба про 80 слов всё равно остаётся в тексте: параметр только не даёт ответу разрастись, а нужную длину задаёте вы.
Актуальные лимиты по контексту и максимальному выводу у каждой модели свои - их справка советует смотреть в документации конкретной модели, а не запоминать.
Только для GPT-5: verbosity и reasoning.effort
У моделей GPT-5 есть два отдельных рычага, которых нет ни у o-серии, ни у старых моделей.
verbosity принимает значения low, medium (по умолчанию) и high. Это регулятор подробности: он влияет на то, насколько детальным будет ответ, но жёстким ограничением не является. Пример из справки: объяснить PageRank в общих чертах с verbosity low и потолком в 200 токенов.
reasoning.effort управляет другим - сколько модель рассуждает до того, как начать отвечать. GPT-5.2 принимает значения none, low, medium, high и xhigh; у gpt-5.2 pro набор ограничен, а более ранние рассуждающие модели поддерживают только low, medium и high. Значение none превращает модель в обычную нерассуждающую - это вариант для задач, где важна скорость ответа.
Стоп-последовательности и несколько вариантов
Ещё один способ обрезать вывод - стоп-последовательности. Вы перечисляете строки, на которых генерация должна остановиться, например разделитель "\n###" или начало шестого пункта "6.", если нужно ровно пять. Параметр stop доступен в Chat Completions.
Там же есть параметр n - несколько вариантов ответа за один вызов. В Responses API он не поддерживается: нужно несколько вариантов - делайте несколько запросов.
Чего сделать нельзя
Важная оговорка из справки: минимальной длины ответа не существует. Параметра "не короче N токенов" нет ни в одном API. Единственный способ добиться развёрнутого ответа - написать это в запросе: указать объём, попросить разбить на разделы, перечислить, что обязательно должно быть раскрыто.
Отсюда практический вывод. Потолок в токенах - это страховка от разрастания и перерасхода, а не инструмент форматирования. Форму и объём ответа задаёт текст запроса, и если формулировка размытая, никакой параметр за вас её не починит. Справка отдельно напоминает, что точные значения и свежие детали всегда стоит сверять с официальной документацией API - параметры моделей меняются.
Где купить ChatGPT из России
Оплатить подписку или пополнить баланс API картой российского банка на сайте OpenAI не выйдет, поэтому мы оформляем доступ на вашу почту: ChatGPT Go, Plus, Pro 5x и Pro 20x, плюс пополнение API. Оплата картой РФ или через СБП, выдача в день заказа, цены и сроки указаны на витрине.
Обсуждение
0 комментариев