概要
モデルの応答長を制御することには、いくつかの利点があります。トークン単位で課金されるためコスト管理に役立ち、短い応答ほど速く返るためレイテンシやパフォーマンスが向上し、長すぎる出力や冗長な出力を避けて関連性を保てます。
これは、トークン上限、推論と詳細度の設定、明確な指示、例、停止シーケンスを使って実現できます。最新かつ完全な詳細については、必ず platform.openai.com の公式 API リファレンスを参照してください。
最大出力長の設定
Responses API
GPT-5 モデルとほとんどの o シリーズモデルで使用します。モデルが生成するトークン数を制限するには、max_output_tokens を使用します。compaction_trigger リクエストでは、max_output_tokens を省略するか、少なくとも 20000 に設定してください。これより小さい値は拒否されます。Responses API は複数の completion(n)をサポートしていません。
Chat Completions API
レガシーの GPT-3.5、GPT-4o、および一部の o シリーズで使用します。
o3 や o4-mini などのリーズニングモデルでは、
max_completion_tokens(max_tokensのエイリアス)を使用します以前のモデルや非リーズニングモデルでは、引き続き
max_tokensが機能しますstopとn(複数の completion)をサポートしています。
注: 「最小トークン数」の設定はありません。最小長が必要な場合は、プロンプトで指定してください。
モデルグループ別のトークン制限
最新のトークン制限、コンテキストサイズ、出力上限については、各モデルのドキュメントを参照してください。
簡単な例
Responses API
{ "model": "gpt-5", "input": "調査結果を約 80 語で要約してください。", "max_output_tokens": 120 }Chat Completions(リーズニングモデル)
{ "model": "o3-mini", "messages": [{"role": "user", "content": "1行の選択肢を5つ書いてください。"}], "max_completion_tokens": 100 }GPT-5 モデル固有のコントロール: verbosity と reasoning.effort
これらのコントロールは GPT-5 モデルでのみ利用できます(gpt-5.2、gpt-5.2-chat-latest、gpt-5.2 pro など)。O シリーズおよびレガシーモデルではサポートされていません。
`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 mm の層で覆うには、どれくらいの金が必要ですか?", "reasoning": { "effort": "minimal" } }レイテンシが重視されるユースケースでは、`reasoning.effort` を none に設定すると、モデルを非リーズニングモデルのように動作させることができます。
具体的な指示の提示
希望する正確な長さや形式を指定します。例:
「ちょうど 5 つの選択肢を挙げてください」
「50 語の要約を書いてください」
「100 トークン以内。さらに必要な場合は『もっと余裕が必要です』と言ってください」
長さが一貫した例の使用
望ましい長さに合ったフューショットの例を示すと、モデルがそのパターンを続けやすくなります。
戦略的な停止シーケンスの適用
モデルが区切り文字または番号付きリストの境界に到達した時点で生成を停止するには、stop を使用します。
{ "stop": ["\n###", "6."] }複数の候補
Chat Completions:
nは 1 回の呼び出しで複数の completion を返します。Responses API:
nはサポートされていません。複数の出力が必要な場合は、複数回呼び出してください。
