CommencerCommencer gratuitement

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

TrailBlaze, une plateforme de réservation de voyages d’aventure dopée à l’IA, vient de lancer un assistant de chat qui reçoit un afflux de questions d’itinéraires à chaque nouvelle promo sur les vols. Vous allez créer une fonction utilitaire qui gère la limitation Bedrock en ajoutant un backoff exponentiel.

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

Cet exercice fait partie du cours

Introduction à Amazon Bedrock

Afficher le cours

Instructions

  • Complétez la chaîne de requête API avec le prompt.
  • Implémentez un backoff exponentiel.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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