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

CrewAI中PDFSearchTool适配ChatGroq解决OPENAI_API_KEY报错

解决CrewAI中PDFSearchTool触发OPENAI_API_KEY缺失的KeyError问题

问题背景

已在tools.py和agents.py中配置ChatGroq作为LLM,但执行python crew.py时触发KeyError: 'OPENAI_API_KEY',原因是PDFSearchTool默认依赖OpenAI的嵌入模型,未适配ChatGroq环境。

报错根因

从报错栈可知,PDFSearchTool内部依赖的embedchain库默认初始化OpenAIEmbedder,该类强制读取OPENAI_API_KEY环境变量,而用户未配置此变量,因此抛出KeyError。

修复步骤

初始化PDFSearchTool时,通过config参数明确指定LLM提供商为Groq,并配置对应的嵌入模型(可选用Groq支持的模型,或替换为Ollama、Google等其他兼容提供商)。

修改后的tools.py关键代码如下:

import os 
from dotenv import load_dotenv
from langchain_groq import ChatGroq
from crewai_tools import PDFSearchTool, SerperDevTool

load_dotenv()

# Initialize the ChatGroq model
llm = ChatGroq(
    model="llama-3.1-70b-versatile",
    temperature=0.7,
    groq_api_key=os.getenv('GROQ_API_KEY'),
    verbose=True
)

os.environ['SERPER_API_KEY'] = os.getenv('SERPER_API_KEY')

# 初始化PDFSearchTool时配置Groq作为LLM和嵌入模型提供商
pdf_tool = PDFSearchTool(
    config=dict(
        llm=dict(
            provider="groq",
            config=dict(
                model="llama-3.1-70b-versatile",
                temperature=0.7,
                api_key=os.getenv('GROQ_API_KEY')
            ),
        ),
        embedder=dict(
            # 可选:使用Groq的嵌入模型,或替换为其他支持的提供商如ollama/google
            provider="groq",
            config=dict(
                model="llama-3.1-70b-versatile",
                api_key=os.getenv('GROQ_API_KEY')
            ),
        ),
    )
)

serper_tool = SerperDevTool()

额外优化提示

agents.py中重复配置的ChatGroq实例可改为从tools.py导入,避免代码冗余:

# agents.py中替换原有llm配置
from tools import llm

内容的提问来源于stack exchange,提问作者Priyanshu Khare

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 09:21:16