OpenAI
此頁面由機器翻譯。查看原始英文文章

控制 OpenAI 模型回應的長度

了解如何使用 Token 設定、清楚的提示詞、範例與停止序列,為 OpenAI 模型設定輸出限制。

更新日期:9 days ago

總覽

控制模型回應長度有幾個好處:有助於管理成本(因為你按 Token 付費)、改善延遲與效能(較短的回應會更快傳回),並避免過長或過於冗贅的輸出,以確保相關性。

你可以透過 Token 上限、推理與詳細度設定、清楚的指示、範例,以及停止序列來達成。如需最新且完整的詳細資訊,請一律參閱 platform.openai.com 上的官方 API 參考文件。

設定最大輸出長度

Responses API

適用於 GPT-5 模型和大多數 o 系列模型:使用 max_output_tokens 限制模型生成的 Token 數量。對於 compaction_trigger 請求,請省略 max_output_tokens,或將其設為至少 20000;較小的值會遭到拒絕。Responses API 不支援一次生成多個完成結果(n)。

Chat Completions API

適用於舊版 GPT-3.5、GPT-4o,有時也適用於 o 系列。

  • 對於 o3 和 o4-mini 等推理模型,請使用 max_completion_tokensmax_tokens 的別名)

  • 對於較早期或非推理模型,max_tokens 仍然有效

  • 支援 stopn(多個完成結果)。

注意:沒有「最低 Token 數」設定。如果你需要最低長度,請在提示詞中指定。

依模型群組區分的 Token 限制

如需最新的 Token 限制、上下文大小與輸出上限,請參閱特定模型文件

快速範例

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 系列和舊版模型不支援這些控制項。


verbosity 可設為 "low""medium"(預設)或 "high"。此設定會影響詳細程度,但不會設定硬性限制。

{ "model": "gpt-5", "input": "概略說明 PageRank。", "text": { "verbosity": "low" }, "max_output_tokens": 200 }

reasoning.effort 控制產生答案前所生成的推理 Token 數量。GPT-5.2 支援 nonelowmediumhighxhigh。gpt-5.2-pro 僅支援 mediumhighxhigh。較早期的推理模型僅支援 lowmediumhigh

{ "model": "gpt-5", "input": "若要在自由女神像表面鍍上一層 1mm 厚的黃金,需要多少黃金?", "reasoning": { "effort": "minimal" } }

對於對延遲敏感的使用情境,可將 reasoning.effort 設為 none,使模型以非推理模型的方式運作。

提供具體指示

明確要求你想要的長度或形式。範例:

  • 「列出剛好五個選項。」

  • 「寫一篇50 字摘要。」

  • 「不超過 100 個 Token。如果需要更多空間,請說「需要更多空間。」」

使用長度一致的範例

與你所需長度相符的少樣本範例,有助於模型延續相同模式。

策略性套用停止序列

使用 stop,在模型遇到分隔符號或編號清單邊界時停止生成。

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

多個候選結果

  • Chat Completions:n 可在一次呼叫中傳回多個完成結果。

  • Responses API:不支援 n;如需多個輸出,請進行多次呼叫。

這篇文章有幫助嗎?