Conecte o CrewAI a LLMs

O CrewAI utiliza o LiteLLM para conectar-se a uma grande variedade de Modelos de Linguagem (LLMs). Essa integração proporciona grande versatilidade, permitindo que você utilize modelos de inúmeros provedores por meio de uma interface simples e unificada.

Por padrão, o CrewAI usa o modelo gpt-4o-mini. Isso é determinado pela variável de ambiente OPENAI_MODEL_NAME, que tem como padrão “gpt-4o-mini” se não for definida. Você pode facilmente configurar seus agentes para usar um modelo ou provedor diferente, conforme descrito neste guia.

Provedores Compatíveis

O LiteLLM oferece suporte a uma ampla gama de provedores, incluindo, mas não se limitando a:

  • 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
  • E muitos outros!

Para uma lista completa e sempre atualizada dos provedores suportados, consulte a documentação de Provedores do LiteLLM.

Alterando a LLM

Para utilizar uma LLM diferente com seus agentes CrewAI, você tem várias opções:

Passe o nome do modelo como uma string ao inicializar o agente:

from crewai import Agent

# Usando o GPT-4 da OpenAI
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'
)

# Usando o Claude da Anthropic
claude_agent = Agent(
    role='Anthropic Expert',
    goal='Analyze data using Claude',
    backstory="An AI assistant leveraging Anthropic's language model.",
    llm='claude-2'
)

Opções de Configuração

Ao configurar uma LLM para o seu agente, você tem acesso a uma variedade de parâmetros:

ParâmetroTipoDescrição
modelstrO nome do modelo a ser utilizado (ex.: “gpt-4”, “claude-2”)
temperaturefloatControla o grau de aleatoriedade nas respostas (0.0 a 1.0)
max_tokensintNúmero máximo de tokens a serem gerados
top_pfloatControla a diversidade das respostas (0.0 a 1.0)
frequency_penaltyfloatPenaliza novos tokens com base na frequência em que já apareceram no texto
presence_penaltyfloatPenaliza novos tokens com base na presença deles no texto até o momento
stopstr, List[str]Sequência(s) que interrompem a geração do texto
base_urlstrURL base do endpoint da API
api_keystrSua chave de API para autenticação

Para uma lista completa de parâmetros e suas respectivas descrições, consulte a documentação da classe LLM.

Conectando-se a LLMs Compatíveis com OpenAI

Você pode se conectar a LLMs compatíveis com a OpenAI usando variáveis de ambiente ou definindo atributos específicos na classe 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"

Utilizando Modelos Locais com Ollama

Para modelos locais como os oferecidos pelo Ollama:

2

Puxe o modelo desejado

Por exemplo, execute ollama pull llama3.2 para baixar o modelo.

3

Configure seu agente

    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")
    )

Alterando a URL Base da API

Você pode alterar a URL base da API para qualquer provedor de LLM definindo o parâmetro base_url:

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

Isso é particularmente útil ao trabalhar com APIs compatíveis com a OpenAI ou quando você precisa especificar um endpoint diferente para o provedor escolhido.

Conclusão

Ao utilizar o LiteLLM, o CrewAI oferece integração transparente com uma vasta gama de LLMs. Essa flexibilidade permite que você escolha o modelo mais adequado para sua necessidade específica, seja priorizando desempenho, custo-benefício ou implantação local. Lembre-se de consultar a documentação do LiteLLM para obter as informações mais atualizadas sobre modelos suportados e opções de configuração.