使用CrewAI构建AI代理系统时遭遇litellm.BadRequestError错误,寻求解决方案
CrewAI构建AI代理系统时遭遇litellm.BadRequestError错误,寻求解决方案
兄弟,你碰到的这个错误根源很明确:litellm在处理Ollama模型的时候,拿到的是一个Ollama对象,但它实际需要的是字符串格式的模型名称,所以调用split()方法时直接炸了。我给你捋几个排查解决的步骤,应该能搞定:
先检查你的Agent配置(agents.py文件)
问题十有八九出在你定义researcher代理的LLM设置里。你大概率是直接把Ollama实例传给了CrewAI的Agent,而不是通过litellm正确指定模型。
比如你可能这么写了(错误示范):
from langchain_community.llms import Ollama from crewai import Agent class TextGenerationAgents: def researcher(self): ollama_llm = Ollama(model="llama2") return Agent( role='Researcher', goal='你的研究目标描述', backstory='你的代理背景故事', llm=ollama_llm # 这里直接传Ollama对象就是问题所在 )
你得改成用litellm来正确指定Ollama模型,两种写法都可以:
import litellm from crewai import Agent class TextGenerationAgents: def researcher(self): # 写法一:用litellm的格式指定Ollama模型 llm = "ollama/llama2" # 格式是"ollama/你的模型名" # 写法二:如果需要自定义Ollama的参数,用litellm.completion包装 # llm = litellm.completion( # model="ollama/llama2", # temperature=0.7, # max_tokens=1000 # ) return Agent( role='Researcher', goal='深入研究指定主题,输出结构化的研究结果', backstory='你是一名经验丰富的行业研究员,擅长挖掘主题背后的关键信息', llm=llm )
然后确认版本兼容性
有时候新旧版本不兼容也会搞出这种奇怪的问题,建议你把相关依赖都更到最新稳定版:
pip install --upgrade litellm crewai ollama
再验证Ollama服务本身没问题
别光顾着代码,先确认本地Ollama服务是正常跑的,模型也拉下来了:
- 打开终端输
ollama serve,确保服务在运行(如果没后台启动的话) - 输
ollama run llama2测试下,能正常对话就说明服务和模型都没问题
最后检查Crew的初始化参数
回到你的crew.py,确认Crew的初始化没别的问题。比如你设的verbose=True是对的,任务定义里也别给Agent传错参数。
要是按上面的步骤改完还不行,你把agents.py里researcher方法的完整代码贴出来,我再帮你细揪。但按经验来看,调整LLM的配置这一步应该就能解决那个'Ollama' object has no attribute 'split'的破问题了。
备注:内容来源于stack exchange,提问作者Usama Amjad
相关产品推荐
相关产品推荐

