3 min de leituraAtualizado

Limites de tokens em GPT: como contar antes de estourar a janela

Por Equipe Safe Local Tools

O jeito mais rápido de jogar dinheiro fora em API de LLM é tratar caracteres como tokens. Modelos cobram e truncam por tokens — pedaços de subpalavra que não batem com palavras, pontuação ou blocos de código. Enviar 12 mil caracteres para um modelo de 8 mil tokens pode já ser estouro, não "quase lá". Aqui você entende tokenizer, janelas de contexto, armadilhas multilíngues e por que contar localmente no navegador com o Safe Local Tools mantém rascunhos, credenciais e texto de cliente no seu dispositivo.

OG illustration

O que é um token (e por que não é uma palavra)

LLMs não consomem strings Unicode cruas diretamente no mesmo sentido humano: um tokenizer mapeia texto para inteiros. Um token pode ser palavra inteira, sílaba, pontuação grudada em vizinho ou fragmento de JSON.

Encodings como cl100k_base (família GPT‑4) e variantes mais novas mudam entre gerações; dois contadores podem divergir alguns pontos percentuais no mesmo parágrafo. Se o produto copia "128k context" do cartão do modelo, ainda precisa do tokenizer que casa com aquele endpoint.

Janelas: entrada, saída e espaço reservado

O número grande do marketing (32k, 128k, 200k) esconte fatias: instruções de sistema, documentos recuperados (RAG), histórico, definições de ferramentas em JSON e a resposta (max_tokens) competem pelo mesmo orçamento em muitos provedores.

Esquecer que tokens de saída contam na mesma janela é clássico: 120k de anúncio com 8k reservados para conclusão deixa 112k para tudo que você empilhou na entrada. Some margem para retries, raciocínio oculto e formatação.

Por que contagem de caracteres e de palavras falha

Código, YAML e JSON repetem chaves — aspas viram fragmentos. Scripts não latinos podem usar menos caracteres por unidade semântica e mesmo assim mais tokens. Base64 e dumps hex parecem curtos visualmente e explodem em faturamento.

Famílias diferentes (OpenAI, Anthropic, Llama, Mistral, embeddings) têm tokenizers distintos; heurística "~3,5 caracteres por token" só é referência solta para inglês, não lei.

Checklist antes de cada prompt de produção

Serializar o payload completo (system + tools + mensagens), não só a última bolha do usuário. Contar com o tokenizer alvo quando possível. Subtrair tokens de conclusão planejados. Se há RAG, medir chunks antes do modelo ver. Registrar usage.prompt_tokens da API e comparar com estimativa local semanal para caçar drift.

Ao estourar orçamento, evite slice cego em caracteres: resuma histórico, elimine meio antigo, encolha saídas de ferramentas, reencabece documentos com sobreposição controlada.

Privacidade: por que contagem local importa

Demos públicas de tokenizer são convenientes e arriscadas para notas clínicas, contratos, credenciais em stack traces, incidentes em andamento ou copy não lançado. O Safe Local Tools roda a contagem no cliente, reduzindo processamento desnecessário em terceiros enquanto você ajusta prompt durante um apagão ou reunião de crise.

Instrumente prompt_tokens, completion_tokens e alerte quando p95 passar de ~70% da janela padrão; feature flag para bloquear envio quando estimativa local ultrapassar limiar pode evitar fila de jobs fadada ao erro.

Em conteúdo jurídico ou regulatório, pequenas diferenças de tokenizer alteram se um parecer cabe inteiro na janela — por isso times de compliance ganham quando PMs e engenheiros compartilham a mesma ferramenta de pré‑voo que não exige colar o texto inteiro em sites não contratados. Para times globais, valide também prompts em português, espanhol e inglês na mesma sprint: densidade morfossintática muda e a equipe de produto precisa ver vermelho antes do primeiro context_length_exceeded em produção.

Streaming não economiza tokens de saída só porque a UI mostra texto aos poucos: o contador de conclusão ainda acumula até o fim do fluxo. Metros de token na interface devem subir em tempo real para o usuário abortar geração longa cedo — o mesmo raciocínio vale para loops de agente que anexam mensagens tool gigantes sem gzip moral.

Matemática de token é chata até vir fatura. Medir o payload outbound completo com o tokenizer certo, guardar margem para a resposta e tratar recuperação como parte do prompt — não reflexo tardio — evita estouro silencioso. Fine‑tuning e jobs de treino cobram tokens por exemplo em JSONL; não reaproveite contadores de chat sem recalibrar. Para checar rascunhos sem upload, Experimentar o contador de tokens de IA →