跳转到主要内容

将 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

要为您的 CrewAI 智能体使用不同的 LLM,您有以下几种选择
  • 使用字符串标识符
  • 使用 LLM 类
在初始化智能体时将模型名称作为字符串传递
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 时,您可以使用各种参数
参数类型描述
modelstr要使用的模型名称(例如,“gpt-4”、“claude-2”)
temperature浮点数控制输出的随机性(0.0 到 1.0)
max_tokensint要生成的最大令牌数
top_p浮点数控制输出的多样性(0.0 到 1.0)
frequency_penalty浮点数根据新令牌在文本中至今的频率对其进行惩罚
presence_penalty浮点数根据新令牌在文本中至今的存在情况对其进行惩罚
stopstr, List[str]停止生成的序列
base_urlstrAPI 端点的基础 URL
api_keystr用于身份验证的 API 密钥
有关参数及其描述的完整列表,请参阅 LLM 类文档。

连接到与 OpenAI 兼容的 LLM

您可以使用环境变量或通过在 LLM 类上设置特定属性来连接到与 OpenAI 兼容的 LLM
  • 使用环境变量
  • 使用 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 提供的本地模型
1
2

拉取所需的模型

例如,运行 ollama pull llama3.2 来下载模型。
3

配置您的智能体

    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 文档,以获取有关受支持模型和配置选项的最新信息。