요청 및 응답 스키마
요청 스키마는 Invoke API(스트리밍 및 비스트리밍)와 Converse API 사이에서 거의 동일합니다. 주요 차이는 바이너리 데이터(이미지, 비디오, 오디오)가 인코딩되는 방식입니다. Converse API는 바이너리 배열을 사용하지만, Invoke API는 Base64 인코딩 문자열을 사용합니다.
전체 요청 구조
다음에서는 Amazon Nova 모델의 전체 요청 구조를 보여줍니다. 필수로 표시되지 않는 한 모든 필드는 선택 사항입니다.
{ "system": [ { "text": "string" } ], "messages": [ // Required { "role": "user", // Required - first turn must be user "content": [ // Required { "text": "string" }, { "image": { "format": "jpeg" | "png" | "gif" | "webp", // Required "source": { // Required "bytes": image // Binary array (Converse) or Base64 string (Invoke) } } }, { "video": { "format": "mkv" | "mov" | "mp4" | "webm" | "three_gp" | "flv" | "mpeg" | "mpg" | "wmv", "source": { // Option 1: S3 location "s3Location": { "uri": "string", // e.g., s3://my-bucket/object-key "bucketOwner": "string" // Optional, e.g., "123456789012" }, // Option 2: File bytes "bytes": video // Binary array (Converse) or Base64 string (Invoke) } } }, { "audio": { // Nova 2 Omni and Sonic only "format": "mp3" | "opus" | "wav" | "aac" | "flac" | "mp4" | "ogg" | "mkv", "source": { // Option 1: S3 location "s3Location": { "uri": "string", "bucketOwner": "string" // Optional }, // Option 2: File bytes "bytes": audio // Binary array (Converse) or Base64 string (Invoke) } } } ] }, { "role": "assistant", "content": [ { "text": "string" // For prefilling assistant response } ] } ], "inferenceConfig": { // All optional "maxTokens": int, // 1-5000, default: dynamic "temperature": float, // 0.00001-1, default: 0.7 "topP": float, // 0-1, default: 0.9 "topK": int, // 0-128, default: not used "stopSequences": ["string"], "reasoningConfig": { // Nova 2 Lite and Sonic only "type": "enabled" | "disabled", // default: "disabled" "maxReasoningEffort": "low" | "medium" | "high" } }, "toolConfig": { // Optional "tools": [ { "toolSpec": { "name": "string", // Max 64 characters "description": "string", "inputSchema": { "json": { "type": "object", "properties": { "arg1": { "type": "string", "description": "string" } }, "required": ["string"] } } } } ], "toolChoice": { // Choose one option "auto": {}, "any": {}, "tool": { "name": "string" } } } }
주요 요청 파라미터:
-
system: 컨텍스트 및 지침을 제공하는 시스템 프롬프트 -
messages: 역할(사용자 또는 어시스턴트) 및 콘텐츠를 포함하는 대화 턴 배열 -
inferenceConfig: 모델 출력 동작(온도, 토큰 등) 제어 -
toolConfig: 함수 직접 호출을 위한 도구 사양
참고
Converse API를 사용하는 경우 inferenceConfig 대신 additionalModelRequestFields에서 topK 및 reasoningConfig 파라미터를 배치해야 합니다.
다음 섹션에서는 각 요청 파라미터에 대한 자세한 설명을 제공합니다.
system – (선택 사항) 요청에 대한 시스템 프롬프트입니다. 시스템 프롬프트에서는 특정 목표 또는 역할 지정과 같은 컨텍스트와 지침을 Amazon Nova에 제공합니다.
messages – (필수) 대화 턴을 포함하는 입력 메시지 배열입니다.
-
role- (필수) 대화 턴의 역할입니다. 유효 값은user및assistant입니다. 첫 번째 메시지는 항상user역할을 사용해야 합니다. -
content– (필수) 콘텐츠 블록의 배열입니다. 각 블록은 콘텐츠 유형(text,image,video또는audio)을 지정합니다.-
text- 대화 턴의 텍스트 콘텐츠입니다. 이미지 또는 비디오와 결합된 경우 함께 제공되는 텍스트로 해석됩니다. -
image– (Nova 2 Lite에서 지원되지 않음) 다음을 포함하는 이미지 콘텐츠:-
format– (필수) 이미지 형식:jpeg,png,webp또는gif -
source.bytes– (필수) 바이너리 배열(Converse API) 또는 Base64 문자열(Invoke API)의 이미지 데이터
-
-
video– (Nova 2 Lite에서 지원되지 않음) 다음을 포함하는 비디오 콘텐츠:-
format– (필수) 비디오 형식:mkv,mov,mp4,webm,three_gp,flv,mpeg,mpg또는wmv -
source– (필수) S3 URI(s3Location.uri및 선택적bucketOwner) 또는 파일 바이트(bytes)를 통한 비디오 소스
-
-
audio– (Amazon Nova Sonic만 해당) 다음을 포함하는 오디오 콘텐츠:-
format– (필수) 오디오 형식:mp3,opus,wav,aac,flac,mp4,ogg또는mkv -
source– (필수) S3 URI 또는 파일 바이트를 통한 오디오 소스
-
-
inferenceConfig – (선택 사항) 모델 출력 생성을 제어하는 구성 파라미터입니다.
-
maxTokens– (선택 사항) 중지하기 전에 생성할 최대 토큰 수입니다. Amazon Nova 모델은 이 제한에 도달하기 전에 중지될 수 있습니다. 최대값은 5,000입니다. 지정하지 않으면 요청 컨텍스트를 기반으로 동적 기본값을 사용합니다. -
temperature– (선택 사항) 응답의 무작위성입니다. 유효한 범위: 0.00001~1(기본값: 0.7). 값이 낮을수록 더 결정적인 출력이 생성됩니다. -
topP– (선택 사항) Nucleus 샘플링 임계치입니다. 누적 확률이topP에 도달하는 토큰에서 Amazon Nova 샘플입니다. 유효한 범위: 0~1(기본값: 0.9). 둘 다가 아닌temperature또는topP중 하나를 조정합니다. -
topK– (선택 사항) 최상위 K개의 토큰에서만 샘플을 구합니다. 확률이 낮은 응답을 제거합니다. 유효한 범위: 0~128(기본값: 사용되지 않음).참고
Converse API의 경우
additionalModelRequestFields에서topK를 전달합니다. -
stopSequences– (선택 사항) 발생 시 생성을 중지하는 문자열 배열입니다. -
reasoningConfig– (Amazon Nova Sonic만 해당) 추론 구성:-
type– (선택 사항)enabled또는disabled(기본값:disabled) -
maxReasoningEffort- 컴퓨팅 작업:low,medium또는high.low및medium을 사용하면 추론 스트림이 증분식으로 스트리밍되고high는 최종 청크에서 추론을 출력합니다.
참고
Converse API의 경우
additionalModelRequestFields에서reasoningConfig를 전달합니다. -
toolConfig – (선택 사항) ToolConfiguration 스키마에 따른 도구 구성입니다.
-
tools-name,description및inputSchema를 사용하는 도구 사양 배열 -
toolChoice– (선택 사항) 다음과 같이 도구 선택을 제어합니다.-
auto- 모델이 사용할 도구와 도구의 사용 여부를 결정함 -
any- 모델이 하나 이상의 도구를 사용해야 함 -
tool- 모델이 이름을 기준으로 지정된 도구를 사용해야 함
-
전체 응답 구조
다음에서는 Amazon Nova 모델의 전체 응답 구조를 보여줍니다.
{ "ResponseMetadata": { "RequestId": "string", "HTTPStatusCode": int, "HTTPHeaders": { "date": "string", "content-type": "application/json", "content-length": "string", "connection": "keep-alive", "x-amzn-requestid": "string" }, "RetryAttempts": 0 }, "output": { "message": { "role": "assistant", "content": [ { "reasoningContent": { // Optional - if reasoning enabled "reasoningText": { "text": "[REDACTED]" } } }, { "toolUse": { // Optional - if tool called "toolUseId": "string", "name": "string", "input": {} // Tool-specific arguments } }, { "text": "string" // Optional - text response }, { "image": { // Optional - Nova 2 Omni only "format": "png", "source": { "bytes": image // Binary array (Converse) or Base64 string (Invoke) } } } ] } }, "stopReason": "string", // See stop reasons below "usage": { "inputTokens": int, "outputTokens": int, "totalTokens": int }, "metrics": { "latencyMs": int } }
중지 이유:
-
end_turn: 자연스러운 응답 종료 -
max_tokens: maxTokens 제한에 도달함 -
content_filtered: 콘텐츠 정책을 위반함 -
malformed_model_output: 유효하지 않은 모델 출력 -
malformed_tool_use: 유효하지 않은 도구 사용 출력 -
service_unavailable: 기본 제공 도구 서비스에 연결할 수 없음 -
invalid_query: 기본 제공 도구에 대한 유효하지 않은 쿼리 -
max_tool_invocations: 도구 재시도 횟수가 소진됨
다음 섹션에서는 각 응답 필드에 대한 자세한 설명을 제공합니다.
output – (필수) 모델의 응답 메시지를 포함합니다.
-
message– (필수) 역할 및 콘텐츠 배열을 포함하는 어시스턴트의 응답 메시지입니다. -
content– (필수) 다음을 포함할 수 있는 콘텐츠 블록 배열입니다.-
reasoningContent– (선택 사항) 추론이 활성화된 경우 반환됩니다. 항상 응답에서[REDACTED]인 추론 텍스트를 포함합니다. -
toolUse– (선택 사항) 도구가 호출된 경우 반환됩니다. 도구 사용 ID, 이름 및 입력 인수를 포함합니다. -
text– (선택 사항) 모델이 텍스트 콘텐츠로 응답한 경우 반환됩니다. -
image– (선택 사항, 전용) 모델이 이미지를 생성한 경우 반환됩니다. 항상 PNG 형식입니다.
-
stopReason – (필수) 모델이 출력 생성을 중지한 이유를 나타냅니다.
-
end_turn- 자연스러운 응답 종료에 도달함 -
max_tokens- maxTokens 제한 또는 모델의 최대 출력 제한에 도달함 -
content_filtered- 출력이 AWS의 책임 있는 AI 정책을 위반함 -
malformed_model_output- 모델이 유효하지 않은 출력을 생성함 -
malformed_tool_use- 모델이 유효하지 않은 도구 사용 출력을 생성함 -
service_unavailable- 기본 제공 도구 서비스에 연결할 수 없음 -
invalid_query- 기본 제공 도구에 대한 쿼리가 유효하지 않음 -
max_tool_invocations- 기본 제공 도구가 재시도 후 유효한 결과를 생성하지 않음
usage – (필수) 토큰 사용량 정보:
-
inputTokens- 모델에서 수집한 총 토큰 -
outputTokens- 생성된 토큰 수 -
totalTokens- 입력 및 출력 토큰의 합계
metrics – (필수) 성능 지표:
-
latencyMs- 총 추론 완료 시간(밀리초)