Análise técnica · custo operacional
v1.0 · 2026
Bot WhatsApp · Localização de Empresas

Quanto custa uma conversa do começo ao fim?

Decomposição turn-by-turn de uma conversa típica de 4 mensagens — usuário interagindo apenas por áudio, transcrição via Groq Whisper Turbo e raciocínio via gpt-oss-120b. Cada iteração interna da IA, cada token reenviado, cada chamada de tool contabilizada explicitamente.

Custo total estimado por conversa
US$0,0066
≈ R$ 0,034 (a R$ 5,20/USD) · ~0,66 centavos de dólar
Tokens IA
38.860
37.830 in · 1.030 out
Áudio cobrado
30 s
3 chamadas × 10s mín
Chamadas à IA
5
em 3 turns (turn 1 não chama)
01

O modelo da conversa

premissas

Para estimar com precisão, primeiro fixamos um cenário realista. A conversa segue o fluxo natural induzido pelo código: o bot exige localização antes de qualquer busca, e o usuário fala por áudio em todas as mensagens textuais.

Detalhe crítico que muda muito o cálculo: o turn 1 não chama a IA. Quando um usuário novo manda a primeira mensagem, o código armazena o texto em mensagemPendente, devolve uma resposta hardcoded pedindo localização e encerra o turn. O LLM só entra a partir do turn 2.

Outro detalhe: o turn 2 é uma localização compartilhada nativa do WhatsApp (tipo location), não áudio — então não há transcrição nele, mesmo no cenário "só áudio".

⚠ Tarifação mínima do Whisper: a Groq cobra no mínimo 10 segundos por chamada de transcrição. Mesmo um áudio de 2 segundos é faturado como 10s. As 3 chamadas Whisper desta conversa (turns 1, 3 e 4) somam 30 segundos cobrados, não os 9 segundos reais de áudio.

02

Desmonte turn por turn

4 turns · 5 chamadas de IA
01
Turn 01 · Primeira mensagem
Gate de localização — IA não é chamada
Mensagem do usuário
"Oi, quero achar uma farmácia perto aqui de casa"
áudio · 4s reais · 10s cobrados (mín)
O que o código faz
  1. Transcreve áudio com Whisper Turbo (4s de áudio)
  2. Detecta novoMembro=true em loadOrCreateConversation
  3. A função needsInitialLocationPrompt retorna true
  4. Salva o texto transcrito em conv.mensagemPendente
  5. Envia resposta hardcoded pedindo localização
  6. Encerra — nenhuma chamada à IA
Custo do turn US$ 0,000111 só transcrição · 10s mínimos × $0,04/h (áudio real: 4s)
02
Turn 02 · Localização + busca
Compartilhamento de localização dispara o agent loop
● 2 iterações IA
Mensagem do usuário
Localização compartilhada (lat/lng do WhatsApp)
tipo location · sem áudio
O que o código faz
  1. Reverse geocoding via Mapbox (cidade/UF) — não usa IA
  2. Recupera mensagemPendente ("quero achar uma farmácia") do turn 1
  3. Marca como mensagem atual e chama runAgent
  4. IA recebe system prompt completo (R1–R16, catálogos, contexto)
  5. Iter 1: IA decide search com categoria_slug:"farmacia"
  6. Tool retorna 3 farmácias próximas com nome, endereço, WhatsApp, distância
  7. Iter 2: IA recebe TOOL_RESULT e emite reply listando 3 (R10)
Breakdown de tokens
Iteração
O quê
in
out
iter 1
search → toolsystem ~7k + msg pendente + lat/lng
7.130
150
iter 2
reply listando 3+ TOOL_RESULT com 3 empresas
7.700
500
total
14.830
650
Custo do turn US$ 0,00261 2,22k in × $0,15 + 650 out × $0,60 (por milhão)
03
Turn 03 · Pedido de rota
Usuário escolhe uma empresa e pede direções
● 2 iterações IA
Mensagem do usuário
"Como chego na primeira?"
áudio · 3s reais · 10s cobrados (mín)
O que o código faz
  1. Transcreve áudio (3s) → "Como chego na primeira?"
  2. Agent recebe histórico crescido (turn 2 incluso)
  3. IA aplica R4: identifica "a primeira" em "Empresas última busca"
  4. Iter 1: emite route com o id da primeira empresa
  5. Tool route chama Mapbox Directions (cache 1h se já calculou)
  6. Iter 2: IA recebe distância + duração + link_navegacaoreply
Breakdown de tokens
Iteração
O quê
in
out
iter 1
route → toolsystem + histórico (turn 2)
7.500
100
iter 2
reply com rota+ TOOL_RESULT (distância + link)
7.800
200
total
15.300
300
Custo do turn US$ 0,00259 15,3k in × $0,15 + 300 out × $0,60 + Whisper 10s mín
04
Turn 04 · Agradecimento
Fechamento — R12 bloqueia tools, só reply curto
● 1 iteração IA
Mensagem do usuário
"Obrigado!"
áudio · 2s reais · 10s cobrados (mín)
O que o código faz
  1. Transcreve áudio (2s) → "Obrigado!"
  2. Agent recebe histórico completo dos 3 turns anteriores
  3. IA aplica R12 (mensagens sociais): NUNCA chama tools
  4. Iter 1 (única): emite reply curto de cortesia
  5. Resposta: "Por nada! Se precisar é só chamar 👍"
Breakdown de tokens
Iteração
O quê
in
out
iter 1
reply diretosystem + histórico completo
7.700
80
total
7.700
80
Custo do turn US$ 0,00131 7,7k in × $0,15 + 80 out × $0,60 + Whisper 10s mín
03

Tabela consolidada

tokens e custo agregados
#
Turn
Iter
Input
Output
01
Primeira msg · gate de localização
— sem IA —
0
0
02
Localização · search → reply (3 empresas)
2
14.830
650
03
Pedido de rota · route → reply com link
2
15.300
300
04
Agradecimento · reply curto (R12)
1
7.700
80
Σ
Total da conversa
5
37.830
1.030
Input IA
85,6%
Output
9,3%
Whisper
5,0%

Em valores absolutos: US$ 0,005674 de input + US$ 0,000618 de output + US$ 0,000333 de transcrição (30s cobrados) = US$ 0,006626. Arredondado a 4 casas: US$ 0,0066.

O Whisper saltou de 1,8% para 5,0% do custo total justamente por causa da tarifação mínima — sem ela, os 9 segundos reais custariam apenas US$ 0,0001. A regra dos 10s mínimos triplica o custo de transcrição em conversas com áudios curtos típicos do WhatsApp.

04

Onde o custo se concentra

análise crítica
— observação 01

System prompt é 86% do input

O buildSystemPrompt gera ~7.000 tokens (R1–R16, exemplos verbosos, catálogos de ramos/segmentos/categorias/serviços, contexto atual) e é reenviado a cada iteração.

São ~7.000 × 5 chamadas = 35.000 dos 37.830 tokens de input. O histórico, mensagem atual e TOOL_RESULTs somados representam menos de 8% do tráfego de input.

— observação 02

Whisper triplica por tarifação mínima

A Groq cobra 10s mínimos por chamada. Os 9 segundos reais de áudio são faturados como 30s (3 chamadas × 10s), custando US$ 0,000333 em vez de US$ 0,0001.

Vira 5% do custo total — não é desprezível, mas também não é o gargalo. Agrupar múltiplas mensagens curtas num único turn da IA mitigaria o problema, mas o WhatsApp impõe interação mensagem a mensagem.

— observação 03

Reduzir o system prompt = ganho direto

Comprimir o prompt de 7k → 4k tokens (regras mais concisas, exemplos enxutos, catálogos só dos slugs sem nome longo) derrubaria o custo da conversa para ~US$ 0,004 — 39% de economia.

Em escala de 100k conversas, isso é US$ 260/mês economizados sem perda funcional.

— observação 04

Output cresce em buscas longas

O turn 2 (reply listando 3 empresas com nome, endereço, WhatsApp e distância) gera ~500 tokens de output — sozinho, 49% do output total da conversa.

Listas maiores (R10 limita a 3, mas paginação amplia) escalam linearmente. A boa notícia: output a $0,60/M ainda é barato, então não vale recortar UX por isso.

05

Variabilidade & projeção em escala

cenários otimista / esperado / pessimista

A estimativa de US$ 0,0066 assume a "rota feliz": IA acerta em 1–2 iter por turn, sem refinamentos. Conversas reais variam:

Otimista (~US$ 0,003): usuário pede algo direto, IA vai de reply sem search. Raro com este sistema.
Esperado (~US$ 0,0066): o cenário deste documento.
Pessimista (~US$ 0,019): usuário refina ("mas em outro bairro"), pagina ("ver mais"), e IA emite slugs inválidos exigindo re-tentativas. Cada turn chega perto do teto de 4 iterações; mais áudios de retentativa multiplicam o piso de 10s do Whisper.

Volume de conversas
Otimista
Esperado
Pessimista
1.000 conversas
US$ 3,00
US$ 6,63
US$ 19,00
10.000 conversas
US$ 30
US$ 66
US$ 190
100.000 conversas
US$ 300
US$ 663
US$ 1.900
1.000.000 conversas
US$ 3.000
US$ 6.626
US$ 19.000
Preços de referência (2026)
Groq Whisper TurboUS$ 0,04 / hora
Whisper · mínimo por chamada10 segundos
gpt-oss-120b · inputUS$ 0,15 / M tokens
gpt-oss-120b · outputUS$ 0,60 / M tokens
Câmbio assumidoR$ 5,20 / US$
Premissas do cálculo
System prompt estimado~7.000 tokens
Áudios do usuário2–4 segundos
Turn 1 sem IAgate de localização
Mapbox / DB / Geocodingfora do escopo