Você sabe Quanto cada Botão do seu APP custa? Observabilidade de Tokens em Mini-Softwares

Observabilidade de Tokens em Mini-Softwares

Seu mini-software de IA provavelmente já funciona, mas você sabe qual botão dele consome mais dinheiro? Na maioria dos projetos pequenos, a resposta é “não sei”: a fatura da API chega no fim do mês como um número só, e o resumo automático, o chat e o classificador aparecem misturados no mesmo total.

ráfico de barras com tokens por chamada: classificar 450, resumir ficha 1.500 e chat do assistente 3.500, com o registro mínimo (funcionalidade, modelo, entrada, saída, custo).
O chat concentra o consumo: um registro por chamada mostra onde cortar primeiro.

Os artigos anteriores desta série trataram de como gastar menos: cache de prompt, roteamento de modelos, busca por trechos, orçamento. Este aqui trata do passo anterior a todos eles, que é medir. Sem medição, otimizar é chute. Com ela, bastam algumas linhas de código para descobrir onde está o desperdício.

Vamos ver o que a própria API já entrega de graça, como montar um registro de consumo mínimo e como transformar esse registro em decisões dentro de um PWA.

O que a API já te conta (e o que ela estima antes),

Toda resposta da API de mensagens traz um objeto usage com os tokens de entrada e de saída daquela chamada, além dos contadores de cache quando você usa cache de prompt. Esse é o número que vira cobrança, então é o que vale guardar: não precisa estimar nada, a própria resposta já vem com o consumo real.

Para saber o custo antes de chamar, existe o endpoint POST /v1/messages/count_tokens. Segundo a documentação oficial, ele é gratuito, tem limite de requisições por minuto conforme o seu nível de uso e aceita os mesmos campos de uma chamada normal: prompt de sistema, mensagens, ferramentas, imagens e PDFs. O número devolvido é uma estimativa, que pode diferir um pouco do consumo real, e não considera cache.

Um detalhe que pega muita gente: a página avisa que modelos a partir da família 4.7 usam um tokenizador novo, que gera cerca de 30% mais tokens para o mesmo texto. Trocar de modelo, portanto, muda a contagem e não só o preço. Se você compara custos entre versões, compare tokens medidos em cada uma.

Para converter tokens em reais ou dólares, use a tabela oficial de preços. Na consulta de hoje (30/10/2026), o Claude Sonnet 5.5 custa US$ 2 por milhão de tokens de entrada e US$ 10 por milhão de saída. Uma chamada com 1.200 tokens de entrada e 300 de saída sai por cerca de US$ 0,0054; dez mil chamadas iguais, US$ 54. Confira os valores na página antes de fixar qualquer cálculo no código, pois eles mudam.

Um registro de consumo que cabe em uma tabela

Medidor semicircular em 72% do limite diário de uso, com a nota de que o count_tokens funciona como porteiro: se a estimativa passa do teto, encurte o contexto ou peça confirmação.
Um teto diário por funcionalidade evita surpresas na fatura da API.

O registro mínimo guarda, a cada chamada, quatro coisas: qual funcionalidade chamou, qual modelo respondeu, quantos tokens entraram e saíram e quanto custou. Em um PWA, isso pode ser uma tabela no seu backend ou até uma lista no IndexedDB para uso pessoal. O ponto central é gravar o campo usage logo após a resposta, junto com um rótulo da funcionalidade (por exemplo resumo_ficha ou chat_suporte), nunca depois.

A tabela abaixo é um exemplo hipotético, com custos calculados pelos preços de hoje (Sonnet 5.5: US$ 2 entrada / US$ 10 saída por milhão; Haiku 5.5, para prompts de até 100 mil tokens: US$ 0,10 / US$ 0,50):

Funcionalidade Modelo Tokens de entrada Tokens de saída Custo por chamada (US$)
Classificar mensagem Haiku 5.5 400 50 0,000065
Resumir ficha Sonnet 5.5 1.200 300 0,0054
Chat do assistente Sonnet 5.5 3.000 500 0,011

O que essa tabela revela é o tipo de informação que a fatura mensal esconde: o classificador custa menos de um centésimo do chat por chamada. Se ele for chamado 50 vezes mais, ainda assim não é o problema. O candidato a investigar é o chat, cuja entrada de 3.000 tokens provavelmente carrega histórico e instruções repetidas, exatamente o caso em que o cache de prompt e o resumo do histórico (temas de artigos anteriores) mais ajudam.

Do registro à decisão

Com o registro pronto, três consultas simples já mudam a forma de operar o app. A primeira é custo por funcionalidade no mês, que mostra onde cortar primeiro. A segunda é custo por usuário ou por tenant, essencial se você pretende cobrar por plano: sem ela, um único cliente pesado pode consumir a margem de dez clientes leves sem que ninguém perceba. A terceira é a média de tokens por chamada ao longo do tempo; se ela sobe devagar, geralmente é um histórico de conversa ou um prompt de sistema que cresceu sem ninguém notar.

Depois vêm os alertas. Um limite diário por funcionalidade, checado no servidor antes de cada chamada, evita o susto de um laço infinito ou de um bot abusando do endpoint. Para chamadas grandes, vale usar o count_tokens como porteiro: se a estimativa passa de um teto que você definiu, o app encurta o contexto ou pede confirmação ao usuário em vez de gastar às cegas.

Um cuidado final: guarde apenas números e rótulos, não o texto dos prompts, a menos que precise dele para depuração. Isso mantém o registro leve e evita acumular dados pessoais dos seus usuários sem necessidade, o que ajuda também na conformidade com a LGPD. E lembre que a chave da API deve ficar no servidor; o registro é gravado ali, nunca no navegador.

Conclusão

Otimizar tokens sem medir é como dieta sem balança: dá sensação de progresso, mas ninguém sabe se funcionou. O campo usage de cada resposta, uma tabela com quatro colunas e dois ou três alertas já colocam seu mini-software em outro patamar, porque cada decisão de cache, de modelo ou de contexto passa a ter um antes e um depois comprováveis. Comece hoje: grave o consumo de uma única funcionalidade por uma semana e veja o que aparece.

Fontes

Deixe um comentário