ModuleNotFoundError: No module named ‘proxy_server’

该报错通常出现在 LiteLLM Proxy 通过 Bedrock 调用 OpenAI GPT-5.6 系列模型时,表现为代理启动崩溃、请求永久挂起、非流式返回解析错误、流式返回空文本。优先排查模型是否被错误路由为 Responses API 模式,并检查 FastAPI 版本兼容性。

快速结论:该报错通常出现在 LiteLLM Proxy 通过 Bedrock 调用 OpenAI GPT-5.6 系列模型时,表现为代理启动崩溃、请求永久挂起、非流式返回解析错误、流式返回空文本。优先排查模型是否被错误路由为 Responses API 模式,并检查 FastAPI 版本兼容性。

适用环境:litellm 1.97.0、FastAPI 0.141.1、AWS Bedrock us-east-1 区域、模型标识为 bedrock/us.openai.gpt-5.6-sol|terra|luna。未确认 Python、CUDA、显卡等其他环境信息。

最快修复方案:暂无确认的一步修复方案。Issue 中提供的临时缓解措施是为每个模型显式设置 model_info.mode: chat,并手动为 Bedrock Invoke 响应转换和流式 chunk 解析补充 OpenAI 分支逻辑;但这些属于本地补丁,非官方正式修复。

注意事项:即使强制聊天模式,非流式和流式请求仍会分别触发解析错误和空文本问题,需要额外的代码补丁才能完全解决;Issue 在关闭时未提供官方修复版本,后续升级 litellm 时需重新验证。

问题场景

在 Litellm Proxy 中通过 AWS Bedrock 调用 OpenAI GPT-5.6 系列模型(bedrock/us.openai.gpt-5.6-sol|terra|luna)时触发。用户将模型加入 model_list 后发送 POST /v1/chat/completions/v1/messages 请求,出现四类叠加故障:代理启动失败、请求挂起、非流式解析错误、流式空文本。

报错原文

ImportError: cannot import name 'get_flat_dependant'
BadRequestError / 'NoneType' object is not subscriptable
# 流式响应:SSE 事件结构正常,但每个 delta 的文本内容为空

原因分析

可能原因:

  • FastAPI 0.141.1 版本与当前 litellm 1.97.0 存在兼容性问题,导致 get_flat_dependant 无法导入,代理无法启动。
  • 模型路由模糊匹配错误:未显式设置 model_info.mode: chat 时,代理将 Bedrock OpenAI GPT-5.6 模型错误识别为 Responses API 模型(模糊匹配到 bedrock_mantle/openai.gpt-5.6-*mode: responses 元数据),触发 completion ↔ responses 无限桥接循环,请求永久挂起。
  • 响应转换缺少 OpenAI 分支:Bedrock Invoke 的非流式响应解析时,代码未处理 OpenAI Chat Completions 格式,错误落入 Titan 的 results[0].outputText 解析逻辑,导致 'NoneType' object is not subscriptable
  • 流式 chunk 解析器缺少 choices[].delta.content 分支,导致每个 SSE delta 中文本为空。

环境排查

  • 确认 litellm 版本是否为 1.97.0(或该版本附近的已知问题版本)。
  • 确认 FastAPI 版本是否 ≥0.115 或为 0.141.1;若高于此版本,优先检查是否触发 get_flat_dependant 导入错误。
  • 确认模型名称是否以 bedrock/us.openai.gpt-5.6- 开头,以及是否在 model_list 中配置了 model_info.mode
  • 确认 AWS 区域为 us-east-1,并检查 aws_profile_name 凭据是否有效。

解决步骤

  1. 优先尝试:在服务的 model_list 中为每个 Bedrock OpenAI GPT-5.6 模型显式添加 model_info: mode: chat,强制代理按聊天模型路由,避免 Responses API 循环造成请求挂起。
  2. 针对启动崩溃:若代理启动时出现 ImportError: cannot import name 'get_flat_dependant',检查 FastAPI 版本;如果无法降级 litellm,临时将 FastAPI 回退到兼容版本(Issue 未确认具体兼容版本,需自查),或等待 litellm 官方修复。
  3. 针对非流式解析错误:在本地补丁中为 Bedrock Invoke 的 transform_response 增加 OpenAI 分支,从 choices[0].message.content 提取文本,避免落入 Titan 解析逻辑。此步骤属于临时补丁,需自行维护。
  4. 针对流式空文本:在流式事件 _chunk_parser 中补充对 choices[].delta.content 的读取分支;否则即使请求成功返回,客户端也只会收到空 delta。
  5. 升级验证:Issue 关闭时未提供官方修复版本;建议在后续 litellm 版本发布后重新测试,确认是否已内置上述修复,再移除本地补丁。

验证方法

修复后,向同一模型别名发送 POST /v1/chat/completions/v1/messages 请求;非流式请求应返回正常 assistant 文本和 usage 信息,流式请求应返回逐步文本增量并带正常结束原因,且代理启动时不再出现 get_flat_dependant 导入错误。可分别用短文本和长文本各测一次,确认非流式和流式路径均正常。

参考来源

BerriAI/litellm #37132

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 18973

发表回复

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