[Bug]: aiohttp_openai drops `service_tier` from chat completion responses

使用 LiteLLM 的 aiohttp_openai provider 发起非流式 chat completion 时,上游返回的 `service_tier` 会被丢弃,导致 ModelResponse 上读不到该字段;优先排查是否走了 aiohttp_openai 转换路径而非标准 OpenA

快速结论:使用 LiteLLM 的 aiohttp_openai provider 发起非流式 chat completion 时,上游返回的 `service_tier` 会被丢弃,导致 ModelResponse 上读不到该字段;优先排查是否走了 aiohttp_openai 转换路径而非标准 OpenAI 路径。

适用环境:LiteLLM 仓库(main 分支提交 e979bd0ecf、v1.101.x 可复现);provider 为 aiohttp_openai;上游为 OpenAI 或 OpenAI 兼容后端;Python 环境具体版本 Issue 未说明。

最快修复方案:升级到包含 PR #47263 修复的 LiteLLM 版本,该修复将 `service_tier` 转发到 ModelResponse,并附带了回归测试。

注意事项:Issue 正文提到同一映射还会丢弃 `usage`,但该问题由 #33967 单独跟踪,本次修复不覆盖它;升级前请确认所用版本已包含 #47263。

问题场景

用户通过 LiteLLM 的 `aiohttp_openai` provider 调用 chat completion(非流式),上游 OpenAI 或 OpenAI 兼容后端在响应 JSON 中返回了 `service_tier`(例如 `flex`)。问题出现在 `litellm/llms/aiohttp_openai/chat/transformation.py` 的 `AiohttpOpenAIChatConfig.transform_response`,它只映射了 id、choices、created、model、object 和 system_fingerprint,因此下游读取已服务层级的组件(例如 `litellm/proxy/spend_tracking/savings.py` 中的代理开销/节省统计)拿不到该字段。

报错原文

[Bug]: aiohttp_openai drops `service_tier` from chat completion responses

原因分析

最可能的原因是 aiohttp_openai 的非流式响应转换函数采用白名单式字段映射,未将上游 JSON 中的 `service_tier` 写入 ModelResponse。标准 OpenAI 路径会保留该字段,流式路径也已把实际服务的层级写到 chunk 上,只有这条非流式 aiohttp 路径丢失。复现脚本中,`getattr(out, “service_tier”, None)` 输出 `None`,而 `ModelResponse.model_validate(payload).service_tier` 输出 `”flex”`。

环境排查

  • 确认 LiteLLM 版本:main 提交 e979bd0ecf 与 v1.101.x 均可复现,需确认所用版本是否已包含 PR #47263。
  • 确认调用走的是 aiohttp_openai provider,而不是标准 OpenAI provider。
  • 确认调用为非流式;流式路径不在本 Issue 范围内。
  • 确认上游响应中确实带有 `service_tier` 字段。
  • Python、CUDA、PyTorch、显卡等版本 Issue 未提供,无需针对本问题排查。

解决步骤

  1. 先按 Issue 中的复现脚本验证当前版本是否存在该丢弃行为(可优先尝试)。
  2. 升级 LiteLLM 到包含 PR #47263 的版本;评论已确认该 PR 合并。
  3. 升级后重新运行复现逻辑,检查 aiohttp_openai 路径返回的 ModelResponse 是否带有 `service_tier`。
  4. 如果仍读到 `None`,确认实际使用的 provider 与代码路径,排除走了其他转换实现。

验证方法

执行复现脚本时,aiohttp_openai 路径的 `getattr(out, “service_tier”, None)` 应与标准路径一致返回 `”flex”`,而不再是 `None`;依赖已服务层级的下游统计(如代理开销/节省跟踪)应能读到对应层级。

参考来源

BerriAI/litellm #47258

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 30798

发表回复

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