Aan de slagGa gratis aan de slag

Omgaan met snelheidslimieten (rate limiting)

TrailBlaze, een AI-gestuurde boekingsplatform voor avontuurlijke reizen, heeft onlangs een chatassistent ontwikkeld die een golf aan reisvragen krijgt zodra er nieuwe vluchtdeals verschijnen. Je bouwt een helperfunctie die omgaat met throttling in Bedrock door exponentiële backoff toe te passen.

De bibliotheken json, time en boto3 zijn al geladen. De bedrock-client en model_id zijn ook vooraf geladen.

Deze oefening maakt deel uit van de cursus

Introductie tot Amazon Bedrock

Cursus bekijken

Oefeninstructies

  • Vul de API-aanvraagstring aan met de prompt.
  • Implementeer exponentiële backoff.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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."))
Code bewerken en uitvoeren