Entendendo a IA Generativa
Tokens e Contexto
O que são tokens, limites de contexto, custo por token e impacto financeiro em produção.
Nesta aula você vai
- Definir token e estimar tamanho de prompts
- Explicar janela de contexto e overflow
- Calcular custo aproximado de uma conversa
Tokens e Contexto
Objetivos
- Entender por que respostas custam dinheiro
- Saber o que é janela de contexto e o que acontece quando estoura
- Estimar custo antes de ir para produção
A surpresa da fatura
Você coloca um chatbot no ar numa sexta-feira. Na segunda, o financeiro pergunta: "Por que a conta da OpenAI triplicou?"
A resposta quase sempre está aqui: tokens. Não é "quantas mensagens o usuário mandou" — é quanto texto entrou e saiu em cada chamada, incluindo histórico, system prompt e exemplos few-shot.
Antes de otimizar código, precisamos entender a unidade de cobrança. Sem isso, qualquer arquitetura vira aposta.
O que são tokens
Modelos não processam "palavras" inteiras — processam tokens. Regra prática em português/inglês:
- ~1 token ≈ 4 caracteres em inglês
- ~1 token ≈ 3–4 caracteres em português (palavras compostas quebram diferente)
Exemplo: "Integração com API REST" ≈ 6–8 tokens.
APIs cobram por tokens de entrada (input) + tokens de saída (output). Output costuma ser mais caro — gerar texto exige mais computação do que ler.
Analogia: imagine um taxi que cobra por quilômetro percorrido, não por "viagem". Cada mensagem nova leva todo o histórico de novo no banco — como pagar de novo o trajeto desde o ponto de partida.
Por que isso importa no código
Cada chamada envia todo o contexto relevante:
{
"messages": [
{ "role": "system", "content": "Você é assistente da loja X..." },
{ "role": "user", "content": "Pedido 12345?" },
{ "role": "assistant", "content": "Consultando..." },
{ "role": "user", "content": "E o prazo?" }
]
}
Todas as mensagens anteriores entram na conta — incluindo system prompt longo e histórico completo. Conversa longa = custo crescente a cada turno.
Cenário real:
Turno 1: usuário pergunta sobre pedido → 400 tokens
Turno 10: mesma conversa → 3.500 tokens só de contexto, antes da resposta
Turno 50: pode ultrapassar limite do modelo ou estourar orçamento
Por isso "memória infinita" no chat não é feature gratuita — é decisão de arquitetura que veremos na matéria 5.
Janela de contexto (context window)
Cada modelo tem limite máximo de tokens por requisição (entrada + saída):
| Modelo (exemplo) | Contexto típico |
|---|---|
| GPT-4o mini | 128k tokens |
| Claude 3.5 Sonnet | 200k tokens |
| Modelos open menores | 4k–32k tokens |
Pense na janela como a memória de trabalho do modelo naquela requisição. Passou do limite, a API rejeita ou trunca (depende do provedor). Em produção, monitore usage.prompt_tokens e usage.completion_tokens na resposta.
Diálogo de debug comum:
Dev: "A API retornou erro de context length."
Colega: "Quantas mensagens você manda no histórico?"
Dev: "Todas desde o login do usuário."
Colega: "Aí está. Limite ou resuma."
Cálculo de custo (exemplo)
Preços fictícios para ilustrar a lógica — confira sempre a tabela atual do provedor:
- Input: US$ 0,15 / 1M tokens
- Output: US$ 0,60 / 1M tokens
Requisição: 2.000 tokens input + 500 output:
input: 2000 / 1_000_000 × 0,15 = US$ 0,0003
output: 500 / 1_000_000 × 0,60 = US$ 0,0003
Total ≈ US$ 0,0006 por mensagem
Parece pouco — até multiplicar por volume:
10.000 mensagens/dia ≈ US$ 6/dia ≈ US$ 180/mês só neste cenário. Sem rate limit, um bot público pode explodir a fatura em horas. Bot mal configurado + usuário malicioso repetindo prompts gigantes = incidente financeiro.
Estratégias imediatas (preview)
Detalhamos nas matérias 4 e 5, mas já vale ter no radar:
- System prompt enxuto — regras essenciais, não um manual inteiro
- Histórico limitado — últimas N mensagens, não lifetime
- Resumo periódico — comprimir conversa antiga
- Cache de respostas — mesma pergunta FAQ = mesma resposta sem LLM
- max_tokens — limitar tamanho da resposta
Não é "otimização prematura" — é sobrevivência em produção.
Ferramentas úteis
- Tokenizers oficiais (OpenAI
tiktoken, Hugging Face) para estimar antes de enviar - Dashboard do provedor — billing por dia/projeto
- Logs no seu backend:
userId,promptTokens,completionTokens,model,latencyMs
Boa prática: na primeira versão do seu endpoint, já logue tokens. Quando o custo subir, você terá dados — não achismos.
Resumo
- Token é unidade de cobrança e de limite de contexto
- Histórico longo multiplica custo a cada mensagem
- Estime custo × volume antes de abrir chatbot público
- Controle de contexto é engenharia obrigatória, não otimização opcional
Na próxima aula veremos como regular o comportamento do modelo sem trocar de LLM — temperature, top_p e max_tokens são os "botões" que você ajusta no painel invisível da API.