始める無料で始める

レート制限処理の実装

AI 搭載のアドベンチャー旅行予約プラットフォームである TrailBlaze では、新しい航空券セールのたびに旅程に関する質問が急増し、チャットアシスタントへの問い合わせが殺到しています。 あなたは、指数バックオフを加えて 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."))
コードを編集して実行