概要
モデルの応答長を制御することには、いくつかの利点があります。トークン単位で課金されるためコスト管理に役立ち、短い応答ほど速く返るためレイテンシやパフォーマンスが向上し、長すぎる出力や冗長な出力を避けて関連性を保てます。
これは、トークン上限、推論と詳細度の設定、明確な指示、例、停止シーケンスを使って実現できます。最新かつ完全な詳細については、必ず platform.openai.com の公式 API リファレンスを参照してください。
最大出力長の設定
Responses API
GPT-5 モデルと大半の o シリーズモデルでは、モデルが生成するトークン数を制限するために max_output_tokens を使用します。compaction_trigger リクエストでは、max_output_tokens を省略するか、20000 以上に設定してください。それより小さい値は拒否されます。Responses API は複数の補完(n)をサポートしていません。
Chat Completions API
旧世代の GPT-3.5、GPT-4o、および一部の o シリーズで使用します。
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": "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、xhigh をサポートしています。gpt-5.2-pro がサポートするのは medium、high、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 回の呼び出しで複数の補完を返します。
Responses API:n はサポートされていません。複数の出力が必要な場合は、複数回呼び出してください。
