You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

LangChain调用NVIDIA模型正常,CrewAI集成时提示无效API密钥的解决方法

问题解决方案

问题原因

单独用LangChain调用NVIDIA Llama3-70B模型正常,但集成到CrewAI时出现401无效API密钥错误,核心原因是CrewAI中的各个Agent默认使用OpenAI官方模型,未指定使用你定义的NVIDIA Llama3实例,导致Agent仍向OpenAI API发送请求,而你的NVIDIA API密钥在OpenAI平台自然无效。

具体解决步骤

1. 修改Agent定义,强制绑定自定义LLM

在AiBlogCreationAgent类中,每个Agent创建方法需要接收LLM参数,并将其绑定到Agent实例的llm属性上。示例修改如下:

# agents.py 中的代码调整
from crewai import Agent

class AiBlogCreationAgent:
    def editor_agent(self, llm):
        return Agent(
            role="内容编辑",
            goal="确保最终博客逻辑通顺、符合发布规范",
            backstory="拥有5年科技内容编辑经验,擅长优化专业博客结构",
            llm=llm,  # 关键:绑定自定义LLM实例
            verbose=True
        )
    
    # 对其他Agent方法做同样修改
    def blog_fetch_agent(self, llm):
        return Agent(
            role="博客内容抓取员",
            goal="精准获取指定主题的参考博客内容",
            backstory="熟悉网页信息提取技术,擅长筛选高质量参考资料",
            llm=llm,
            verbose=True
        )
    
    # blog_analyzer_agent、blog_complier_agent 方法同理调整

2. 在主代码中传递LLM给所有Agent

创建Agent实例时,将你定义的NVIDIA Llama3实例传入每个Agent:

# 主代码中的调整
llm = ChatOpenAI(
    model = "meta/llama3-70b-instruct",
    base_url = "https://integrate.api.nvidia.com/v1",
    openai_api_key=os.environ['OPENAI_API_KEY'],  # 显式传入密钥,避免依赖默认读取逻辑
    streaming=True
)

# 传递llm给每个Agent实例
editor=agents.editor_agent(llm)
blog_fetcher=agents.blog_fetch_agent(llm)
blog_analyzer=agents.blog_analyzer_agent(llm)
blog_complier=agents.blog_compiler_agent(llm)

3. 额外验证项

  • 确认.env文件中的OPENAI_API_KEY确实是你的NVIDIA API密钥,没有混入OpenAI官方密钥。
  • 检查CrewAI版本,确保使用的版本支持自定义LLM传递给Agent(较新版本的CrewAI均支持此功能)。

关键说明

你之前仅将自定义LLM传给了Crew的manager_llm参数,但CrewAI中执行具体任务的每个Agent都需要单独指定LLM,否则会默认使用OpenAI的gpt-3.5-turbo模型,从而触发密钥不匹配的错误。

内容的提问来源于stack exchange,提问作者Chirag jha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 20:43:13