首页/AI/AI 应用速查/max_tokens 与输出截断

max_tokens 与输出截断

限制单次响应生成长度(新接口中部分改名为 max_completion_tokens)。它约束输出而非输入;被截断时 finish_reason=length,内容可能是不完整 JSON。

AI 应用速查AI更新于 2026-10-13

max_tokens 是什么

max_tokens 限制单次响应能生成的最长长度,约束的是输出而不是输入:设得再小也不会让长提示词被截断,设得再大也不会突破模型的上下文窗口。部分新接口把它改名为 max_completion_tokens,语义相同。推理类模型的内部分析过程同样消耗额度,因此同一个上限下,推理模型的可见答案往往更短。

基本信息

作用范围限制输出长度,不影响输入
常见命名max_tokens,新版接口中有等价改名
与窗口关系输入长度加输出上限受模型窗口约束
被截断表现结束原因字段提示长度耗尽,回答在句中断开
推理模型分析与答案共享同一额度上限
缺失后果部分接口必填,缺失直接返回参数错误

被截断时怎么判断

现象含义处理
回答在句子中途断开输出达到上限调大上限或要求更简短的输出
结束原因提示长度限制确认是截断而非模型主动停止按业务需要调整上限
JSON 少右括号结构化输出被截断提高上限并在解析失败时重试
推理模型回答特别短额度被推理过程消耗按推理档位与任务复杂度放宽上限

典型使用场景

  • 结构化抽取:给足短字段所需空间,避免 JSON 被截断
  • 成本控制:为批量任务设定合理上限,防止异常长输出
  • 接口保护:限制单次输出,避免下游处理超时
  • 分步生成:先出提纲再出正文,每步各自设上限
  • 长文任务:按章节切分生成,而不是一次要求整篇

设置与验证

设置与验证
curl -s https://api.openai.com/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d '{"model":"gpt-4o","max_tokens":256,"messages":[{"role":"user","content":"用一句话概括这段话"}]}'
# 检查返回的结束原因字段:长度限制与自然结束要区别处理
# 结构化输出场景给足余量,解析失败时优先怀疑截断
# 上限不要顶着模型窗口设置,要给输入内容预留足够空间
让模型输出更短的最有效手段往往不是调小上限,而是在提示里明确字数或条数要求:上限只是保险,不是压缩工具。
上限设得偏小会让长回答静默丢失尾部内容:写作与报告类任务尤其要检查结束原因,否则会把不完整内容当成成品交付。

易错点

  • 把输出上限设得过小:回答在句中断开,内容不完整却被当成正常结果
  • 以为调小上限能压缩长提示词:输入侧完全不受影响,成本不变
  • 结构化输出不给余量:JSON 被截断,下游解析直接失败
  • 漏掉必填的长度参数:请求被拒,排查时容易误判为密钥或网络问题

数据来源与参考

  • OpenAI API 参考(max_tokens / max_completion_tokens)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌