Обработка ответов API и ошибок

Введение в Amazon Bedrock

Nikhil Rangarajan

Data Scientist

Управление ограничениями частоты запросов

  • Реализация стратегии экспоненциальной задержки
  • Оптимизация запросов к API с повторными попытками
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))
Введение в Amazon Bedrock

Пакетная обработка ответов

  • Эффективная обработка множества запросов
  • Безопасная обработка пакетных ответов
  • Поддержание оптимальной производительности
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]]
Введение в Amazon Bedrock

Постобработка ответов

  • Проверка структуры ответа
  • Загрузка и разбор тела ответа
  • Проверка наличия ожидаемого ключа
  • Обеспечение стабильного качества данных
def postprocess_response(response):

data=json.loads(response['body'] .read())
if 'content' in data: return data['content'].strip()
return None
Введение в Amazon Bedrock

Восстановление после ошибок

  • Резервные стратегии — план действий при сбое основной модели
  • Обработка ошибок, специфичных для модели
  • Надёжность на уровне 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")
Введение в Amazon Bedrock

Давайте потренируемся!

Введение в Amazon Bedrock

Preparing Video For Download...