Entendendo a IA Generativa

Tokens e Contexto

O que são tokens, limites de contexto, custo por token e impacto financeiro em produção.

Intermediário 25 min 20 pontos Leitura 0%

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.