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

使用PDFSearchTool调用Groq API时遇cannot pickle 'classmethod'对象错误

解决PDFSearchTool搭配Groq API时的TypeError问题

我尝试用PDFSearchTool结合Groq API创建可检索PDF信息的智能体,已配置好GROQ_API_KEY环境变量,但执行代码时出现TypeError: cannot pickle 'classmethod' object错误,怀疑是库版本不兼容导致。

运行的代码如下:

from crewai_tools import PDFSearchTool

rag_tool = PDFSearchTool(pdf='/content/17.pdf',
    config=dict(
        llm=dict(
            provider="groq", # or google, openai, anthropic, llama2, ...
            config=dict(
                model="llama3-8b-8192",
                # temperature=0.5,
                # top_p=1,
                # stream=true,
            ),
        ),
        embedder=dict(
            provider="huggingface", # or openai, ollama, ...
            config=dict(
                model="BAAI/bge-small-en-v1.5",
                #task_type="retrieval_document",
                # title="Embeddings",
            ),
        ),
    )
)

报错信息:

TypeError: cannot pickle 'classmethod' object

解决方案

  • 锁定兼容的库版本:该错误多因crewai-tools与langchain-groq版本不匹配导致,建议安装指定兼容版本:
    pip install crewai-tools==0.1.19 langchain-groq==0.1.3
    
  • 简化配置方式:避免通过嵌套字典传递配置,直接初始化LLM和嵌入器实例后传入PDFSearchTool:
    from crewai_tools import PDFSearchTool
    from langchain_groq import ChatGroq
    from langchain.embeddings import HuggingFaceEmbeddings
    
    # 初始化Groq LLM
    llm = ChatGroq(model="llama3-8b-8192")
    # 初始化HuggingFace嵌入器
    embedder = HuggingFaceEmbeddings(model_name="BAAI/bge-small-en-v1.5")
    
    # 创建PDF检索工具
    rag_tool = PDFSearchTool(
        pdf='/content/17.pdf',
        llm=llm,
        embedder=embedder
    )
    
  • 统一依赖版本:确保langchain、langchain-core、langchain-groq等相关库保持同一主版本,避免跨版本兼容性问题。

内容的提问来源于stack exchange,提问作者Nikki Sixx

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 16:40:55