Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La limitación de tasa de la API es un desafío común al desarrollar aplicaciones que dependen de las API en la nube. Estas son las técnicas que puede usar para controlarla:
- Use la limitación de velocidad. Si la API que usa admite la limitación de velocidad, use la información de limitación de velocidad que envía la API para asegurarse de que la aplicación no supere los límites de la API.
- Controle los encabezados Retry-After. Algunas API envían un
Retry-Afterencabezado en su respuesta cuando se limita una solicitud. Si se produce una limitación de ancho de banda y la respuesta incluye un encabezadoRetry-After, espera el tiempo especificado antes de enviar otra solicitud. - Implementar el retroceso exponencial. Si la API que usa no envía la cabecera
Retry-After, implemente un algoritmo de retroceso exponencial con jitter aleatorio. Después de cada solicitud con error, espere el doble de tiempo antes de volver a intentarlo y deje de intentarlo después de unos pocos intentos. Esperar más tiempo le ayuda a reducir la carga en la API y aumenta las posibilidades de que las siguientes solicitudes se realicen correctamente. - Saber cuándo no volver a intentarlo. Algunos errores similares a la limitación significan que la cuota o los créditos se han agotado, por ejemplo, openAI
credit_balance_exhausted. Volver a intentar esas cosas no ayuda, así que deténgase e indique al usuario. - Almacenar en caché los datos recibidos anteriormente. Almacene en caché las respuestas de la API, especialmente para las solicitudes que probablemente devuelvan los mismos datos. El almacenamiento en caché le ayuda a reducir el número de llamadas realizadas a la API y mantenerse dentro de los límites de velocidad.
- Solicitudes de cola. Implemente una cola para las solicitudes de API salientes para administrar la tasa de solicitudes y asegúrese de que no se superen los límites de velocidad de la API.
- Optimice las llamadas API. Capture solo los datos que necesita y use solicitudes por lotes si la API las admite. La optimización le ayuda a reducir el número de solicitudes y mantenerse dentro de los límites de solicitudes.
- Muestre al usuario lo que está sucediendo. "Ocupado, reintentar en 5 segundos" supera a un indicador de carga que nunca termina.
Una vez que hayas implementado estas técnicas en tu aplicación, comprueba que administra correctamente la limitación de ancho de banda. La lógica de reintento que nunca vio ejecutarse es la lógica de reintento que no sabe si funciona. Para ver una comparación de las formas de probarlo, consulta Cómo comprobar que tu aplicación administra la limitación de ancho de banda.
Pruébalo en tu aplicación
Dev Proxy devuelve respuestas de limitación de ancho de banda para las API que elijas, mientras que tu aplicación sigue llamando a las URL reales, y te avisa cuando tu aplicación vuelve a intentarlo antes de que Retry-After se agote el tiempo. Los valores preestablecidos están disponibles para GitHub (github-rate-limiting), OpenAI (openai-throttling), Anthropic (anthropic-throttling) y puntos de conexión de Microsoft Graph OneDrive y SharePoint (microsoft-graph-rate-limiting):
devproxy config get openai-throttling
devproxy --config-file "~dataFolder/configs/openai-throttling/.devproxy/devproxyrc.json"
Para instalar Dev Proxy, consulte Configurar Dev Proxy.