ComeçarComece de graça

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

Ver curso

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