IniziaInizia gratis

Implementare la gestione dei rate limit

TrailBlaze, una piattaforma di prenotazioni di viaggi avventura basata sull'AI, ha appena lanciato un assistente chat che riceve un picco di domande sugli itinerari ogni volta che escono nuove offerte sui voli. Costruirai una funzione helper che gestisce il throttling di Bedrock aggiungendo un backoff esponenziale.

Le librerie json, time e boto3 sono già caricate. Anche il client bedrock e model_id sono già disponibili.

Questo esercizio fa parte del corso

Introduzione ad Amazon Bedrock

Visualizza il corso

Istruzioni dell'esercizio

  • Completa la stringa della richiesta API con il prompt.
  • Implementa il backoff esponenziale.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

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."))
Modifica ed esegui il codice