[Bug]: gpt-6-astra rejects max_tokens (is_model_gpt_5_model / is_model_gpt_5_4_plus_model don’t recognize gpt-6 family)

该报错通常出现在 LiteLLM 代理调用 OpenAI 新一代推理模型(如 gpt-6-astra )时,由于 LiteLLM 的模型识别函数只匹配 "gpt-5" 子串,导致 max_tokens 未自动转换为 max_completion_tokens 。优先排查 LiteLLM 版本是否低于

快速结论:该报错通常出现在 LiteLLM 代理调用 OpenAI 新一代推理模型(如 gpt-6-astra)时,由于 LiteLLM 的模型识别函数只匹配 "gpt-5" 子串,导致 max_tokens 未自动转换为 max_completion_tokens。优先排查 LiteLLM 版本是否低于修复版本,并升级到包含修复的版本。

适用环境:Issue 已确认为 LiteLLM v1.98.0(修复版本为 v1.101.0-rc.1),调用 OpenAI gpt-6-astra 模型时触发;操作系统、Python、CUDA、显卡等环境未在 Issue 中提及。

最快修复方案:升级 LiteLLM 到 v1.101.0-rc.1 或更高版本。该版本通过 PR #39631 将 gpt-6 名称纳入 GPT-5 请求族处理,issue 评论确认 max_tokens 与 function tools 配合 reasoning 均已通过验证。

注意事项:若无法立即升级,可先改用 max_completion_tokens 参数绕过报错,但 function tools 与 reasoning_effort 同时使用的问题可能仍然存在,建议仍以升级版本为最终解决方案。

问题场景

用户在 LiteLLM 代理环境中,通过 /v1/chat/completions 接口调用 OpenAI 的 gpt-6-astra 模型,并传入旧版 max_tokens 参数时触发报错。同时,在 gpt-6-astra 上启用 function tools 与 reasoning 时也出现类似参数不兼容的报错。

报错原文

litellm.BadRequestError: OpenAIException - Unsupported parameter: 'max_tokens' is not supported
with this model. Use 'max_completion_tokens' instead.

litellm.BadRequestError: OpenAIException - Function tools with reasoning_effort are not supported
for gpt-6-astra in /v1/chat/completions. To use function tools, use /v1/responses or set
reasoning_effort to 'none'.

原因分析

根本原因在 LiteLLM 的模型识别逻辑。在 litellm/llms/openai/chat/gpt_5_transformation.py 中,OpenAIGPT5Config.is_model_gpt_5_model()is_model_gpt_5_4_plus_model() 均通过判断模型名字符串中是否包含 "gpt-5" 来决定是否走 GPT-5 家族的参数处理逻辑。由于 gpt-6-astra 包含的是 "gpt-6" 而不是 "gpt-5",导致这两个函数都返回 False,从而跳过了 GPT-5 家族相关的所有代码路径,包括 max_tokensmax_completion_tokens 的自动映射、reasoning_effort 校验、tool_choice 支持判断,以及 /v1/responses 自动桥接检查。Issue 作者指出这是与历史 Issue #13381、#30084、#24863 相同的重复故障模式——每次 OpenAI 发布新的推理模型家族或命名方案时,基于模型名字符串的识别逻辑就需要打补丁。

环境排查

  • 确认 LiteLLM 版本:需升级至 v1.101.0-rc.1 或更高版本(Issue 确认 v1.98.0 存在此问题)。
  • 确认调用模型名称是否为 gpt-6-astra(或任何 gpt-6 开头、不含 "gpt-5" 子串的模型)。
  • 如果使用代理模式,确认代理日志中是否存在 map_openai_params() 相关的参数转换记录。
  • 可以对比使用 gpt-5.2 模型验证是否同样报错——Issue 中通过 30 天生产日志的阴性对照确认了问题仅影响 "gpt-5" 子串匹配不到的模型。

解决步骤

  1. 升级 LiteLLM:将 LiteLLM 升级到 v1.101.0-rc.1 或更高版本。该版本通过 PR #39631 修复了 gpt-6 模型名称识别问题,将其作为 GPT-5 请求家族处理。Issue 评论确认升级后 max_tokens 参数与 function tools + reasoning 均可正常工作。
  2. 验证参数转换:升级后,再次使用 gpt-6-astra 模型并传入 max_tokens 参数,确认 LiteLLM 会自动将其映射为 max_completion_tokens 而不报错。
  3. 测试 function tools + reasoning:在同一个模型上启用 function tools 并设置 reasoning_effort,确认不再触发 /v1/responses 桥接相关报错。
  4. 如果暂时无法升级(可优先尝试):在请求中直接使用 max_completion_tokens 替代 max_tokens,可以绕过第一个报错。但这只是临时规避,function tools 与 reasoning 联用的问题仍可能存在,需等待升级。

验证方法

升级 LiteLLM 后,使用 gpt-6-astra 模型重复发起包含 max_tokens 参数的请求,若能正常返回响应、不再抛出 Unsupported parameter: 'max_tokens' 错误,即确认问题已解决。同时建议测试 function tools 与 reasoning 组合场景,确认第二个报错也不再出现。

参考来源

BerriAI/litellm #40279

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 22544

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注