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

控制 OpenAI 模型响应的长度

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

更新于:16 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 模型专用控制项: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": "给自由女神像镀上一层 1 毫米厚的金,需要多少黄金?", "reasoning": { "effort": "minimal" } }

你可以将 `reasoning.effort` 设置为 none,让模型在对延迟敏感的用例中表现得像非推理模型。

提供具体说明

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

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

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

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

使用长度一致的示例

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

有策略地应用停止序列

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

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

多个候选结果

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

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

这篇文章对你有帮助吗?