CommencezCommencez gratuitement

Mettre en place la gestion de la limitation du débit

TrailBlaze, une plateforme de réservation de voyages d'aventure propulsée par l'IA, a récemment lancé un assistant de clavardage qui reçoit une vague de questions d'itinéraires dès que de nouvelles offres de vols sont publiées. Vous allez créer une fonction utilitaire qui gère l'étranglement de Bedrock en ajoutant un repli exponentiel.

Les bibliothèques json, time et boto3 sont déjà chargées. Le client bedrock et model_id sont également préchargés.

Cette activité fait partie du cours

Introduction à Amazon Bedrock

Voir le cours

Instructions de l’exercice

  • Complétez la chaîne de la requête API avec le prompt.
  • Mettez en œuvre le repli exponentiel.

Exercice interactif pratique

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

def smart_retry(prompt, max_attempts=3):
  base_delay = 0.5
  
  for attempt in range(max_attempts):
    try:
      # Complete the API request string with the prompt
      response = bedrock.invoke_model(
        modelId=model_id,
        body=json.dumps({"anthropic_version": "bedrock-2023-05-31", "max_tokens": 100,
                         "messages": [{"role": "user", "content": [{"type": "text", "text": ____}]}]}))
      return json.loads(response["body"].read().decode())["content"][0]["text"]
    
    except Exception as e:
      if "ThrottlingException" in str(e):
        # Implement exponential backoff
        time.sleep(____)
      else: raise e
  return "Max retries exceeded"

print(smart_retry("Tell me about hiking in Patagonia."))
Modifier et exécuter le code