Desenvolvedores que usam a API Perplexity muitas vezes recebem cobranças inesperadas por não entenderem como os tokens são contados. A API Perplexity cobra com base no número total de tokens enviados em uma requisição e recebidos na resposta. A contagem de tokens inclui o prompt, as instruções do sistema, qualquer contexto e a resposta gerada. Este artigo explica exatamente quais elementos contam para o uso de tokens, como estimar custos antes de fazer uma requisição e como reduzir o consumo de tokens para controlar sua fatura.
Principais Conclusões: Regras de Contagem de Tokens da API Perplexity
- Total de tokens = tokens do prompt + tokens de conclusão: Cada caractere no prompt e na resposta é contado como tokens.
- Instruções do sistema e contexto são incluídos: A mensagem do sistema, o histórico de mensagens do usuário e qualquer contexto fornecido consomem tokens.
- A escolha do modelo altera o preço por token: Diferentes modelos Perplexity têm taxas por token distintas, e alguns modelos usam mais tokens para o mesmo texto.
Como a Perplexity Conta Tokens em Requisições e Respostas da API
A API Perplexity usa um sistema de tokenização semelhante a outras APIs de modelos de linguagem de grande porte. Um token é uma unidade de texto que o modelo processa. Um token equivale aproximadamente a quatro caracteres de texto em inglês. A API conta tokens em duas partes: tokens do prompt e tokens de conclusão.
Os tokens do prompt incluem cada caractere no array de mensagens que você envia. Isso inclui o papel do sistema, o papel do usuário, quaisquer mensagens de papel de assistente que você incluir para contexto e a consulta atual do usuário. A API também conta quaisquer metadados ou tokens especiais que o modelo adiciona internamente, mas isso é transparente para você.
Os tokens de conclusão são os tokens que o modelo gera em sua resposta. Todo o texto da resposta, incluindo citações ou formatação, é contado como tokens de conclusão. A API retorna as contagens de tokens no objeto de resposta sob usage.prompt_tokens e usage.completion_tokens.
O Que Exatamente Conta como Token
Cada caractere no prompt é tokenizado. Espaços, pontuação e quebras de linha contam. Uma palavra simples como “Perplexity” é tipicamente um token. Uma palavra mais longa como “tokenização” pode ser dois tokens. A contagem exata de tokens depende do tokenizador do modelo, mas todos os modelos Perplexity usam um tokenizador que fornece contagens semelhantes para texto em inglês.
O Que Não Conta como Token
A API não conta cabeçalhos de requisição HTTP, tokens de autenticação ou sobrecarga de rede. Apenas o conteúdo de texto real da requisição e resposta é faturado. Além disso, se você definir um parâmetro max_tokens, a API não gerará além desse limite, o que limita a contagem de tokens de conclusão.
Passos para Calcular o Uso de Tokens Antes de Enviar uma Requisição
- Conte os caracteres no seu prompt
Use uma ferramenta de contagem de caracteres ou seu editor de código. Divida o total de caracteres por 4 para obter uma contagem aproximada de tokens. Por exemplo, 1000 caracteres equivalem a aproximadamente 250 tokens. - Adicione a mensagem do sistema e o contexto
Se você incluir uma mensagem do sistema ou turnos de conversa anteriores, conte esses caracteres também. Some todas as contagens de caracteres de todo o array de mensagens. - Estime o comprimento da resposta
Defina um valormax_tokenspara limitar a resposta. Se você espera uma resposta curta, defina um valor baixo como 200 tokens. Para respostas longas, defina 1000 ou mais. - Multiplique pelo preço por token do modelo
Verifique a página de preços da Perplexity para o modelo específico que você usa. Multiplique o total estimado de tokens pelo preço por token. Some as contagens de tokens do prompt e de conclusão separadamente, pois podem ter taxas diferentes. - Use a resposta de uso da API para verificar
Após fazer uma requisição de teste, leia o campousageda resposta da API. Compare as contagens reais de tokens com suas estimativas para melhorar previsões de custo futuras.
Erros Comuns na Contagem de Tokens e Como Evitá-los
“Minha fatura está mais alta do que o esperado, mesmo enviando consultas curtas”
A causa mais comum é incluir um contexto grande na mensagem do sistema ou no histórico da conversa. Se você enviar todo o histórico da conversa em cada requisição, a contagem de tokens do prompt cresce rapidamente. Use uma janela deslizante de mensagens recentes em vez do histórico completo. Além disso, verifique se você está enviando a mesma mensagem do sistema repetidamente sem armazená-la em cache. A API conta a mensagem do sistema toda vez.
“A API retorna mais tokens de conclusão do que minha configuração max_tokens”
O parâmetro max_tokens define o número máximo de tokens que o modelo pode gerar. No entanto, o modelo pode parar antes devido a uma sequência de parada ou token de fim de texto. Se você vir tokens de conclusão excedendo max_tokens, pode ter definido o parâmetro incorretamente. Verifique se você está passando max_tokens no corpo da requisição, não nos cabeçalhos.
“Minhas contagens de tokens variam entre requisições com o mesmo prompt”
A contagem de tokens para o mesmo prompt deve ser idêntica. Se variar, verifique se você está incluindo um timestamp, ID de usuário aleatório ou outro conteúdo dinâmico na requisição. Conteúdo dinâmico altera a contagem de tokens. Além disso, certifique-se de usar a mesma versão do modelo em todas as requisições, pois versões diferentes podem tokenizar o texto de forma ligeiramente diferente.
| Item | API Perplexity | API OpenAI |
|---|---|---|
| Método de contagem de tokens | Tokens do prompt + tokens de conclusão | Tokens do prompt + tokens de conclusão |
| Mensagem do sistema incluída | Sim | Sim |
| Histórico de contexto incluído | Sim | Sim |
| Preço por token | Varia por modelo; geralmente menor que OpenAI | Varia por modelo; geralmente maior que Perplexity |
| Uso de tokens na resposta | usage.prompt_tokens e usage.completion_tokens |
usage.prompt_tokens e usage.completion_tokens |
Entender como a Perplexity conta tokens ajuda você a controlar os custos da API. Sempre verifique o campo de uso na resposta da API após cada requisição. Reduza o tamanho do prompt cortando o histórico da conversa e removendo instruções do sistema desnecessárias. Use o parâmetro max_tokens para limitar o comprimento da resposta. Para aplicações com muitos usuários, implemente um orçamento de tokens por requisição para evitar custos descontrolados. Teste com uma amostra pequena antes de escalar para produção para confirmar que suas estimativas de custo correspondem ao uso real.