连接任意 LLM
将 CrewAI 连接到 LLM
Section titled “将 CrewAI 连接到 LLM”CrewAI 通过原生 SDK 集成连接到最常见的提供商(OpenAI、Anthropic、Google Gemini、Azure 和 AWS Bedrock),并把 LiteLLM 作为所有其他提供商的灵活回退方案。
支持的提供商
Section titled “支持的提供商”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 Providers 文档。
更换 LLM
Section titled “更换 LLM”要在 CrewAI 智能体中使用不同的 LLM,你有几种选择:
使用字符串标识符
在初始化智能体时,直接把模型名作为字符串传入:
Code
from crewai import Agent
# Using OpenAI's GPT-4openai_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 Claudeclaude_agent = Agent( role='Anthropic Expert', goal='Analyze data using Claude', backstory="An AI assistant leveraging Anthropic's language model.", llm='claude-2') 使用 LLM 类
如果你需要更细致的配置,可以使用 LLM 类:
Code
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='Customized LLM Expert', goal='Provide tailored responses', backstory="An AI assistant with custom LLM settings.", llm=llm)为智能体配置 LLM 时,你可以使用多种参数:
| 参数 | 类型 | 说明 |
|---|---|---|
| model | str | 使用的模型名称(例如 "gpt-4"、"claude-2") |
| temperature | float | 控制输出随机性(0.0 到 1.0) |
| max_tokens | int | 生成的最大 token 数 |
| top_p | float | 控制输出多样性(0.0 到 1.0) |
| frequency_penalty | float | 根据文本中已出现频率惩罚新 token |
| presence_penalty | float | 根据文本中是否已出现惩罚新 token |
| stop | str, List[str] | 用于停止生成的序列 |
| base_url | str | API 端点的基础 URL |
| api_key | str | 用于认证的 API key |
如需完整参数列表及说明,请参阅 LLM 类文档。
连接 OpenAI 兼容 LLM
Section titled “连接 OpenAI 兼容 LLM”你可以通过环境变量,或者在 LLM 类上设置特定属性,连接到 OpenAI 兼容的 LLM:
使用环境变量
Code
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"import os
# Example using Gemini's OpenAI-compatible API.os.environ["OPENAI_API_KEY"] = "your-gemini-key" # Should start with AIza...os.environ["OPENAI_API_BASE"] = "https://generativelanguage.googleapis.com/v1beta/openai/"os.environ["OPENAI_MODEL_NAME"] = "openai/gemini-2.0-flash" # Add your Gemini model here, under openai/ 使用 LLM 类属性
Code
llm = LLM( model="custom-model-name", api_key="your-api-key", base_url="https://api.your-provider.com/v1")agent = Agent(llm=llm, ...)# Example using Gemini's OpenAI-compatible APIllm = LLM( model="openai/gemini-2.0-flash", base_url="https://generativelanguage.googleapis.com/v1beta/openai/", api_key="your-gemini-key", # Should start with AIza...)agent = Agent(llm=llm, ...)使用 Ollama 本地模型
Section titled “使用 Ollama 本地模型”对于 Ollama 提供的本地模型:
- 下载并安装 Ollama
- 拉取所需模型
例如,运行
ollama pull llama3.2下载模型。 - 配置你的智能体Codeagent = 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="http://localhost:11434"))
更改基础 API URL
Section titled “更改基础 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 文档 以获取关于支持模型和配置选项的最新信息。