ImportError: … and the LiteLLM fallback package is not installed`

该报错通常发生在 crewAI 1.15.31/1.15.32 中,使用未被原生 provider 支持的模型、需要进入 LiteLLM 回退路径,同时安装的 litellm 低于 1.97.0。此时 litellm 实际已安装,但版本检查中的导入失败被误判为“未安装”,优先排查 crewAI 与

快速结论:该报错通常发生在 crewAI 1.15.31/1.15.32 中,使用未被原生 provider 支持的模型、需要进入 LiteLLM 回退路径,同时安装的 litellm 低于 1.97.0。此时 litellm 实际已安装,但版本检查中的导入失败被误判为“未安装”,优先排查 crewAI 与 litellm 的版本组合。

适用环境:Issue 中确认的环境为 Python 3.12、Ubuntu 25.10、Venv;crewAI 1.15.31 与 1.15.32 均可复现,litellm 1.95.0 与 1.96.0 触发,1.97.0 正常。CrewAI Tools 未安装,未提供 CUDA、显卡等信息。

最快修复方案:升级 crewAI 到包含 #8777 的版本(Issue 未给出具体版本号,需以发布记录为准);若暂不能升级 crewAI,可将 litellm 升级到 1.97.0 或更高版本。

注意事项:把 litellm 升到 1.97.0 以上只是规避该错误的临时办法,并未修复 crewAI 内部的导入逻辑。Issue 提到 1.95.0 之后的 litellm 需要 aiohttp 3.14.2 或更高版本,若项目对 aiohttp 有上限约束,升级 litellm 可能被依赖冲突阻止。修复后错误信息仍不会说明 litellm 导入失败的具体原因,这一点 Issue 中仅作为建议提出,未被实现。

问题场景

在 crewAI 1.15.31 或 1.15.32 中通过 LLM(...) 构造模型,并使用一个不属于原生 provider 列表的模型名(例如 openai/qwen-turbo),从而需要走 LiteLLM 回退路径。此时若已安装的 litellm 版本低于 1.97.0,就会抛出 ImportError,即使 litellm 确实已经安装。

报错原文

ImportError: Unable to initialize LLM with model 'openai/qwen-turbo'. The model did not match any supported native provider (openai, anthropic, claude, azure, azure_openai, google, gemini, bedrock, aws, openrouter, deepseek, ollama, ollama_chat, hosted_vllm, cerebras, dashscope, snowflake, deepinfra), and the LiteLLM fallback package is not installed.

原因分析

可能原因:自 crewAI 1.15.31 起(由 #8676 引入),_ensure_litellm()(位于 lib/crewai/src/crewai/llm.py)会在运行时从 litellm.types.utils 导入 ChatCompletionDeltaCustomToolCall。该类在 litellm 1.97.0 中才加入,旧版本导入时会抛出 ImportError,而 _ensure_litellm() 把这一导入失败当作 litellm 缺失来处理,于是给出误导性的“未安装”提示。

另一个线索是:该名称在 _ahandle_streaming_response 中只用于局部变量注解,Python 在运行时并不会求值,因此这个运行时导入本身并不需要。

环境排查

  • 确认 crewAI 版本:1.15.30 正常,1.15.31/1.15.32 在旧 litellm 下报错。
  • 确认 litellm 版本:1.95.0、1.96.0 触发;1.97.0 正常。
  • 确认 Python 版本(Issue 为 3.12)以及是否处于独立 Venv 中。
  • 确认模型名是否会被原生 provider 匹配;只有需要 LiteLLM 回退路径时才会进入 _ensure_litellm()。
  • 若需要升级 litellm,检查项目是否对 aiohttp 有低于 3.14.2 的版本约束。

解决步骤

  1. 先记录当前 crewAI 与 litellm 版本,对照上表判断是否落在 1.15.31/1.15.32 与 litellm < 1.97.0 的受影响的组合内。
  2. 首选方案:升级 crewAI 到已包含 #8777 修复的版本(Issue 关闭说明为 “Fixed by #8777”,未给出具体版本号,请以发布记录确认)。
  3. 若暂时无法升级 crewAI,可优先尝试把 litellm 升级到 1.97.0 或更高版本,以绕过缺失类的导入失败。升级前确认 aiohttp 等依赖约束不会阻止该升级。
  4. 如依赖约束导致不能升级 litellm 且不能升级 crewAI,则暂无 Issue 中验证过的其他修复方式,可等待包含 #8777 的 crewAI 版本。

验证方法

在离线条件下运行 Issue 中的复现脚本(设置 LITELLM_LOCAL_MODEL_COST_MAP=True,无需网络请求):

from crewai import LLM

llm = LLM(model="openai/qwen-turbo")
print(type(llm).__name__, "is_litellm =", llm.is_litellm)

若不再抛出 ImportError,并输出 LLM is_litellm = True,说明 LiteLLM 回退已正常加载,问题解决。

参考来源

crewAIInc/crewAI #8723

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 31415

发表回复

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