Implementando o controle de limite de taxa
A TrailBlaze, uma plataforma de reservas de viagens de aventura com inteligência artificial, criou um assistente de chat que tá recebendo um monte de perguntas sobre itinerários sempre que saem novas ofertas de voos. Você vai criar uma função auxiliar que lida com a limitação do Bedrock adicionando um back-off exponencial.
As bibliotecas json
, time
e boto3
já estão instaladas. O cliente bedrock
e model_id
também já estão instalados.
Este exercício faz parte do curso
Introdução ao Amazon Bedrock
Instruções do exercício
- Preencha a string de solicitação da API com o prompt.
- Implementar o backoff 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."))