Kom igångKom igång gratis

Implementera hantering av hastighetsbegränsning

TrailBlaze, en AI-driven bokningsplattform för äventyrsresor, har nyligen utvecklat en chattassistent som får en ström av frågor om reseplaner varje gång nya flygerbjudanden dyker upp. Du ska bygga en hjälpfunktion som hanterar Bedrocks hastighetsbegränsning genom att lägga till exponentiell backoff.

Biblioteken json, time och boto3 är förinstallerade. Klienten bedrock och model_id är också förinstallerade.

Den här övningen är en del av kursen

Introduktion till Amazon Bedrock

Visa kurs

Övningsinstruktioner

  • Komplettera API-anropssträngen med prompten.
  • Implementera exponentiell backoff.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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."))
Redigera och kör kod