跳转到内容

连接任意 LLM

CrewAI 通过原生 SDK 集成连接到最常见的提供商(OpenAI、Anthropic、Google Gemini、Azure 和 AWS Bedrock),并把 LiteLLM 作为所有其他提供商的灵活回退方案。

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 文档

要在 CrewAI 智能体中使用不同的 LLM,你有几种选择:

使用字符串标识符

在初始化智能体时,直接把模型名作为字符串传入:

Code
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 类

如果你需要更细致的配置,可以使用 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 时,你可以使用多种参数:

参数类型说明
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 key

如需完整参数列表及说明,请参阅 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 API
llm = 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 提供的本地模型:

  1. 下载并安装 Ollama

    点击这里下载并安装 Ollama

  2. 拉取所需模型

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

  3. 配置你的智能体
    Code
    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="http://localhost:11434")
    )

你可以通过设置 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 文档 以获取关于支持模型和配置选项的最新信息。