Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A limitação de taxa da API é um desafio comum quando você cria aplicativos que dependem de APIs de nuvem. Aqui estão as técnicas que você pode usar para lidar com isso:
- Use limitação de velocidade. Se a API que você usa suporta limitação de taxa, use as informações sobre limite de taxa enviadas pela API para garantir que seu aplicativo não exceda os limites da API.
- Lidar com cabeçalhos Retry-After. Algumas APIs enviam um cabeçalho
Retry-Afterna resposta quando uma solicitação é limitada. Se você for limitado e a resposta tiver o cabeçalhoRetry-After, aguarde o tempo especificado antes de enviar outra solicitação. - Implementa a retirada exponencial. Se a API usada não enviar um cabeçalho
Retry-After, implemente um algoritmo de backoff exponencial com jitter aleatório. Após cada solicitação com falha, aguarde o dobro do tempo antes de tentar novamente e pare após algumas tentativas. Esperar mais tempo ajuda você a reduzir a carga na API e aumenta as chances de suas próximas solicitações serem bem-sucedidas. - Saiba quando não tentar novamente. Alguns erros semelhantes à limitação significam que sua cota ou créditos se esgotaram, por exemplo, OpenAI's
credit_balance_exhausted. Tentar novamente isso não ajuda, então pare e diga ao usuário. - Armazenar dados recebidos anteriormente no cache. Respostas de cache da API, especialmente para solicitações que provavelmente retornarão os mesmos dados. O cache ajuda você a reduzir o número de chamadas feitas à API e permanecer dentro dos limites de taxa.
- Coloque as solicitações na fila. Implemente uma fila para solicitações de API de saída para gerenciar a taxa de solicitação e garantir que os limites de taxa da API não sejam excedidos.
- Otimize as chamadas à API. Busque apenas os dados necessários e use solicitações em lote se a API der suporte a eles. A otimização ajuda você a reduzir o número de solicitações e permanecer dentro dos limites de taxa.
- Mostrar ao usuário o que está acontecendo. "Ocupado, tentando novamente em 5 segundos" bate um spinner que nunca termina.
Depois de implementar essas técnicas em seu aplicativo, teste se ele lida com a limitação de taxa corretamente. A lógica de repetição que você nunca viu executar é a lógica de repetição que você não sabe que funciona. Para obter uma comparação de maneiras de testá-lo, consulte Como testar se seu aplicativo lida com a limitação de taxa.
Teste no seu aplicativo
Dev Proxy retorna respostas de limitação de taxa para as APIs escolhidas, enquanto seu aplicativo continua chamando as URLs reais e informa quando seu aplicativo tenta novamente antes do Retry-After tempo acabar. As predefinições estão disponíveis para endpoints do GitHub (github-rate-limiting), OpenAI (openai-throttling), Anthropic (anthropic-throttling) e Microsoft Graph OneDrive e SharePoint (microsoft-graph-rate-limiting):
devproxy config get openai-throttling
devproxy --config-file "~dataFolder/configs/openai-throttling/.devproxy/devproxyrc.json"
Para instalar o Dev Proxy, consulte Configurar o Dev Proxy.