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 merupakan bagian dari kursus
Pengantar Amazon Bedrock
Instruksi latihan
- Lengkapi string permintaan API dengan prompt.
- Implementasikan exponential backoff.
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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."))