CommencerCommencer gratuitement

Mise en œuvre de la gestion des limites de débit

TrailBlaze, une plateforme de réservation de voyages d'aventure alimentée par l'IA, a récemment développé un assistant de chat qui reçoit un grand nombre de questions sur les itinéraires dès que de nouvelles offres de vols sont disponibles. Vous allez créer une fonction d'assistance qui gère la limitation de Bedrock en ajoutant un délai exponentiel.

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

Cet exercice fait partie du cours

Introduction à Amazon Bedrock

Afficher le cours

Instructions

  • Veuillez compléter la chaîne de requête API avec l'invite.
  • Mettre en œuvre un délai 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