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
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."))