Até o final de 2025, gerenciávamos tudo relacionado a chat diretamente através do OpenAI. Uma conta, uma chave, uma fatura. Em janeiro de 2026, migramos para um agregador multi-modelo. Aqui está o que realmente aconteceu.
O que tínhamos
- Nível empresarial do OpenAI — $~$8k/mês em todas as superfícies
- Todas as conclusões de chat em
gpt-4oougpt-4o-mini - Um modelo de incorporação, um modelo de imagem (DALL-E 3)
- Integração direta do SDK em quatro serviços
O que motivou a mudança
- Claude Opus 4.6 estava obtendo pontuações visivelmente melhores em nossas avaliações de codificação agentic
- Gemini 3 Pro tornou-se o vencedor claro para análise de documentos de longo contexto
- Queríamos testar modelos de código aberto (DeepSeek, Llama 4) sem configurar infraestrutura de inferência
- Operar com cinco provedores significava cinco contratos, cinco ciclos de faturamento, cinco painéis de limite de taxa
A migração
Mudamos para um agregador compatível com OpenAI (este aqui, na verdade — usamos nosso próprio produto em produção). A mudança inteira foi substituir baseURL e apiKey no SDK. A diferença no código foi de 8 linhas nos quatro serviços.
// Antes
const openai = new OpenAI({ apiKey: process.env.OPENAI_KEY });
// Depois
const openai = new OpenAI({
apiKey: process.env.AIGEN_KEY,
baseURL: 'https://aimarcus.eu/aigenerate/api/v1',
});
O que mudou na conta
- Chat (GPT-4o → misto GPT-4o + Claude Sonnet baseado na tarefa): -22%
- Codificação agentic (mudou para Claude Opus): +8%, mas as avaliações melhoraram 15 pontos
- Análise de longo contexto (mudou para Gemini 3 Pro): -40%
- Geração de imagem (mudou de DALL-E 3 para Nano Banana): -65%
Efeito líquido na conta mensal: -28%. Melhor escolha de modelo em cada superfície + taxas por token mais baixas de agregadores upstream que não precisamos negociar diretamente.
Três coisas que deram errado
- Diferenças no formato de streaming SSE. Claude transmite de forma ligeiramente diferente do OpenAI. Nossa lógica de buffer do lado do cliente quebrou por cerca de 10 minutos até adicionarmos um shim de compatibilidade.
- Contagem de tokens. Diferentes modelos tokenizam de maneira diferente. Nossa métrica interna de "tokens usados por conversa" precisou ser recalibrada por modelo.
- Cache com chave no nome do modelo. Nosso cache de prompt usava
gpt-4ocomo chave. Quando começamos a direcionar algumas solicitações para Claude, tivemos acertos de cache obsoletos. Lição: sempre inclua o modelo nas chaves de cache.
Fazeríamos isso de novo?
Sim — por três razões não relacionadas ao custo.
- Opcionalidade. Quando o OpenAI teve uma interrupção de 40 minutos em 3 de abril, nossa superfície de chat continuou funcionando porque o tráfego foi automaticamente redirecionado para Anthropic e Gemini. Isso por si só vale a migração.
- Paridade de modelo acabou. Não existe "o melhor modelo" em 2026. Existe um melhor modelo para cada tarefa. A agregação é como você realmente usa esse fato.
- Uma fatura. As finanças queriam isso mais do que a engenharia. Uma fatura, um relacionamento com fornecedor, um contrato para 12 provedores.
Se você está operando qualquer volume significativo em um único provedor, a mudança se paga no primeiro mês.