BrowserTools
Início / IA / Contador de tokens

Contador de tokens

Vê quantos tokens o teu texto ocupa no ChatGPT e noutros modelos de IA, e uma estimativa para o Claude. Nada sai do teu navegador.

A carregar Contador de tokens… Se nada acontecer, ativa o JavaScript.

Os modelos de linguagem não leem caracteres nem palavras, leem tokens: pequenos pedaços de texto retirados de um vocabulário fixo com que o modelo foi treinado. Preços, limites de utilização e janelas de contexto são todos medidos em tokens, por isso saber quantos usa um prompt diz-te quanto vai custar um pedido e se um documento longo cabe. Cola texto, um prompt ou um ficheiro de código neste contador e ele divide-o em tokens com as mesmas tabelas de byte pair encoding que a OpenAI usa: o200k_base para o GPT-4o, o GPT-4.1, os modelos de raciocínio da série o e a família GPT-5, e cl100k_base para o GPT-4 e o GPT-3.5 Turbo. Além da contagem de tokens tens caracteres, palavras, linhas e a média de caracteres por token, uma forma rápida de perceber quão eficiente é a codificação de uma língua ou de um formato.

Perguntas frequentes

O meu texto é enviado para algum lado?
Não. O tokenizador é uma biblioteca JavaScript cujas tabelas de vocabulário são servidas por este site e correm dentro do teu navegador. A página não faz nenhum pedido com o teu texto, por isso podes colar prompts privados, código-fonte ou dados de clientes sem que saiam do teu dispositivo.
Que codificação devo escolher?
Escolhe o200k_base para o GPT-4o, o GPT-4o mini, o GPT-4.1, os modelos de raciocínio o1, o3 e o4 e a família GPT-5. Escolhe cl100k_base para o GPT-4, o GPT-4 Turbo, o GPT-3.5 Turbo e os modelos de embeddings text-embedding-3 e ada-002. O o200k_base tem um vocabulário de cerca de 200 000 tokens, contra uns 100 000 do cl100k_base, o que ajuda sobretudo em texto que não está em inglês e em código, onde costuma precisar de menos tokens.
A contagem de tokens GPT é exata?
Para o texto em si, sim: usa as mesmas tabelas de byte pair encoding da biblioteca tiktoken da OpenAI. Um pedido de chat acrescenta alguns tokens por mensagem para o papel e a formatação, e ferramentas, imagens e instruções de sistema acrescentam mais, por isso o número faturado numa chamada completa à API será um pouco superior à contagem do texto sozinho.
Quão fiável é a estimativa para o Claude?
É uma aproximação, não uma medição. A Anthropic não publica um tokenizador que corra do lado do cliente, por isso a ferramenta multiplica a contagem o200k_base por um intervalo de 1,1 a 1,5. Os modelos Claude mais recentes (Opus 4.7 e posteriores, e os modelos Fable) usam um tokenizador que produz cerca de 1,0 a 1,35 vezes mais tokens do que as versões anteriores do Claude para o mesmo texto, e as contagens do Claude são em geral superiores às da OpenAI. Código e texto noutras línguas tendem a ficar perto do topo do intervalo, prosa simples em inglês perto do fundo.
Como obtenho a contagem exata de tokens do Claude?
Chama o endpoint de contagem de tokens da Anthropic, POST /v1/messages/count_tokens, com o mesmo ID de modelo e as mesmas mensagens que pretendes enviar. É de utilização gratuita, devolve input_tokens e conta também prompts de sistema, ferramentas e imagens. As contagens dependem do modelo, por isso indica sempre aquele que vais mesmo usar. Os SDK oficiais disponibilizam-no como messages.count_tokens em Python e messages.countTokens em TypeScript.
O que me diz a razão caracteres por token?
É o número médio de caracteres metidos em cada token. Prosa em inglês com o o200k_base anda normalmente pelos quatro caracteres por token. Uma razão mais baixa significa que o texto é mais caro de processar por caráter, o que é típico de código com muita pontuação, de strings em base64 ou hexadecimal e de línguas com alfabetos não latinos.
O que é a barra da janela de contexto?
Mostra quanto da janela de contexto de um modelo o teu texto ocuparia: 128K tokens para o GPT-4o e a série o, 200K para o Claude Haiku 4.5, 400K para a família GPT-5 e 1M para o GPT-4.1 e os modelos Claude Opus, Sonnet e Fable atuais. As barras do Claude usam o limite superior da estimativa, para pecarem por excesso de cautela. Lembra-te de que a janela também tem de acomodar a resposta do modelo, por isso deixa espaço para ela.
Porque é que as mesmas palavras são divididas de forma diferente em sítios diferentes?
Os tokenizadores tratam o espaço inicial como parte da palavra, por isso "hello" no início de uma linha e " hello" depois de um espaço são tokens diferentes. Maiúsculas, pontuação colada à palavra e os caracteres à volta também mudam a divisão. Os números são cortados em blocos de até três algarismos e as palavras raras são partidas em vários fragmentos comuns.
Posso contar tokens num ficheiro?
Sim. Larga um ficheiro .txt, .md, .json, .csv ou de código-fonte na ferramenta, ou usa o seletor de ficheiros, e o conteúdo é carregado na caixa de texto. Os ficheiros são lidos localmente com a File API do navegador. Ficheiros binários como imagens ou PDF são recusados, porque a sua contagem de tokens depende da forma como o modelo os processa e não dos bytes.

Sobre Contador de tokens

A vista de tokens por baixo mostra exatamente onde caem as fronteiras, com cada token num fundo alternado e a opção de mostrar os IDs numéricos em vez do texto. Isto ajuda quando um prompt se comporta de forma estranha: vês que um espaço inicial faz parte da palavra seguinte, que um número comprido é partido em grupos de três algarismos, ou que uma palavra em português ou japonês precisa de vários tokens onde o equivalente em inglês precisa de um. Código, JSON e texto minificado costumam gastar mais tokens por caráter do que prosa, e a razão caracteres por token torna isso visível. Para manter a página rápida, só são desenhados os primeiros 2000 tokens, mas as contagens abrangem sempre o texto inteiro.

Os modelos Claude usam um tokenizador próprio, e a Anthropic não o disponibiliza numa forma que corra no navegador. O valor para o Claude é por isso uma estimativa, calculada a partir da contagem o200k_base com um intervalo de fatores, e está identificado como tal. Os modelos Claude mais recentes (Opus 4.7 e posteriores, e os modelos Fable) usam um tokenizador que produz bastante mais tokens para o mesmo texto do que as versões anteriores, por isso usa o limite superior do intervalo como número seguro para planear e recorre ao endpoint count_tokens da API da Anthropic quando precisares da contagem exata. Tudo corre localmente: as tabelas do tokenizador são carregadas deste site e o teu texto nunca é enviado para lado nenhum.

O byte pair encoding nasceu como truque de compressão

O algoritmo por trás destes tokenizadores não foi inventado para modelos de linguagem. Philip Gage descreveu o byte pair encoding em 1994 no The C Users Journal como um método simples de compressão de dados: encontrar o par de bytes adjacentes mais frequente, substituí-lo por um byte que não exista nos dados e repetir até que nenhum par seja comum o suficiente para valer a pena.

Em 2015, Rico Sennrich e colegas adaptaram a ideia à tradução automática neuronal. Em vez de comprimir um ficheiro, usaram a mesma fusão gananciosa para construir um vocabulário de unidades abaixo da palavra, de modo que um modelo de tradução conseguisse lidar com palavras raras e nomes próprios montando-os a partir de peças conhecidas. O GPT-2 da OpenAI, em 2019, levou o processo até aos bytes em bruto, o que permitiu codificar qualquer texto, em qualquer língua ou com qualquer emoji, sem recorrer a um token desconhecido.

É esse desenho ao nível do byte que explica porque um único emoji pode ocupar vários tokens e porque uma palavra pode ser partida em sítios inesperados: o vocabulário reflete as sequências de bytes que eram comuns nos dados de treino, não a forma como as pessoas pensam nas palavras. É também por isso que os vocabulários continuam a crescer, de cerca de 50 000 entradas no GPT-2 para perto de 100 000 no cl100k_base e 200 000 no o200k_base, e cada passo deixa o texto comum caber em menos tokens.

Apoiar