Mengimplementasikan penanganan batas laju (rate limit)
TrailBlaze, sebuah platform pemesanan wisata petualangan bertenaga AI, baru saja mengembangkan asisten chat yang mengalami lonjakan pertanyaan rencana perjalanan setiap kali ada promo penerbangan baru. Anda akan membangun fungsi pembantu yang mengatasi throttling Bedrock dengan menambahkan exponential back-off.
Pustaka json, time, dan boto3 sudah dimuat. Klien bedrock dan model_id juga sudah disiapkan.
Latihan ini adalah bagian dari kursus
Pengantar Amazon Bedrock
Petunjuk latihan
- Lengkapi string permintaan API dengan prompt.
- Implementasikan exponential backoff.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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."))