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

控制 OpenAI 模型回复长度

了解如何通过 token 设置、清晰提示、示例和停止序列为 OpenAI 模型设置输出限制。

更新于:5 minutes ago

概览

控制模型回复的长度有几个好处:有助于管理成本(因为按 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_tokensmax_tokens 的别名)

  • 对于更早/非推理模型,max_tokens 仍然有效

  • 支持 stopn(多候选)。

注意:没有“最少 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 模型的专属控制项: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 tokens。如果需要更多,就说‘Need more room.’”

使用长度一致的示例

与目标长度一致的 few-shot 示例,能帮助模型延续该模式。

应用策略性的停止序列

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

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

多个候选

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

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

这篇文章对你有帮助吗?