Lidando com respostas de API e erros

Introdução ao Amazon Bedrock

Nikhil Rangarajan

Data Scientist

Gerenciando limites de taxa

  • Implemente backoff exponencial
  • Otimize o uso da API com retries inteligentes
def backoff_retry(max_retries=3, 
                  init_delay=1):

for attempt in range(max_retries): try: response = bedrock.invoke_model()
# Retries quando houver exceção except Exception as e: if "ThrottlingException" in str(e): # Backoff exponencial time.sleep(base_delay * (2 ** attempt))
Introdução ao Amazon Bedrock

Processando respostas em lote

  • Processe várias requisições com eficiência
  • Trate respostas em lote com segurança
  • Mantenha performance ideal
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]]
Introdução ao Amazon Bedrock

Pós-processamento da resposta

  • Valide a estrutura da resposta
  • Carregue e faça o parse do corpo
  • Verifique a chave esperada
  • Garanta qualidade de dados consistente
def postprocess_response(response):

data=json.loads(response['body'] .read())
if 'content' in data: return data['content'].strip()
return None
Introdução ao Amazon Bedrock

Recuperação de erros

  • Implemente estratégias de fallback — plano B quando o modelo principal falhar
  • Trate erros específicos do modelo
  • Garanta confiabilidade em produção
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")
Introdução ao Amazon Bedrock

Vamos praticar!

Introdução ao Amazon Bedrock

Preparing Video For Download...