3.3 KiB
3.3 KiB
OpenAI Chat Completions API — 出力トークン数制御パラメータ仕様
- Source: https://platform.openai.com/docs/api-reference/chat/create
- Supplementary: https://learn.microsoft.com/en-us/azure/foundry/openai/how-to/reasoning
- Retrieved: 2026-04-28
1. max_tokens と max_completion_tokens の関係
| パラメータ | 状態 | 対応モデル |
|---|---|---|
max_tokens |
Deprecated | GPT-3.5, GPT-4 系など旧モデルでは動作する |
max_completion_tokens |
現行・推奨 | 全モデル(旧モデルにも後方互換あり) |
max_tokensは o1 系以降では 受け付けられない(エラーまたは無視)。- 変更の背景: 旧来の
max_tokensは「返却トークン = 生成トークン = 課金トークン」を前提にしていた。o1 系で推論トークン(reasoning tokens)が導入されたことでこの前提が崩れ、新パラメータが設計された。 max_completion_tokensは旧モデルでも機能するため、新規実装ではmax_completion_tokensを使うべき。
2. 必須か任意か
- 任意(optional)。
- 指定しない場合はモデルのコンテキスト上限まで生成する(デフォルト:
null)。
3. 型と範囲
- 型:
integer | null - 範囲:
1以上、モデルのコンテキストウィンドウの残りトークン数以下。上限値はモデルごとに異なり、ドキュメント上に固定の最大値は明示されていない。 nullを渡すと制限なし(モデル上限に従う)。
4. Reasoning モデルでの reasoning tokens のカウント
max_completion_tokensの上限には reasoning tokens(推論トークン)を含む。- reasoning tokens: モデルが内部で生成するが API レスポンスには含まれない隠しトークン。
- 課金対象は reasoning tokens + visible output tokens の合計。
- レスポンスの
usage.completion_tokens_details.reasoning_tokensで内訳を確認できる。
- したがって、
max_completion_tokens = 5000と設定しても、推論に多くのトークンを使った場合、目に見える出力は 5000 より少なくなる。
5. Ollama の OpenAI compat API での扱い(補助情報)
- Ollama の
/v1/chat/completionsは現時点でmax_tokensのみを公式サポートしている(内部的にnum_predictにマッピング)。 max_completion_tokensサポートは Issue #7125 / PR #14464 で議論中だが、2026-04-28 時点では公式ドキュメント上に記載なし。- Ollama に対しては
max_tokensを使うのが安全な選択。ただし将来的にmax_completion_tokensに移行される見込み。