将 CrewAI 连接到 LLMs

CrewAI 使用 LiteLLM 连接到各种大型语言模型 (LLMs)。这种集成提供了广泛的多功能性,允许您通过一个简单统一的界面使用来自众多提供商的模型。

默认情况下,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
  • 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 时,您可以访问广泛的参数

参数类型描述
modelstr要使用的模型名称(例如,“gpt-4”,“claude-2”)
temperaturefloat控制输出的随机性(0.0 到 1.0)
max_tokensint要生成的最大 token 数
top_pfloat控制输出的多样性(0.0 到 1.0)
frequency_penaltyfloat根据新 token 在文本中目前的频率对其进行惩罚
presence_penaltyfloat根据新 token 在文本中目前的存在情况对其进行惩罚
stopstr, List[str]停止生成的序列
base_urlstrAPI 端点的基本 URL
api_keystr用于身份验证的 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"

将本地模型与 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 提供了与大量 LLMs 的无缝集成。这种灵活性使您可以根据您的特定需求选择最合适的模型,无论您是优先考虑性能、成本效益还是本地部署。请记住查阅LiteLLM 文档,以获取有关支持模型和配置选项的最新信息。