Implementando tratamento de limite de taxa
A TrailBlaze, uma plataforma de reservas de viagens de aventura com IA, desenvolveu recentemente um assistente de chat que recebe um pico de perguntas sobre roteiros sempre que surgem novas promoções de voos. Você vai criar uma função auxiliar que lide com o throttling do Bedrock adicionando um retrocesso exponencial.
As bibliotecas json, time e boto3 já estão carregadas. O cliente bedrock e o model_id também já foram carregados.
Este exercício faz parte do curso
Introdução ao Amazon Bedrock
Instruções do exercício
- Complete a string de requisição da API com o prompt.
- Implemente o retrocesso exponencial.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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."))