Uma conta de custos de LLM em produção mal governada multiplica por 10 em um trimestre. Projeto real de chatbot de suporte: $800/mês viraram $8k em três meses, com tráfego estável. Cada requisição caía no modelo mais caro do catálogo, sem cache e sem rota. Três alavancas derrubaram a fatura para $2.4k com qualidade igual nos evals: model routing, prompt caching e batching.

Model routing: o modelo certo para cada requisição

Modelos frontier custam até 50x mais por token que modelos pequenos. Um modelo de classe GPT-4 cobra $3-15 por milhão de tokens de output; Claude Haiku ou Gemini Flash cobram centavos. A maior parte do tráfego de produção é lookup simples, classificação ou extração curta, e essas tarefas rodam bem em modelo pequeno.

O router pode ser burro de propósito: regras de regex para intents óbvias e um classificador minúsculo para o resto. Request simples bate no modelo barato; raciocínio complexo escala para o tier caro. Nos projetos que medi, routing sozinho cortou 40-70% do custo.

Prompt caching: pare de pagar preço cheio duas vezes

Anthropic e OpenAI vendem prefixo em cache com desconto agressivo sobre o input. Front-load tudo que é estável: system prompts longos, few-shot examples, definições de tools. Se 80% do prompt se repete entre chamadas, preço cheio fica só na ponta variável.

  • Ordem importa: o prefixo compartilhado precisa bater byte a byte até a parte variável
  • Marque blocos cacheáveis com cache_control na API da Anthropic
  • Cache expira em minutos (5-60 conforme provedor); tráfego constante o mantém quente

Semantic caching: reaproveite respostas inteiras

Um nível acima do prompt caching mora o cache semântico. Embede a query nova, compare por similaridade de cosseno com queries passadas e sirva a resposta guardada acima do threshold (0.95 costuma ser seguro). Redis com vector search ou pgvector implementam isso numa tarde.

Duas regras duras: TTL por tipo de conhecimento, com invalidação a cada atualização de dados. E nada de cachear resposta personalizada ou com contexto de sessão; vazamento de dado entre usuários transforma economia em incidente de segurança.

Batch endpoints para o que é assíncrono

Sumarização, enriquecimento de CRM, backfill de embeddings: nada disso precisa de resposta em segundos. APIs batch (OpenAI Batch API, Anthropic Message Batches) cobram cerca de 50% menos em troca de janela de conclusão de até 24h. Migrar jobs noturnos para batch foi a vitória mais barata do projeto.

Observabilidade de spend

Custo invisível cresce sem freio. Registre tokens por feature e por cohort, com alerta de anomalia em horas, não em dias. Alguém sempre encontra o endpoint queimando dinheiro; a dúvida é se o achado sai do dashboard ou da fatura.

Resultado final do chatbot: routing, caching e batching levaram a conta de $8k para $2.4k mensais, com score de evals estável. Governança de custo de LLM é trabalho de engenharia contínuo, com planilha aberta ao lado do Grafana.