Riferimento API
Limiti di frequenza e retry
#Come funzionano i limiti
Limiti RPM e RPD per chiave. Con un 429 il gateway invia Retry-After; i limiti upstream sono protetti da circuit breaker, così un canale difettoso non sovraccarica l'intera infrastruttura.
I limiti sono per chiave, quindi distribuire i progetti su più chiavi ne isola le limitazioni. I limiti a livello di chiave si modificano in Console → Chiavi API.
#Riprovare nel modo giusto
Rispetta Retry-After quando presente, altrimenti usa un backoff esponenziale con jitter. Limita il numero totale di tentativi — è meglio segnalare al chiamante un modello del tutto fuori servizio che riprovarlo all'infinito.
backoff.py
import time, requests
def call_with_backoff(url, headers, body, tries=5):
for i in range(tries):
r = requests.post(url, headers=headers, json=body)
if r.status_code != 429:
return r
# Respect Retry-After (seconds); fall back to 2**i backoff.
wait = int(r.headers.get("Retry-After", 2 ** i))
time.sleep(wait)
r.raise_for_status()Non hai ancora risolto?
Inviaci l'ID richiesta o il messaggio di errore e verificheremo.