连接任意自定义的LLM
将CrewAI连接到LLMs¶
CrewAI使用LiteLLM连接到多种语言模型(LLMs)。这种集成提供了广泛的灵活性,允许您通过简单、统一的界面使用来自众多提供商的模型。
默认LLM
默认情况下,CrewAI使用gpt-4o-mini模型。这是由OPENAI_MODEL_NAME环境变量确定的,如果未设置,默认为"gpt-4o-mini"。您可以轻松配置您的代理以使用不同的模型或提供商,具体方法如下所述。
支持的提供商¶
LiteLLM支持广泛的提供商,包括但不限于:
- OpenAI
- Anthropic
- Google(Vertex AI, Gemini)
- Azure OpenAI
- AWS(Bedrock, SageMaker)
- Cohere
- Hugging Face
- Ollama
- Mistral AI
- Replicate
- Together AI
- AI21
- Cloudflare Workers AI
- DeepInfra
- Groq
- 以及更多!
有关支持的提供商的完整和最新列表,请参考LiteLLM提供商文档。
更改LLM¶
要使用不同的LLM与您的CrewAI代理,您有几个选项:
1. 使用字符串标识符¶
在初始化代理时,将模型名称作为字符串传递:
from crewai import Agent
# 使用OpenAI的GPT-4
openai_agent = Agent(
role='OpenAI专家',
goal='使用GPT-4提供见解',
backstory="一个由OpenAI最新模型驱动的AI助手。",
llm='gpt-4'
)
# 使用Anthropic的Claude
claude_agent = Agent(
role='Anthropic专家',
goal='使用Claude分析数据',
backstory="一个利用Anthropic语言模型的AI助手。",
llm='claude-2'
)
2. 使用LLM类¶
对于更详细的配置,使用LLM类:
from crewai import Agent, LLM
llm = LLM(
model="gpt-4",
temperature=0.7,
base_url="https://api.openai.com/v1",
api_key="your-api-key-here"
)
agent = Agent(
role='定制LLM专家',
goal='提供定制化响应',
backstory="一个具有自定义LLM设置的AI助手。",
llm=llm
)
配置选项¶
在为您的代理配置LLM时,您可以访问广泛的参数:
| 参数 | 类型 | 描述 |
|---|---|---|
model |
str | 要使用的模型名称(例如,"gpt-4", "claude-2") |
temperature |
float | 控制输出随机性(0.0到1.0) |
max_tokens |
int | 生成最大令牌数 |
top_p |
float | 控制输出多样性(0.0到1.0) |
frequency_penalty |
float | 根据新令牌在文本中的频率对其进行惩罚 |
presence_penalty |
float | 根据新令牌在文本中的存在对其进行惩罚 |
stop |
str, List[str] | 停止生成的序列 |
base_url |
str | API端点的基URL |
api_key |
str | 用于身份验证的API密钥 |
有关参数的完整列表及其描述,请参考LLM类文档。
连接到OpenAI兼容的LLMs¶
您可以使用环境变量或通过在LLM类上设置特定属性来连接到OpenAI兼容的LLMs:
使用环境变量¶
import os
os.environ["OPENAI_API_KEY"] = "your-api-key"
os.environ["OPENAI_API_BASE"] = "https://api.your-provider.com/v1"
os.environ["OPENAI_MODEL_NAME"] = "your-model-name"
使用LLM类属性¶
llm = LLM(
model="custom-model-name",
api_key="your-api-key",
base_url="https://api.your-provider.com/v1"
)
agent = Agent(llm=llm, ...)
使用Ollama的本地模型¶
对于像Ollama提供的本地模型:
- 下载并安装Ollama
- 拉取所需的模型(例如,
ollama pull llama2) - 配置您的代理:
agent = Agent(
role='本地AI专家',
goal='使用本地模型处理信息',
backstory="一个在本地硬件上运行的AI助手。",
llm=LLM(model="ollama/llama2", base_url="http://localhost:11434")
)
更改 base_url¶
您可以通过设置base_url参数来更改任何LLM提供商的基API URL:
llm = LLM(
model="custom-model-name",
base_url="https://api.your-provider.com/v1",
api_key="your-api-key"
)
agent = Agent(llm=llm, ...)
这在处理OpenAI兼容的API或当您需要为所选提供商指定不同端点时特别有用。
结论¶
通过利用LiteLLM,CrewAI提供了与众多LLMs的无缝集成。这种灵活性允许您根据具体需求选择最合适的模型,无论是优先考虑性能、成本效益还是本地部署。请记得参考LiteLLM文档以获取有关支持模型和配置选项的最新信息。