OpenAI
Эта страница была переведена машинным переводом. Открыть оригинальную статью на английском.

Управление длиной ответов моделей OpenAI

Узнайте, как задавать ограничения вывода для моделей OpenAI с помощью настроек токенов, четких промптов, примеров и stop-последовательностей.

Обновлено: 14 days ago

Обзор

Управлять длиной ответа модели полезно по нескольким причинам: это помогает контролировать стоимость (так как оплата идет за токен), снижает задержку и повышает производительность (короткие ответы возвращаются быстрее), а также сохраняет релевантность, предотвращая слишком длинный или многословный вывод.

Для этого можно использовать лимиты токенов, настройки рассуждений и подробности, четкие инструкции, примеры и stop-последовательности. Самые актуальные и полные сведения всегда смотрите в официальном справочнике API на platform.openai.com.

Задайте максимальную длину вывода

Responses API

Используется для моделей GPT-5 и большинства моделей o-series: применяйте max_output_tokens, чтобы ограничить число токенов, которые сгенерирует модель. Для запросов compaction_trigger либо не указывайте max_output_tokens, либо задайте значение не меньше 20000; меньшие значения отклоняются. Responses API не поддерживает несколько завершений (n).

API завершения чата

Используется для устаревших GPT-3.5, GPT-4o и иногда для o-series.

  • Для моделей рассуждений, таких как o3 и o4-mini, используйте max_completion_tokens (псевдоним max_tokens).

  • Для более ранних моделей и моделей без рассуждений max_tokens по-прежнему работает.

  • Поддерживает stop и n (несколько завершений).

Примечание. Настройки «минимальное число токенов» нет. Если вам нужна минимальная длина, укажите ее в промпте.

Ограничения токенов по группам моделей

Актуальные ограничения токенов, размеры контекста и лимиты вывода см. в документации по конкретной модели.

Короткие примеры

Responses API

{ "model": "gpt-5", "input": "Кратко изложи выводы примерно в 80 словах.", "max_output_tokens": 120 }

Chat Completions (модель рассуждений)

{ "model": "o3-mini", "messages": [{"role": "user", "content": "Напиши пять вариантов по одной строке."}], "max_completion_tokens": 100 }

Специальные параметры моделей GPT-5: verbosity и reasoning.effort

Эти параметры доступны только в моделях GPT-5 (gpt-5.2, gpt-5.2-chat-latest, gpt-5.2 pro и т. д.). Модели O-series и устаревшие модели их не поддерживают.

`verbosity` принимает значения "low", "medium" (по умолчанию) или "high". Этот параметр влияет на уровень детализации, но не на жесткие ограничения.

{ "model": "gpt-5", "input": "Объясни PageRank на общем уровне.", "text": { "verbosity": "low" }, "max_output_tokens": 200 }

`reasoning.effort` управляет тем, сколько токенов рассуждений генерируется до выдачи ответа. GPT-5.2 поддерживает none,low, medium, high,and xhigh. gpt-5.2-pro поддерживает только medium, high,and xhigh. Более ранние модели рассуждений поддерживают только low, medium и high.

{ "model": "gpt-5", "input": "Сколько золота потребуется, чтобы покрыть Статую Свободы слоем толщиной 1 мм?", "reasoning": { "effort": "minimal" } }

Можно установить `reasoning.effort` равным none, чтобы модель вела себя как модель без рассуждений в сценариях, чувствительных к задержке.

Давайте конкретные инструкции

Укажите точную длину или формат, который вам нужен. Примеры:

  • «Перечисли ровно пять вариантов».

  • «Напиши резюме из 50 слов».

  • «Не более 100 токенов. Если нужно больше, напишите: «Нужно больше места».»

Используйте примеры одинаковой длины

Few-shot примеры, соответствующие желаемой длине, помогают модели продолжать заданный шаблон.

Стратегически используйте stop-последовательности

Используйте stop, чтобы остановить генерацию, когда модель достигнет разделителя или границы нумерованного списка.

{ "stop": ["\n###", "6."] }

Несколько кандидатов

  • Chat Completions: n возвращает несколько завершений за один вызов.

  • Responses API: n не поддерживается; если нужно больше одного вывода, выполните несколько вызовов.

Была ли эта статья полезной?