OpenAI
页面内容为机器翻译。查看英文原文

控制 OpenAI 模型响应的长度

了解如何使用 Token 设置、明确提示、示例和停止序列,为 OpenAI 模型设置输出限制。

更新于:5 days ago

概览

控制模型响应长度有多方面好处:有助于管理成本(因为按 Token 计费)、降低延迟并提升性能(响应越短返回越快),还可避免输出过长或啰嗦,从而确保内容相关。

你可以通过 Token 上限、推理和 verbosity 设置、清晰说明、示例以及停止序列来实现这一点。如需最新、最完整的详细信息,请始终参阅 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": "给自由女神像镀上一层 1 毫米厚的金,需要多少黄金?", "reasoning": { "effort": "minimal" } }

对于延迟敏感型用例,可以将 reasoning.effort 设为 none,使模型像非推理模型一样运行。

提供具体说明

明确要求你想要的长度或形式。示例:

  • “列出正好五个选项。”

  • “写一段50 个词的摘要。”

  • “不超过 100 个 Token。如果还需要空间,请说‘需要更多空间。’”

使用长度一致的示例

与期望长度相匹配的少样本示例有助于模型延续这种模式。

策略性地应用停止序列

使用 stop,可在模型遇到分隔符或编号列表边界时停止生成。

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

多个候选结果

  • Chat Completions:n 可在一次调用中返回多个补全结果。

  • Responses API:不支持 n;如果需要多个输出,请进行多次调用。

这篇文章对你有帮助吗?