Implementierung der Begrenzung der Verarbeitungsrate
TrailBlaze, eine KI-gesteuerte Buchungsplattform für Abenteuerreisen, hat kürzlich einen Chat-Assistenten entwickelt, der bei neuen Flugangeboten mit einer Flut von Fragen zur Reiseroute konfrontiert wird. Du wirst eine Hilfsfunktion erstellen, die mit der Drosselung von Bedrock umgeht, indem du ein exponentielles Backoff hinzufügst.
Die Bibliotheken „ json
“, „ time
“ und „ boto3
“ sind schon installiert. Der Client „ bedrock
“ und „ model_id
“ sind auch schon installiert.
Diese Übung ist Teil des Kurses
Einführung in Amazon Bedrock
Anleitung zur Übung
- Vervollständige die API-Anfragezeichenfolge mit der Eingabeaufforderung.
- Exponentielles Backoff implementieren.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
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."))