跳转到主要内容

将 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 代理一起使用,您有以下几个选项
  • 使用字符串标识符
  • 使用 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 时,您可以访问各种参数
参数类型描述
模型str要使用的模型名称(例如,“gpt-4”、“claude-2”)
温度浮点数控制输出的随机性(0.0 到 1.0)
max_tokensint要生成的最大令牌数
top_p浮点数控制输出的多样性(0.0 到 1.0)
frequency_penalty浮点数根据新令牌在文本中出现的频率进行惩罚
presence_penalty浮点数根据新令牌在文本中出现的次数进行惩罚
停止str, 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 文档,以获取有关受支持模型和配置选项的最新信息。