ComenzarEmpieza gratis

Implementar la gestión de límites de tasa

TrailBlaze, una plataforma de reservas de viajes de aventura con IA, ha lanzado recientemente un asistente de chat que recibe un pico de preguntas sobre itinerarios cada vez que aparecen nuevas ofertas de vuelos. Vas a crear una función auxiliar que maneje la limitación de Bedrock añadiendo un retroceso exponencial.

Las librerías json, time y boto3 están precargadas. El cliente bedrock y model_id también están precargados.

Este ejercicio forma parte del curso

Introducción a Amazon Bedrock

Ver curso

Instrucciones del ejercicio

  • Completa la cadena de la solicitud a la API con el prompt.
  • Implementa el retroceso exponencial.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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 y ejecutar código