Evitar los límites de velocidad con reintentos
Has creado una función para ejecutar Chat Completions con un mensaje personalizado, pero has notado que a veces falla debido a los límites de velocidad. Decides usar el decorador @retry de la biblioteca tenacity para evitar errores cuando sea posible.
Este ejercicio forma parte del curso
Desarrollar sistemas de IA con la API OpenAI
Instrucciones del ejercicio
"- Importa la biblioteca tenacity con las funciones requeridas: retry, wait_random_exponential y stop_after_attempt.
- Crea un cliente de la API de OpenAI.
- Completa los decoradores de reintento con los parámetros necesarios para comenzar a reintentar en un intervalo de 5 segundos, hasta 40 segundos, y detenerse después de 4 intentos.
Si el ejercicio se agota por tiempo, asegúrate de que los valores de intervalo e intentos coincidan exactamente con lo especificado arriba."
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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."}))