ComenzarEmpieza gratis

Implementación del control de límites de velocidad

TrailBlaze, una plataforma de reservas de viajes de aventura basada en inteligencia artificial, ha desarrollado recientemente un asistente de chat que recibe una avalancha de preguntas sobre itinerarios cada vez que se publican nuevas ofertas de vuelos. Crearás una función auxiliar que se encargará de la limitación de Bedrock añadiendo un retroceso exponencial.

Las bibliotecas json, time y boto3 están precargadas. También se han precargado el cliente bedrock y model_id.

Este ejercicio forma parte del curso

Introducción a Amazon Bedrock

Ver curso

Instrucciones del ejercicio

  • Completa la cadena de solicitud API con el mensaje.
  • Implementa un 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