Bắt đầu ngayBắt đầu miễn phí

Triển khai xử lý giới hạn tốc độ (rate limit)

TrailBlaze, một nền tảng đặt dịch vụ du lịch mạo hiểm dùng AI, gần đây đã phát triển một trợ lý chat và đang nhận làn sóng câu hỏi về lịch trình mỗi khi có ưu đãi vé máy bay mới. Bạn sẽ xây dựng một hàm trợ giúp để xử lý việc Bedrock bị giới hạn thông lượng bằng cách thêm cơ chế exponential backoff.

Các thư viện json, timeboto3 đã được nạp sẵn. bedrock client và model_id cũng đã được nạp sẵn.

Bài tập này là một phần của khóa học

Giới thiệu về Amazon Bedrock

Xem khóa học

Hướng dẫn bài tập

  • Hoàn thiện chuỗi yêu cầu API với prompt.
  • Triển khai exponential backoff.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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."))
Chỉnh sửa và Chạy Mã