Note
Function Calling & Tool Use
Function Calling 개념, 기존 함수 호출과 차이, Converse Tool Use 구현, ReAct 루프
⏱ 35분
23 / 189
Function Calling & Tool Use
Function Calling 개념, 기존 함수 호출과 차이, Converse Tool Use 구현, ReAct 루프
모든 호출은 Runtime을 지난다
InvokeModel부터 Converse · 함수 호출 · 멀티모달까지
🖼️
멀티모달
이미지·문서 입력 · Canvas 이미지 생성
PART 6 · 멀티모달
멀티모달 워크플로우
분석과 생성은 다른 API — 방향이 갈리는 두 트랙
입력 · 분석
Converse
- 이미지·비디오·문서를 content 블록으로 입력
- 모델이 내용을 이해하고 설명·지시 생성
- 텍스트와 같은 층위 — 기존 대화 코드 그대로
생성
InvokeModel · 비동기 API
- 이미지 — InvokeModel(Nova Canvas)
- 비디오 — StartAsyncInvoke/GetAsyncInvoke (Nova Reel, EOL 2026-09-30)
- 결과는 base64 — 디코딩 후 저장 또는 S3 업로드
takeaway
분석 입력은 Converse, 이미지 생성은 InvokeModel(Canvas), 비디오 생성은 비동기 API(Reel) — API가 역할을 나눕니다.
PART 6 · 멀티모달
멀티모달 입력 — 이미지 분석
이미지도 content 블록 하나 — text와 나란히 넣으면 끝
python
with open('sales-chart.png', 'rb') as f:
image_bytes = f.read()
response = bedrock_runtime.converse(
modelId='us.anthropic.claude-sonnet-4-6',
messages=[{'role': 'user', 'content': [
{'text': '이 차트의 추세를 두 줄로 설명해줘'},
{'image': {'format': 'png',
'source': {'bytes': image_bytes}}},
]}],
)
print(response['output']['message']['content'][0]['text'])
- content 배열에 image 블록 추가 — 텍스트와 같은 층위
- format — png · jpeg · gif · webp
- 문서는 document 블록(PDF·txt·docx 등), 비디오는 video 블록 — 같은 패턴
PART 6 · 멀티모달
Nova Canvas 생성 코드
이미지 생성은 InvokeModel — Canvas 네이티브 포맷으로 요청
python
body = json.dumps({
'taskType': 'TEXT_IMAGE',
'textToImageParams': {'text': '노을 지는 서울 스카이라인, 수채화'},
'imageGenerationConfig': {
'numberOfImages': 1, 'width': 1024, 'height': 1024,
},
})
response = bedrock_runtime.invoke_model(
modelId='amazon.nova-canvas-v1:0', body=body)
output = json.loads(response['body'].read())
image_b64 = output['images'][0] # base64 — 디코드 후 저장/S3 업로드
- 생성 모델은 Converse 미지원 — InvokeModel 네이티브 포맷 전용
- taskType — TEXT_IMAGE 외 인페인팅·배경 교체 등 과업별 상이
- 프롬프트 구체성이 품질을 가름 — 피사체·스타일·조명까지 명시
- 응답은 base64 이미지 배열 — 비디오(Nova Reel)는 StartAsyncInvoke 비동기
실습 — InvokeModel · Converse API
⏱ 120분
두 Runtime API를 직접 호출합니다 — 네이티브 포맷부터 Tool Use 챗봇까지
학습 목표
- InvokeModel — 네이티브 포맷 호출과 스트리밍 응답 처리
- Nova Canvas 이미지 · Nova Reel 비디오 생성
- Converse — 멀티턴 대화 · 스트리밍 · Tool Use
- Streamlit 챗봇 UI로 두 API 통합 마무리
포맷은 모델마다 달라도, 코드는 하나면 됩니다.
InvokeModel · 추론 파라미터 · Converse · 함수 호출 · 멀티모달 — 운영 패턴은 추론 인프라 모듈에서