Provedores
O LabsLLM permite que você alterne facilmente entre diferentes provedores de LLM sem ter que reescrever seu código, seguindo a filosofia escreva uma vez, execute em qualquer lugar.
Provedores Suportados
Atualmente, o LabsLLM suporta os seguintes provedores:
Recurso | OpenAI | Anthropic | |
---|---|---|---|
Prompts de Texto | ✅ | ✅ | 📅 |
Instruções de Sistema | ✅ | ✅ | 📅 |
Chat | ✅ | ✅ | 📅 |
Ferramentas/Funções | ✅ | ✅ | ❌ |
Saída Estruturada | ✅ | ✅ | ❌ |
Streaming | ✅ | ✅ | ❌ |
Embeddings | 📅 | ❌ | ❌ |
Voz | 📅 | ❌ | ❌ |
Geração de Imagens | 📅 | ❌ | 📅 |
Configurando um Provedor
Cada provedor requer uma configuração específica, mas a interface é consistente. Você só precisa especificar qual provedor deseja usar ao criar sua instância.
OpenAI
// Usando OpenAI
$execute = LabsLLM::text()
->using(new OpenAI('sua-chave-api', 'gpt-4o'))
->executePrompt('Olá mundo');
Google
// Usando Google
$execute = LabsLLM::text()
->using(new Google('sua-chave-api', 'gemini-pro'))
->executePrompt('Olá mundo');
Anthropic (Planejado)
// Usando Anthropic (desenvolvimento futuro)
$execute = LabsLLM::text()
->using(new Anthropic('sua-chave-api', 'claude-3-opus'))
->executePrompt('Olá mundo');
Alternando Entre Provedores
A beleza do LabsLLM é que você pode alternar facilmente entre provedores sem alterar nenhum outro código em sua aplicação. Isso significa que você pode:
- Desenvolver com um provedor e implantar com outro
- Conduzir testes A/B entre diferentes provedores
- Construir redundância em sua aplicação em caso de indisponibilidade do provedor
Exemplo Prático
Este código funciona com qualquer provedor suportado, permitindo que você alterne facilmente:
// Inicialmente usando OpenAI
$provider = new OpenAI('sua-chave-api', 'gpt-4o');
// Para mudar para o Google, basta substituir a linha acima por:
// $provider = new Google('sua-chave-api', 'gemini-pro');
// O resto do código permanece idêntico
$execute = LabsLLM::text()
->using($provider)
->executePrompt('Qual é a capital do Brasil?');
$response = $execute->getResponseData();
echo $response->response; // "A capital do Brasil é Brasília."
Configurações Específicas do Provedor
Cada provedor pode ter suas próprias configurações específicas, como modelos disponíveis, parâmetros de solicitação, etc.
Modelos Disponíveis por Provedor
Provedor | Modelos Populares |
---|---|
OpenAI | gpt-4o, gpt-4-turbo, gpt-3.5-turbo |
gemini-pro, gemini-ultra | |
Anthropic | claude-3-opus, claude-3-sonnet, claude-3-haiku |
Configuração de Modelo e Parâmetros
// Usando OpenAI com modelo específico e temperatura
$execute = LabsLLM::text()
->using(new OpenAI('sua-chave-api', 'gpt-4o'))
->withTemperature(0.7) // Ajusta a criatividade do modelo
->executePrompt('Conte-me uma história');
// Usando Google com configurações diferentes
$execute = LabsLLM::text()
->using(new Google('sua-chave-api', 'gemini-pro'))
->withTopP(0.9) // Controla a diversidade da resposta
->executePrompt('Conte-me uma história');
Injeção de Dependência
Em aplicações reais, considere usar injeção de dependência para facilitar a alternância de provedores:
class AIService
{
private $llm;
public function __construct(ProviderInterface $provider)
{
$this->llm = LabsLLM::text()->using($provider);
}
public function ask($question)
{
$execute = $this->llm->executePrompt($question);
return $execute->getResponseData()->response;
}
}
// Em seu arquivo de configuração ou provedor de serviço
$service = new AIService(new OpenAI('sua-chave-api', 'gpt-4o'));
// Para mudar para outro provedor, basta alterar esta linha
// $service = new AIService(new Google('sua-chave-api', 'gemini-pro'));
Recomendações
- Comece com OpenAI: A implementação do OpenAI é a mais completa e testada.
- Centralize a Configuração: Mantenha a configuração do seu provedor em um local centralizado para facilitar a alternância.
- Teste com Múltiplos Provedores: Se possível, teste sua aplicação com diferentes provedores para garantir compatibilidade.
Próximos Passos
Agora que você entende como configurar e alternar entre provedores, você pode explorar os diferentes recursos do LabsLLM, como Prompts, Chat e Ferramentas.