跳转至

连接任意自定义的LLM

将CrewAI连接到LLMs

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

默认LLM

默认情况下,CrewAI使用gpt-4o-mini模型。这是由OPENAI_MODEL_NAME环境变量确定的,如果未设置,默认为"gpt-4o-mini"。您可以轻松配置您的代理以使用不同的模型或提供商,具体方法如下所述。

支持的提供商

LiteLLM支持广泛的提供商,包括但不限于:

  • OpenAI
  • Anthropic
  • Google(Vertex AI, Gemini)
  • Azure OpenAI
  • AWS(Bedrock, SageMaker)
  • Cohere
  • Hugging Face
  • Ollama
  • Mistral AI
  • Replicate
  • Together AI
  • AI21
  • Cloudflare Workers AI
  • DeepInfra
  • Groq
  • 以及更多!

有关支持的提供商的完整和最新列表,请参考LiteLLM提供商文档

更改LLM

要使用不同的LLM与您的CrewAI代理,您有几个选项:

1. 使用字符串标识符

在初始化代理时,将模型名称作为字符串传递:

from crewai import Agent

# 使用OpenAI的GPT-4
openai_agent = Agent(
    role='OpenAI专家',
    goal='使用GPT-4提供见解',
    backstory="一个由OpenAI最新模型驱动的AI助手。",
    llm='gpt-4'
)

# 使用Anthropic的Claude
claude_agent = Agent(
    role='Anthropic专家',
    goal='使用Claude分析数据',
    backstory="一个利用Anthropic语言模型的AI助手。",
    llm='claude-2'
)

2. 使用LLM类

对于更详细的配置,使用LLM类:

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='定制LLM专家',
    goal='提供定制化响应',
    backstory="一个具有自定义LLM设置的AI助手。",
    llm=llm
)

配置选项

在为您的代理配置LLM时,您可以访问广泛的参数:

参数 类型 描述
model str 要使用的模型名称(例如,"gpt-4", "claude-2")
temperature float 控制输出随机性(0.0到1.0)
max_tokens int 生成最大令牌数
top_p float 控制输出多样性(0.0到1.0)
frequency_penalty float 根据新令牌在文本中的频率对其进行惩罚
presence_penalty float 根据新令牌在文本中的存在对其进行惩罚
stop str, List[str] 停止生成的序列
base_url str API端点的基URL
api_key str 用于身份验证的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"

使用LLM类属性

llm = LLM(
    model="custom-model-name",
    api_key="your-api-key",
    base_url="https://api.your-provider.com/v1"
)
agent = Agent(llm=llm, ...)

使用Ollama的本地模型

对于像Ollama提供的本地模型:

  1. 下载并安装Ollama
  2. 拉取所需的模型(例如,ollama pull llama2
  3. 配置您的代理:
agent = Agent(
    role='本地AI专家',
    goal='使用本地模型处理信息',
    backstory="一个在本地硬件上运行的AI助手。",
    llm=LLM(model="ollama/llama2", base_url="http://localhost:11434")
)

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