ComeçarComece de graça

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

Ver curso

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."))
Editar e executar o código