使用CrewAI调用Gemini 1.5 Flash遇LiteLLM提供商未指定错误
解决CrewAI + Gemini 1.5 Flash + LiteLLM 出现「LLM Provider NOT provided」错误的方案
问题核心原因
LiteLLM 调用 Gemini 模型时,需要显式指定服务商标识,仅填写模型名gemini-1.5-flash无法让LiteLLM自动识别为Google的模型,导致服务商参数缺失报错。
具体解决步骤
1. 修正模型名称格式
使用LiteLLM兼容的Gemini模型命名格式,在模型名前添加gemini/前缀,示例代码:
from crewai import Agent, Crew, Task from langchain_google_genai import ChatGoogleGenerativeAI from langchain_community.tools import SerperDevTool # 初始化带正确格式的LLM llm = ChatGoogleGenerativeAI( model="gemini/gemini-1.5-flash", google_api_key="你的Google API密钥" ) # 初始化Serper工具 search_tool = SerperDevTool(api_key="你的Serper API密钥") # 创建智能体 research_agent = Agent( role="研究员", goal="完成指定主题的网络调研", backstory="擅长通过网络检索整理信息的专业研究员", llm=llm, tools=[search_tool] ) # 定义任务与执行流程(示例) research_task = Task( description="调研Gemini 1.5 Flash的最新应用场景", agent=research_agent ) crew = Crew(agents=[research_agent], tasks=[research_task]) result = crew.kickoff()
2. 显式设置LiteLLM服务商环境变量
如果直接通过LiteLLM调用而非LangChain包装,可通过环境变量强制指定服务商:
import os os.environ["LLM_PROVIDER"] = "google" os.environ["GOOGLE_API_KEY"] = "你的Google API密钥"
3. 升级依赖版本
旧版本CrewAI或LiteLLM可能存在参数传递bug,升级到最新稳定版:
pip install --upgrade crewai litellm langchain-google-genai
4. 清理冲突环境变量
若系统中同时存在其他LLM的API密钥(如OpenAI的OPENAI_API_KEY),LiteLLM可能误识别服务商,暂时移除无关环境变量后重试。
内容的提问来源于stack exchange,提问作者Akrit Rihal
相关产品推荐
相关产品推荐

