将 CrewAI 连接到 LLM
CrewAI 使用 LiteLLM 连接到各种大型语言模型(LLM)。这种集成提供了广泛的多功能性,允许您使用来自众多提供商的模型,并通过一个简单统一的接口进行操作。
默认情况下,CrewAI 使用 `gpt-4o-mini` 模型。这由 `OPENAI_MODEL_NAME` 环境变量决定,如果未设置,则默认为“gpt-4o-mini”。您可以根据本指南所述,轻松配置您的代理以使用不同的模型或提供商。
支持的提供商
LiteLLM 支持广泛的提供商,包括但不限于
- OpenAI
- Anthropic
- Google (Vertex AI, Gemini)
- Azure OpenAI
- AWS (Bedrock, SageMaker)
- Cohere
- VoyageAI
- Hugging Face
- Ollama
- Mistral AI
- Replicate
- Together AI
- AI21
- Cloudflare Workers AI
- DeepInfra
- Groq
- SambaNova
- Nebius AI Studio
- NVIDIA NIMs
- 还有更多!
有关受支持提供商的完整和最新列表,请参阅 LiteLLM 提供商文档。
更改 LLM
要将不同的 LLM 与您的 CrewAI 代理一起使用,您有以下几个选项
在初始化代理时将模型名称作为字符串传递from crewai import Agent
# Using OpenAI's GPT-4
openai_agent = Agent(
role='OpenAI Expert',
goal='Provide insights using GPT-4',
backstory="An AI assistant powered by OpenAI's latest model.",
llm='gpt-4'
)
# Using Anthropic's Claude
claude_agent = Agent(
role='Anthropic Expert',
goal='Analyze data using Claude',
backstory="An AI assistant leveraging Anthropic's language model.",
llm='claude-2'
)
配置选项
为代理配置 LLM 时,您可以访问各种参数
| 参数 | 类型 | 描述 |
|---|
| 模型 | str | 要使用的模型名称(例如,“gpt-4”、“claude-2”) |
| 温度 | 浮点数 | 控制输出的随机性(0.0 到 1.0) |
| max_tokens | int | 要生成的最大令牌数 |
| top_p | 浮点数 | 控制输出的多样性(0.0 到 1.0) |
| frequency_penalty | 浮点数 | 根据新令牌在文本中出现的频率进行惩罚 |
| presence_penalty | 浮点数 | 根据新令牌在文本中出现的次数进行惩罚 |
| 停止 | str, List[str] | 停止生成序列 |
| base_url | str | API 端点的基本 URL |
| api_key | str | 用于身份验证的 API 密钥 |
有关参数及其描述的完整列表,请参阅 LLM 类文档。
连接到与 OpenAI 兼容的 LLM
您可以使用环境变量或在 LLM 类上设置特定属性来连接到与 OpenAI 兼容的 LLM
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"
使用 Ollama 的本地模型
对于像 Ollama 提供的本地模型
拉取所需模型
例如,运行 `ollama pull llama3.2` 下载模型。
配置您的代理
agent = Agent(
role='Local AI Expert',
goal='Process information using a local model',
backstory="An AI assistant running on local hardware.",
llm=LLM(model="ollama/llama3.2", base_url="https://:11434")
)
更改基本 API 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 提供了与大量 LLM 的无缝集成。这种灵活性允许您根据您的特定需求选择最合适的模型,无论是性能、成本效益还是本地部署。请记住查阅 LiteLLM 文档,以获取有关受支持模型和配置选项的最新信息。