Erro de Limite de Taxa da API Perplexity com Uso Baixo: Correção
🔍 WiseChecker

Erro de Limite de Taxa da API Perplexity com Uso Baixo: Correção

Você está usando a API Perplexity e sua contagem real de requisições está muito abaixo do limite publicado, mas ainda vê um erro 429 de Limite de Taxa. Este é um comportamento conhecido onde a API impõe limites de taxa com base em rajadas de tráfego dentro de uma janela curta, não apenas no uso total diário. Este artigo explica por que isso acontece e fornece uma correção passo a passo para resolver o erro e evitar que ele se repita.

Principais Conclusões: Corrigindo Erros 429 de Limite de Taxa da API Perplexity com Uso Baixo

  • Painel da API > Uso > Limite de Taxa: Mostra seu uso atual de requisições por minuto (RPM) e tokens por minuto (TPM).
  • Implemente backoff exponencial: Aguarde 1 segundo, depois 2, depois 4 segundos entre as tentativas para evitar atingir o limite de rajada de curto prazo.
  • Reduza requisições concorrentes: Limite chamadas paralelas à API a 1-3 para ficar abaixo do limite de RPM, mesmo que sua contagem diária total seja baixa.

ADVERTISEMENT

Por que a API Perplexity Retorna Erros 429 Apesar do Uso Total Baixo

A API Perplexity usa um limitador de taxa de janela deslizante. Isso significa que ela rastreia o número de requisições e tokens consumidos nos últimos 60 segundos, não apenas no dia atual. Mesmo que seu uso diário total seja 1% do seu limite, enviar 10 requisições em um único segundo pode disparar um erro 429 porque a janela de rajada foi excedida.

A API impõe dois limites principais: requisições por minuto (RPM) e tokens por minuto (TPM). Para a maioria dos tiers da API Perplexity, o RPM padrão é 10 e o TPM é 100.000. Se sua aplicação enviar 11 requisições dentro de qualquer janela de 60 segundos, a 11ª requisição retorna um erro 429, independentemente do seu uso diário total.

Taxa de Rajada vs Taxa Média

Um equívoco comum é que uma taxa média de uso baixa protege você dos limites de taxa. Não protege. A API Perplexity redefine seu contador de taxa a cada 60 segundos. Se seu código enviar quatro requisições no primeiro segundo de uma nova janela, você usou 40% do seu RPM em um segundo. Quaisquer requisições adicionais nos 59 segundos restantes falharão se ultrapassarem o limite de RPM.

Consumo de Tokens em Janelas Curtas

Os limites de token funcionam da mesma forma. Um único prompt grande que consome 80.000 tokens em uma requisição usa 80% do seu orçamento de TPM. Se você enviar uma segunda requisição grande dentro do mesmo minuto, excede o limite de TPM e recebe um erro 429, mesmo que seu uso total diário de tokens seja baixo.

Passos para Corrigir o Erro 429 de Limite de Taxa

  1. Verifique seu uso atual no Painel da API Perplexity
    Acesse o Painel da API Perplexity e selecione a aba Uso. Veja a seção Limite de Taxa. Isso mostra seu RPM e TPM em tempo real. Se você vir um pico acima de 10 RPM ou 100.000 TPM, atingiu o limite de rajada. Anote o horário exato do pico.
  2. Implemente backoff exponencial no seu código
    Adicione um loop de tentativas com backoff exponencial. Quando receber um código de status 429, aguarde 1 segundo antes de tentar novamente. Se ainda receber 429, aguarde 2 segundos, depois 4 segundos, depois 8 segundos. Não exceda 5 tentativas. Exemplo de pseudocódigo: retry_count = 0; while response.status == 429: sleep(2 ** retry_count); retry_count += 1.
  3. Reduza requisições concorrentes para 1 ou 2
    Se sua aplicação envia várias chamadas à API ao mesmo tempo, limite a concorrência. Use uma fila ou semáforo para garantir que não haja mais de duas requisições em andamento a qualquer momento. Isso evita que uma rajada de requisições paralelas consuma todo o orçamento de RPM em um segundo.
  4. Adicione um atraso fixo entre requisições
    Insira uma pausa de 6 segundos entre cada chamada à API. Isso garante que você nunca exceda 10 RPM, pois envia no máximo 1 requisição a cada 6 segundos, o que equivale a 10 requisições por minuto. Ajuste o atraso com base no seu limite real de RPM.
  5. Reduza o tamanho do prompt para diminuir o consumo de tokens
    Encurte seus prompts para ficar dentro do limite de TPM. Se precisar enviar prompts grandes, divida-os em partes menores e envie-as com um atraso de pelo menos 60 segundos entre as partes. Isso redefine a janela de token para cada parte.

ADVERTISEMENT

Se o Erro 429 Ainda Aparecer Após a Correção Principal

Limite de Uso Diário Também foi Excedido

Verifique seu limite de uso diário no Painel da API Perplexity. Alguns tiers da API têm um limite diário de requisições, como 1.000 requisições por dia. Se você atingiu esse limite, verá um erro 429 independentemente do seu uso de RPM ou TPM. A correção é fazer upgrade para um tier superior ou aguardar até o próximo dia, quando o contador diário é redefinido.

Chave de API Compartilhada Entre Múltiplas Aplicações

Se você usa a mesma chave de API em duas ou mais aplicações, o tráfego combinado de todos os aplicativos conta para o mesmo limite de taxa. Um aplicativo pode consumir todo o orçamento de RPM, causando um erro 429 para o outro aplicativo. Crie uma chave de API separada para cada aplicação para isolar o uso.

Limite de Taxa é Menor que o Padrão para Seu Tier

Alguns tiers da API Perplexity têm um limite de RPM ou TPM menor que o padrão. Por exemplo, o tier gratuito tem um limite de RPM de 5 em vez de 10. Verifique seu tier no Painel da API em Faturamento. Se seu limite for menor, ajuste suas configurações de atraso ou concorrência de acordo.

Tiers da API Perplexity: Limites de Taxa e Limites Diários

Item Tier Gratuito Tier Pro
Requisições por minuto (RPM) 5 10
Tokens por minuto (TPM) 50.000 100.000
Limite diário de requisições 100 1.000
Janela de rajada 60 segundos 60 segundos

A tabela acima mostra os limites padrão para os dois tiers mais comuns da API Perplexity. Se você está no tier gratuito, sua janela de rajada ainda é de 60 segundos, mas seu limite de RPM é de apenas 5. Enviar 3 requisições em um segundo usa 60% do seu orçamento, deixando espaço para apenas mais 2 requisições nos 59 segundos restantes.

Para evitar erros 429 no tier gratuito, adicione um atraso de 12 segundos entre as requisições. Isso mantém você abaixo do limite de 5 RPM, pois envia no máximo 1 requisição a cada 12 segundos, o que equivale a 5 requisições por minuto.

Após implementar as correções acima, você pode manter suas chamadas à API Perplexity funcionando sem erros 429, mesmo quando seu uso total é baixo. Em seguida, revise o código de tratamento de erros da sua aplicação para garantir que ele registre o corpo da resposta de um erro 429. O corpo geralmente contém um campo retry_after em segundos que você pode usar para definir o tempo de espera exato em vez de adivinhar. Esse campo é mais preciso do que um atraso fixo, pois reflete o tempo real até que a janela de taxa seja redefinida.

ADVERTISEMENT