Evitare i rate limit con i retry
Hai creato una funzione per eseguire Chat Completions con un messaggio personalizzato, ma a volte fallisce a causa dei rate limit. Decidi di usare il decorator @retry della libreria tenacity per evitare gli errori quando possibile.
Questo esercizio fa parte del corso
Sviluppare sistemi di AI con l'API di OpenAI
Istruzioni dell'esercizio
- Importa la libreria
tenacitycon le funzioni necessarie:retry,wait_random_exponentialestop_after_attempt. - Crea un client dell'API OpenAI.
- Completa i decorator di retry con i parametri necessari per iniziare a ritentare a intervalli di 5 secondi, fino a 40 secondi, e per interrompere dopo 4 tentativi.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Import the tenacity library
from ____ import ____
client = OpenAI(api_key="")
# Add the appropriate parameters to the decorator
@retry(____, ____)
def get_response(model, message):
response = client.chat.completions.create(
model=model,
messages=[message]
)
return response.choices[0].message.content
print(get_response("gpt-4o-mini", {"role": "user", "content": "List ten holiday destinations."}))