O Prompt de Exemplo
O prompt carregado na ferramenta acima é um prompt de sistema para um revisor de código assistido por LLM. Ele tem 110 a 120 tokens, dependendo do tokenizador. Pode não parecer muito, mas este prompt e enviado com toda chamada de API. Se você fizer 10.000 chamadas por dia, apenas o prompt de sistema representa mais de 1 milhão de tokens de entrada por dia.
Entender o número de tokens na fase de projeto do prompt evita surpresas de custo em produção.
O Que é um Token?
Tokenização é o processó de dividir texto em unidades discretas que o modelo processa. LLMs não operam em caracteres ou palavras. Eles operam em tokens. O mapeamento de texto para tokens é definido por uma tabela de vocabulario construida durante o processó de treinamento do modelo.
A maioria dos LLMs modernos usa Byte Pair Encoding (BPE). BPE comeca tratando cada byte como seu proprio token, depois mêscla iterativamente os pares adjacentes mais frequentes. Apos mêsclagens suficientes, palavras comuns em inglês se tornam tokens únicos, enquanto palavras raras são divididas em unidades de subpalavras.
Por exemplo, com o tokenizador cl100k_base do GPT-4:
"PostgreSQL" → ["Post", "gre", "SQL"] (3 tokens)
"React" → ["React"] (1 token)
"TypeScript" → ["Type", "Script"] (2 tokens)
"the" → ["the"] (1 token)
Codigo tende a tokenizar de forma menos eficiente que prosa porque contem identificadores, simbolos e sintaxe que aparecem com menos frequencia nos dados de treinamento. Um trecho de código de 100 linhas pode usar mais tokens do que você esperaria pela contagem de caracteres.
Por que o Numero de Tokens Importa
Custo de API
O preco dos LLMs é por token. Precos representativos em meados de 2026:
| Modelo | Entrada (por 1M tokens) | Saida (por 1M tokens) |
|---|---|---|
| GPT-4o | $2,50 | $10,00 |
| GPT-4o-mini | $0,15 | $0,60 |
| Claude 3.5 Sonnet | $3,00 | $15,00 |
| Claude 3 Haiku | $0,25 | $1,25 |
| Gemini 1.5 Flash | $0,075 | $0,30 |
Um prompt de sistema de 200 tokens custa $0,0005 por chamada com GPT-4o. A 10.000 chamadas/dia, issó e $5/dia ou $150/mês, apenas do prompt de sistema. Se você reduzir para 100 tokens, economiza $75/mês sem mudanca na funcionalidade.
Limites da janela de contexto
A janela de contexto limita o total de tokens (entrada + saída) por requisição. Se seu modelo de prompt, historico de conversa e documentos injetados juntos se apróximarem do limite, o modelo pode truncar o historico ou falhar com um erro. Medir componentes individuais permite projetar prompts que deixem margem para a saída.
Qualidade da resposta
Prompts muito longos nem sempre produzem melhores resultados. Estudos sobre efeitos “perdido no meio” mostram que modelos muitas vezes prestam menos atenção a informações enterradas no meio de um contexto longo. Prompts concisos e bem estruturados tendem a produzir respostas mais confiaveis que os prolixos.
Como Diferentes Tokenizadores Lidam com o Mesmo Texto
Execute o mêsmo prompt por varios tokenizadores e você obtera contagens diferentes. Issó importa ao migrar entre provedores ou comparar custos:
# OpenAI: biblioteca tiktoken
import tiktoken
# GPT-4, GPT-4-turbo, GPT-3.5-turbo
enc_cl100k = tiktoken.get_encoding("cl100k_base")
# GPT-4o, GPT-4o-mini
enc_o200k = tiktoken.get_encoding("o200k_base")
texto = "Você é um engenheiro de software senior revisando código..."
print(len(enc_cl100k.encode(texto))) # ex. 117
print(len(enc_o200k.encode(texto))) # ex. 108 (o200k tende a ser mais eficiente)
# Anthropic: biblioteca anthropic (a partir do SDK 0.21+)
import anthropic
cliente = anthropic.Anthropic()
resposta = cliente.mêssages.count_tokens(
model="claude-3-5-sonnet-20241022",
mêssages=[{"role": "user", "content": texto}]
)
print(resposta.input_tokens)
O tokenizador do Claude não esta documentado publicamente como biblioteca autonoma. Use o endpoint da API count_tokens diretamente.
Tecnicas Praticas para Reduzir o Numero de Tokens
Aparar espacos e redundancia
Instruções repetidas, descrições de papeis verbosas e varios exemplos do mêsmo padrão custam tokens. Seja direto.
Antes:
Você é um engenheiro de software senior experiente com muitos anos de experiencia
revisando código de produção. Você tem profunda experiencia em melhores práticas,
seguranca e desempenho. Por favor, revise cuidadosamente o código a seguir e forneca
feedback detalhado.
Depois:
Revise o código a seguir quanto a problemas de qualidade, seguranca e desempenho.
A segunda versão transmite a mêsma instrução em apróximadamente 40% dos tokens.
Use formatos estruturados para dados
Se você esta injetando dados tabulares, JSON geralmente é mais eficiente em tokens que descrições em prosa:
# Prosa (mais tokens):
"O nome do usuario e Alice, ela tem 30 anos é o status da conta e ativo."
# JSON (menos tokens):
{"nome":"Alice","idade":30,"status":"ativo"}
Prefira prompts de sistema para instruções estaticas
Algumas APIs (e algumas implementações de cache) tratam o prompt de sistema de forma diferente da vez do usuario. Mantenha instruções estaticas no prompt de sistema, onde podem ser armazenadas em cache.
Armazene em cache contexto repetido
O cache de prompt da OpenAI (para GPT-4o) é o cache de prompt da Anthropic (para Claude) reduzem o custo de prefixos repetidos. Se seu prompt de sistema e quaisquer documentos injetados são sempre os mêsmos, eles podem ser servidos do cache a uma fração do custo total. O cache de prompt tipicamente exige que o prefixo em cache tenha >=1024 tokens.
A Janela de Contexto como um Orcamento
Pense na janela de contexto como um orcamento fixo do qual todos os tokens se utilizam:
[prompt de sistema] + [historico da conversa] + [documentos injetados] + [saída] <= janela de contexto
Para uma janela de contexto de 128.000 tokens:
| Componente | Alocação tipica |
|---|---|
| Prompt de sistema | 100 a 500 tokens |
| Historico da conversa (últimos N turnos) | 2.000 a 20.000 tokens |
| Documentos injetados / contexto RAG | 5.000 a 50.000 tokens |
| Reservado para saída | 1.000 a 4.000 tokens |
Quando o contexto esta quase cheio, você deve escolher o que descartar. Estrategias comuns:
- Janela deslizante: Descarte os turnos de conversa mais antigos primeiro.
- Sumarização: Comprima periodicamente turnos mais antigos em um resumo.
- Truncagem RAG: Classifique documentos recuperados por relevancia e descarte os de classificação mais baixa se estourar o orcamento.
Conhecer suas contagens de tokens para cada componente é o que torna essas escolhas concretas em vez de apróximadas.