Hantera API-svar och fel

Introduktion till Amazon Bedrock

Nikhil Rangarajan

Data Scientist

Hantera hastighetsgränser

  • Implementera exponentiell backoff-strategi
  • Optimera API-användning med smarta återförsök
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))
Introduktion till Amazon Bedrock

Batchbearbetning av svar

  • Bearbeta flera förfrågningar effektivt
  • Hantera batchsvar på ett säkert sätt
  • Bibehåll optimal prestanda
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]]
Introduktion till Amazon Bedrock

Efterbearbetning av svar

  • Validera svarsstrukturen
  • Läs in och tolka svarets innehåll
  • Kontrollera att förväntad nyckel finns
  • Säkerställ konsekvent datakvalitet
def postprocess_response(response):

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

Felåterställning

  • Implementera reservstrategier – en backup när den primära modellen får problem
  • Hantera modellspecifika fel
  • Säkerställ driftsäkerhet i produktionsmiljö
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")
Introduktion till Amazon Bedrock

Nu kör vi en övning!

Introduktion till Amazon Bedrock

Preparing Video For Download...