Evitar la limitación de velocidad con el reintento
Has creado una función para ejecutar finalizaciones de chat con un mensaje personalizado, pero te has dado cuenta de que a veces falla debido a los límites de velocidad. Decides utilizar el Decorator @retry
de la biblioteca tenacity
para evitar errores en la medida de lo posible.
Este ejercicio forma parte del curso
Desarrollar sistemas de IA con la API de OpenAI
Instrucciones de ejercicio
- Importa la biblioteca
tenacity
con las funciones necesarias:retry
,wait_random_exponential
, ystop_after_attempt
. - Crea un cliente de la API de OpenAI.
- Completa los Decorators de reintento con los parámetros necesarios para empezar a reintentar con un intervalo de 5 segundos, hasta 40 segundos, y para parar después de 4 intentos.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este 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."}))