开始使用免费开始使用

实现速率限制处理

TrailBlaze 是一家由 AI 驱动的探险旅行预订平台。每当出现新的机票优惠时,其聊天助理都会收到大量行程咨询。 您将构建一个辅助函数,通过加入指数退避来应对 Bedrock 的限流。

jsontimeboto3 库已预加载。bedrock 客户端和 model_id 也已预加载。

本练习是课程的一部分

Amazon Bedrock 入门

查看课程

练习说明

  • 使用提示完成 API 请求字符串。
  • 实现指数退避。

交互式实操练习

通过完成这段示例代码来试试这个练习。

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."))
编辑并运行代码