{"output": {"message": {"role": "assistant",
"content": [{"text": "1. 3분기 예산 확정
2. 출시 일정 9월 합의
3. QA 담당 지정"}]}},
// end_turn 정상 · tool_use면 함수 호출 루프
"stopReason": "end_turn",
// 과금·모니터링 기준
"usage": {"inputTokens": 1873,
"outputTokens": 96,
"totalTokens": 1969}}
inferenceConfig — temperature·maxTokens를 표준 필드로 지정
응답 경로 고정 — output.message.content[0].text, 모델 전환 시에도 그대로
PART 4 · Converse API 구현
Converse 스트리밍 호출
메서드만 converse_stream으로 — 이벤트 스키마도 모델 무관 동일
python
response = bedrock_runtime.converse_stream(
modelId='us.anthropic.claude-sonnet-4-6',
messages=[{'role': 'user',
'content': [{'text': '이 회의록을 3줄로 요약해 줘'}]}],
)
# 이벤트 루프 — 통합 스키마라 모델이 바뀌어도 이 코드 그대로
for event in response['stream']:
if 'contentBlockDelta' in event:
print(event['contentBlockDelta']['delta']['text'],
end='', flush=True)
elif 'messageStop' in event:
stop_reason = event['messageStop']['stopReason']
요청은 동기 호출과 동일 — 메서드만 converse_stream
contentBlockDelta — 텍스트 델타 · messageStop — stopReason
usage는 마지막 metadata 이벤트에 — Invoke와 달리 이벤트 이름이 모델 무관
PART 4 · Converse API 구현
Converse 특징
메시지 지원 전 모델에 동일한 인터페이스
모델 교체 자유
modelId만 바꾸면 다른 모델로 즉시 전환
Tool Use 내장
toolConfig 필드로 함수 정의 후 자동 호출 관리
스트리밍 지원
converse_stream()으로 토큰 단위 즉시 수신
멀티모달 자동화
이미지/비디오/문서를 자동으로 처리
takeaway
네 가지 특징의 공통분모는 모델 독립성입니다 — 인터페이스 하나로 모델·모달리티·도구를 통일합니다.
포맷은 모델마다 달라도, 코드는 하나면 됩니다.
InvokeModel · 추론 파라미터 · Converse · 함수 호출 · 멀티모달 — 운영 패턴은 추론 인프라 모듈에서