Home / Amazon Bedrock Runtime API / Function Calling & Tool Use
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 · 함수 호출 · 멀티모달 — 운영 패턴은 추론 인프라 모듈에서