レート制限処理の実装
AI 搭載のアドベンチャー旅行予約プラットフォームである TrailBlaze では、新しい航空券セールのたびに旅程に関する質問が急増し、チャットアシスタントへの問い合わせが殺到しています。 あなたは、指数バックオフを加えて Bedrock のスロットリングに対応できるヘルパー関数を作成します。
json、time、boto3 ライブラリはあらかじめ読み込まれています。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."))