概览
控制模型回复的长度有几个好处:有助于管理成本(因为按 token 计费),提升延迟/性能(更短的回复返回更快),并通过避免过长或过于啰嗦的输出来确保相关性。
你可以通过 token 上限、推理与详细度设置、清晰的指令、示例以及停止序列来实现。要获取最新且完整的细节,请始终参考 platform.openai.com 上的官方 API 参考。
设置最大输出长度
Responses API
用于 GPT-5 模型以及大多数 o 系列模型:使用 max_output_tokens 来限制模型将生成的 token 数。支持 stop,但不支持多候选(n)。
Chat Completions API
用于旧版 GPT-3.5、GPT-4o,以及有时用于 o 系列。
对于 o3、o4-mini 等推理模型,使用
max_completion_tokens(max_tokens的别名)对于更早/非推理模型,
max_tokens仍然有效支持
stop和n(多候选)。
注意:没有“最少 tokens”的设置。如果你需要最小长度,请在提示词中明确说明。
按模型组划分的 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 支持 none,low、medium、high,and xhigh。gpt-5.2-pro 仅支持 medium、high,and xhigh。更早的推理模型仅支持 low、medium 和 high。
{ "model": "gpt-5", "input": "用 1mm 厚的一层把自由女神像整体镀上一层金,大概需要多少黄金?", "reasoning": { "effort": "minimal" } }你可以将 reasoning.effort 设为 none,让模型在对延迟敏感的场景下表现得像非推理模型。
提供具体指令
明确提出你想要的准确长度或格式。例如:
“列出恰好五个选项。”
“写一段50 字的摘要。”
“不超过 100 tokens。如果需要更多,就说‘Need more room.’”
使用长度一致的示例
与目标长度一致的 few-shot 示例,能帮助模型延续该模式。
应用策略性的停止序列
使用 stop 在模型到达某个分隔符或编号列表边界时停止生成。
{ "stop": ["\n###", "6."] }多个候选
Chat Completions:
n可在一次调用中返回多个补全结果。Responses API:不支持
n;如果需要多个输出,请发起多次调用。
