MulaiMulai sekarang secara gratis

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

Lihat Kursus

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."))
Edit dan Jalankan Kode