Mulai sekarangMulai 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 merupakan bagian dari kursus

Pengantar Amazon Bedrock

Lihat Kursus

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