การจัดการ response และข้อผิดพลาดจาก API

Amazon Bedrock เบื้องต้น

Nikhil Rangarajan

Data Scientist

การจัดการ rate limit

  • ใช้กลยุทธ์ exponential backoff
  • เพิ่มประสิทธิภาพการใช้ API ด้วย smart retries
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 เบื้องต้น

การประมวลผลแบบ batch

  • ประมวลผลคำขอหลายรายการได้อย่างมีประสิทธิภาพ
  • จัดการ batch response อย่างปลอดภัย
  • รักษาประสิทธิภาพให้อยู่ในระดับที่เหมาะสม
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 เบื้องต้น

การประมวลผล response หลังรับค่า

  • ตรวจสอบโครงสร้างของ response
  • โหลดและแปลง response body
  • ตรวจสอบว่ามี key ที่ต้องการ
  • รับประกันคุณภาพของข้อมูลให้สม่ำเสมอ
def postprocess_response(response):

data=json.loads(response['body'] .read())
if 'content' in data: return data['content'].strip()
return None
Amazon Bedrock เบื้องต้น

การกู้คืนจากข้อผิดพลาด

  • กำหนด fallback strategy — แผนสำรองเมื่อโมเดลหลักเกิดปัญหา
  • จัดการข้อผิดพลาดเฉพาะของแต่ละโมเดล
  • รับประกันความเสถียรในระดับ 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...