Gérer les réponses et les erreurs d'API

Introduction à Amazon Bedrock

Nikhil Rangarajan

Data Scientist

Gérer les limites de débit

  • Mettre en place un repli exponentiel
  • Optimiser l'usage de l'API avec des reprises judicieuses
def backoff_retry(max_retries=3, 
                  init_delay=1):

for attempt in range(max_retries): try: response = bedrock.invoke_model()
# Retries when we have an exception except Exception as e: if "ThrottlingException" in str(e): # Exponential backoff time.sleep(base_delay * (2 ** attempt))
Introduction à Amazon Bedrock

Traitement par lots des réponses

  • Traiter plusieurs requêtes efficacement
  • Gérer les réponses par lots en toute sécurité
  • Maintenir un rendement optimal
def process_batch(prompts, batch=5):
  results = []
  for i in range(0, len(prompts), 
                 batch):
    responses = [invoke_model(p) for p 
                 in prompts[i:i+batch]]
Introduction à Amazon Bedrock

Posttraitement des réponses

  • Valider la structure de la réponse
  • Charger et analyser le corps de la réponse
  • Vérifier la clé attendue
  • Assurer une qualité de données constante
def postprocess_response(response):

data=json.loads(response['body'] .read())
if 'content' in data: return data['content'].strip()
return None
Introduction à Amazon Bedrock

Récupération après erreur

  • Mettre en place des stratégies de repli : plan B si le modèle principal a un enjeu
  • Gérer les erreurs propres au modèle
  • Assurer une fiabilité de niveau production
try:
    response = bedrock.invoke_model(modelId="anthropic.claude-3-5-sonnet-v2:0", 
        body=json.dumps(request_body))

except ClientError: response = bedrock.invoke_model(modelId="amazon.nova-lite-v1:0")
Introduction à Amazon Bedrock

Passons à la pratique !

Introduction à Amazon Bedrock

Preparing Video For Download...