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

控制 OpenAI 模型回覆的長度

了解如何透過 token 設定、清楚的提示、範例與停止序列,為 OpenAI 模型設定輸出上限。

更新日期:5 minutes ago

概覽

控制模型回覆的長度有幾個好處:有助於控管成本(因為你是按 token 計費)、改善延遲/效能(較短的回覆回傳更快),並且可避免輸出過長或冗長,確保內容切題。

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

設定最大輸出長度

Responses API

用於 GPT-5 模型與多數 o 系列模型:使用 max_output_tokens 來限制模型可產生的 token 數。支援 stop,但不支援多重 completion(n)。

Chat Completions API

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

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

  • 對於較早/非推理模型,max_tokens 仍然可用

  • 支援 stopn(多個 completion)。

注意:沒有「最少 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 模型專屬控制: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 用來控制在產生答案前會先產生多少推理 token。GPT-5.2 支援 none,lowmediumhigh,and xhigh。gpt-5.2-pro 僅支援 mediumhigh,and xhigh。較早的推理模型只支援 lowmediumhigh

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

你可以將 reasoning.effort 設為 none,讓模型在對延遲敏感的使用情境中表現得像非推理模型一樣。

提供具體指示

明確要求你想要的精確長度或格式。例如:

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

  • 「撰寫一段50 字摘要。」

  • 「不超過100 個 token。若需要更多,請說『需要更多空間。』」

使用長度一致的範例

與你期望長度相符的 few-shot 範例,能幫助模型延續相同的模式。

套用策略性的停止序列

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

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

多個候選答案

  • Chat Completions: n 會在一次呼叫中回傳多個 completion。

  • Responses API: 不支援 n;若需要一個以上的輸出,請進行多次呼叫。

這篇文章有幫助嗎?