Visão Geral
O CrewAI oferece suporte a implementações personalizadas de LLM por meio da classe abstrataBaseLLM. Isso permite integrar qualquer provedor de LLM que não tenha suporte nativo no LiteLLM ou implementar mecanismos de autenticação personalizados.
Início Rápido
Aqui está uma implementação mínima de LLM personalizada:Usando Seu LLM Personalizado
Métodos Necessários
Construtor: __init__()
Crítico: Você deve chamar super().__init__(model, temperature) com os parâmetros necessários:
Método Abstrato: call()
O método call() é o núcleo da sua implementação de LLM. Ele deve:
- Aceitar mensagens (string ou lista de dicionários com ‘role’ e ‘content’)
- Retornar uma resposta como string
- Lidar com ferramentas e chamada de funções, se suportado
- Lançar exceções apropriadas para erros
Métodos Opcionais
Padrões Comuns
Tratamento de Erros
Autenticação Personalizada
Suporte a Stop Words
O CrewAI adiciona automaticamente"\nObservation:" como stop word para controlar o comportamento do agente. Se o seu LLM suporta stop words:
Chamada de Funções
Se o seu LLM suporta chamada de funções, implemente o fluxo completo:Solução de Problemas
Problemas Comuns
Erros no Construtor- Certifique-se de que
supports_function_calling()retornaTrue - Verifique se você lida com
tool_callsna resposta - Assegure-se de que o parâmetro
available_functionsestá sendo corretamente utilizado
- Verifique o formato e as permissões da chave de API
- Confira o formato do header de autenticação
- Certifique-se de que as URLs dos endpoints estão corretas
- Valide a estrutura da resposta antes de acessar campos aninhados
- Trate casos em que o content pode ser None
- Adicione tratamento de erros para respostas malformadas
