핵심 요약
비정형 데이터에서 정보를 추출하는 기존 방식은 리소스 집약적이고 유연성이 부족한 한계가 있다. 이 아티클은 Amazon Bedrock의 Claude Tool Use(함수 호출) 기능을 활용하여 별도의 모델 학습 없이 자연어 프롬프트와 JSON 스키마 정의만으로 엔티티를 인식하는 방법을 제시한다. 사용자가 S3에 문서를 업로드하면 Lambda가 트리거되어 Claude 4.5 Sonnet 모델에 데이터를 전달하고, 모델은 정의된 스키마에 맞춰 구조화된 데이터를 추출한다. 실제 운전면허증 이미지에서 이름, 주소, 면허 번호 등을 정확히 추출하는 과정을 코드를 통해 증명하며, 이는 다양한 문서 처리 자동화에 즉시 적용 가능하다.
배경
AWS 계정 및 Bedrock 접근 권한, Python 및 JSON 기초 지식, IAM 역할 및 정책 설정 이해
대상 독자
AWS 기반 AI 애플리케이션 개발자 및 문서 자동화 솔루션 설계자
의미 / 영향
이 방식은 전통적인 OCR 및 개체명 인식(NER) 모델 구축 비용을 획기적으로 낮춘다. 특히 다양한 양식의 문서를 처리해야 하는 금융, 의료 분야에서 빠른 프로토타이핑과 배포를 가능하게 한다.
섹션별 상세

import boto3, json
import base64
def lambda_handler(event, context):
bedrock = boto3.client("bedrock-runtime")
s3 = boto3.client("s3")
bucket = event["Records"][0]["s3"]["bucket"]["name"]
key = event["Records"][0]["s3"]["object"]["key"]
file = s3.get_object(Bucket=bucket, Key=key)
# Convert image to base64
image_data = file["Body"].read()
base64_image = base64.b64encode(image_data).decode('utf-8')
# Define tool schema
tools = [{
"name": "extract_license_fields",
"input_schema": {
"type": "object",
"properties": {
"first_name": { "type": "string" },
"last_name": { "type": "string" },
"issue_date": { "type": "string" },
"license_number": { "type": "string" },
"address": {
"type": "object",
"properties": {
"street": { "type": "string" },
"city": { "type": "string" },
"state": { "type": "string" },
"zip": { "type": "string" }
}
}
},
"required": ["first_name", "last_name", "issue_date", "license_number", "address"]
}
}]
payload = {
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 2048,
"messages": [{
"role": "user",
"content": [
{ "type": "image", "source": { "type": "base64", "media_type": "image/jpeg", "data": base64_image } },
{ "type": "text", "text": "Extract the driver's license fields from this image." }
]
}],
"tools": tools
}
// ...(중략)S3에서 이미지를 가져와 Base64로 인코딩한 후 Claude 4.5 Sonnet 모델에 도구 스키마와 함께 전달하는 Lambda 함수 핵심 로직


실무 Takeaway
- Amazon Bedrock의 Claude Tool Use를 적용하면 별도의 OCR 모델 학습 없이도 비정형 이미지에서 정형 데이터를 정확하게 추출할 수 있다.
- Lambda 함수의 타임아웃을 기본 3초에서 1~2분으로 상향 조정해야 대용량 이미지 처리 시 발생하는 실행 중단 오류를 방지할 수 있다.
- 결정론적인 결과가 필요한 프로덕션 환경에서는 tool_choice를 auto 대신 특정 도구 이름으로 고정하여 모델의 응답 일관성을 확보해야 한다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.