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

控制 OpenAI 模型回應的長度

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

更新日期:10 hours ago

概覽

控制模型回應長度有多項好處:有助管理成本(因為你按 Token 付費)、改善延遲和效能(較短的回應可更快返回),並透過避免過長或冗贅的輸出,確保內容相關。

你可以透過 Token 上限、推理和詳細程度設定、清晰指示、範例,以及停止序列來做到這一點。如要取得最新且完整的詳情,請務必參閱 platform.openai.com 上的官方 API 參考。

設定最大輸出長度

Responses API

適用於 GPT-5 模型及大部分 o 系列模型:使用 max_output_tokens 為模型可生成的 Token 數量設定上限。對於 compaction_trigger 請求,請省略 max_output_tokens,或將其設為至少 20000;較小的值會被拒絕。Responses API 不支援多個 completions(n)。

Chat Completions API

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

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

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

  • 支援 stopn(多個 completions)。

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

按模型組別劃分的 Token 限制

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

簡短範例

Responses API

{ "model": "gpt-5", "input": "以約 80 字總結研究結果。", "max_output_tokens": 120 }

Chat Completions(推理模型)

{ "model": "o3-mini", "messages": [{"role": "user", "content": "Write five one-line options."}], "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。如需要更多篇幅,請說『需要更多空間。』」

使用長度一致的範例

與你期望長度相符的少範例,有助模型延續相同模式。

善用策略性停止序列

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

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

多個候選結果

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

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

這篇文章對你有幫助嗎?