CommencezCommencez gratuitement

Éviter les limites de débit avec des reprises (retry)

Vous avez créé une fonction pour exécuter des complétions de clavardage avec un message personnalisé, mais vous avez remarqué qu'elle échoue parfois à cause des limites de débit. Vous décidez d'utiliser le décorateur @retry de la bibliothèque tenacity pour éviter les erreurs lorsque c'est possible.

Cette activité fait partie du cours

Développer des systèmes d'IA avec l'API d'OpenAI

Voir le cours

Instructions de l’exercice

  • Importez la bibliothèque tenacity avec les fonctions requises : retry, wait_random_exponential et stop_after_attempt.
  • Créez un client de l'API OpenAI.
  • Complétez les décorateurs de reprise avec les paramètres nécessaires pour commencer les reprises à un intervalle de 5 secondes, jusqu'à 40 secondes, et pour arrêter après 4 tentatives.

Si l'exercice expire, assurez-vous que les valeurs d'intervalle et de tentatives correspondent exactement à celles indiquées ci-dessus.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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."}))
Modifier et exécuter le code