OpenAI
このページは機械翻訳されています。元の英語の記事を表示

OpenAIモデルの応答の長さを制御する

トークン設定、明確なプロンプト、例、停止シーケンスを使って、OpenAIモデルの出力上限を設定する方法を学びます。

更新日: yesterday

概要

モデルの応答の長さを制御することは、いくつかの理由で役立ちます。コスト管理(トークンごとに課金されるため)に役立ち、レイテンシ/パフォーマンスを改善し(短い応答はより速く返る)、過度に長い・冗長な出力を避けることで関連性を保てます。

これは、トークン上限、reasoning と verbosity の設定、明確な指示、例、停止シーケンスを使って実現できます。最新かつ完全な情報については、常に platform.openai.com の公式APIリファレンス を参照してください。

最大出力長を設定する

Responses API

GPT-5 モデルおよびほとんどの o シリーズモデルで使用します。モデルが生成するトークン数を上限設定するには max_output_tokens を使います。stop はサポートしますが、複数補完(n)はサポートしません

Chat Completions API

レガシーの GPT-3.5、GPT-4o、および場合によっては o シリーズで使用します。

  • o3 や o4-mini のような推論モデルでは、max_completion_tokensmax_tokens の別名)を使用します

  • それ以前の/推論しないモデルでは、max_tokens が引き続き使えます

  • stopn(複数補完)をサポートします。

注: 「最小トークン数」の設定はありません。最小の長さが必要な場合は、プロンプトで指定してください。

モデルグループ別のトークン上限

最新のトークン上限、コンテキストサイズ、出力上限については、各モデルのドキュメントを参照してください。

簡単な例

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 モデル固有の制御: verbosityreasoning.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,lowmediumhigh,and xhigh をサポートします。gpt-5.2-pro は mediumhigh,and xhigh のみをサポートします。以前の推論モデルは lowmediumhigh のみをサポートします。

{ "model": "gpt-5", "input": "自由の女神像を厚さ1mmの層で金メッキするには、どれくらいの金が必要ですか?", "reasoning": { "effort": "minimal" } }

reasoning.effortnone に設定すると、レイテンシ重視のユースケースで、モデルを推論しないモデルのように振る舞わせることができます。

具体的な指示を与える

望む長さや形式を、正確に指定してください。例:

  • 「選択肢をちょうど5つ挙げてください。」

  • 50語の要約を書いてください。」

  • 100トークン以内。もっと必要なら『もっと枠が必要です。』と言ってください。」

長さが一貫した例を使う

望む長さに合った few-shot の例は、モデルがそのパターンを継続する助けになります。

戦略的な停止シーケンスを適用する

stop を使うと、モデルが区切り文字や番号付きリストの境界に到達した時点で生成を停止できます。

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

複数候補

  • Chat Completions: n で、1回の呼び出しで複数の補完を返します。

  • Responses API: n はサポートされません。複数の出力が必要な場合は複数回呼び出してください。

この記事は役に立ちましたか?