Uma contagem exata de tokens precisa de codificação e escopo

Dois contadores podem discordar sem estarem com defeito. Antes de comparar os números, confira a codificação e o que cada um conta.

Identifique primeiro a unidade

Palavras ajudam na leitura; bytes UTF-8 medem uma representação do texto. Tokens dependem de uma codificação: não existe uma proporção fixa para todas as palavras ou todos os caracteres.

O ToolRoof conta texto literal com cl100k_base e informa tokens e bytes. A exatidão vale para essa codificação, não para todos os modelos. Escolher outro modelo no seu aplicativo não muda este contador.

O texto visível não é a requisição inteira

Uma requisição de API pode incluir papéis das mensagens, definições de ferramentas, arquivos e estrutura adicional. Contar corretamente um parágrafo não mede todo esse conjunto.

Perto de um limite, use a medição da requisição ou o relatório de uso adequado do provedor. Uma margem fixa não garante cobrir o que ficou de fora.

Referências: OpenAI — Plain-text counts versus complete request token counts

Preserve exatamente o texto medido

Espaços, quebras de linha e a representação dos caracteres fazem parte da entrada. Guarde a versão medida para repetir a comparação.

O contador não normaliza Unicode nem substitui dígitos. O limite é de 20000 unidades UTF-16, não necessariamente esse número de caracteres visíveis ou tokens. Texto malformado é rejeitado, não corrigido silenciosamente.

Exemplo: aparência semelhante, representação diferente

Em cl100k_base, hello world ocupa 11 bytes UTF-8 e 2 tokens. Tamanho em bytes e contagem de tokens são medidas diferentes.

é como U+00E9 gera 1 token e 2 bytes; e seguida de U+0301 parece semelhante, mas gera 2 tokens e 3 bytes. Isso não classifica idiomas como melhores: mostra por que texto exato e codificação devem acompanhar a medição.

Referências