Esquema de la solicitud y de la respuesta
El esquema de la solicitud es prácticamente idéntico entre la API de Invoke y la API de Converse. La diferencia principal es la forma en que se codifican los datos binarios (imágenes, video, audio): la API de Converse utiliza matrices binarias, mientras que la API de Invoke utiliza cadenas codificadas en Base64.
Estructura de la solicitud completa
A continuación, se muestra la estructura de la solicitud completa de los modelos de Amazon Nova. Todos los campos son opcionales a menos que estén marcados como obligatorios:
{ "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" } } } }
Parámetros de la solicitud clave:
-
system: petición del sistema que proporciona contexto e instrucciones -
messages: matriz de turnos de conversación con el rol (usuario o asistente) y el contenido -
inferenceConfig: control del comportamiento de salida del modelo (temperatura, tokens, etc.) -
toolConfig: especificaciones de la herramienta para la llamada a funciones
nota
Cuando se utiliza la API de Converse, los parámetros topK y reasoningConfig deben colocarse en additionalModelRequestFields y no en inferenceConfig.
En las siguientes secciones, se proporcionan explicaciones detalladas para cada parámetro de la solicitud:
system: (opcional) es la petición del sistema para la solicitud. Una petición del sistema proporciona contexto e instrucciones a Amazon Nova, por ejemplo, al especificar un objetivo o rol en particular.
messages (obligatorio): matriz de mensajes de entrada que contiene turnos de conversación.
-
role(obligatorio): el rol del turno de conversación. Los valores válidos sonuseryassistant. El primer mensaje debe utilizar siempre el roluser. -
content(obligatorio): matriz de bloques de contenido. Cada bloque especifica un tipo de contenido (text,image,videooaudio):-
text: contenido de texto del turno de conversación. Si se combina con imagen o video, se interpreta como texto adjunto. -
image(no compatible con Nova 2 Lite), contenido de imagen con:-
format(obligatorio), formato de la imagen:jpeg,png,webpogif -
source.bytes(obligatorio): datos de imagen como matriz binaria (API de Converse) o cadena en Base64 (API de Invoke)
-
-
video(no compatible con Nova 2 Lite), contenido de video con:-
format(obligatorio), formato de video:mkv,mov,mp4,webm,three_gp,flv,mpeg,mpgowmv -
source(obligatorio): origen de video mediante URI de S3 (s3Location.uriybucketOwneropcional) o bytes de archivo (bytes)
-
-
audio(solo Amazon Nova Sonic), contenido de audio con:-
format(obligatorio), formato de audio:mp3,opus,wav,aac,flac,mp4,oggomkv -
source(obligatorio): origen de audio mediante URI de S3 o bytes de archivo
-
-
inferenceConfig (opcional): parámetros de configuración que controlan la generación de salida del modelo.
-
maxTokens(opcional): número máximo de tokens que se generarán antes de detenerse. Es posible que los modelos de Amazon Nova se detengan antes de alcanzar este límite. El valor máximo es 5,000. Si no se especifica, utiliza un valor predeterminado dinámico basado en el contexto de la solicitud. -
temperature(opcional): aleatoriedad en las respuestas. Rango válido: 0,00001-1 (predeterminado: 0,7). Los valores más bajos producen una salida más determinista. -
topP(opcional): umbral de muestreo del núcleo. Amazon Nova toma muestras de tokens cuya probabilidad acumulada alcanzatopP. Rango válido: 0-1 (predeterminado: 0,9). AjustetemperatureotopP, no ambas opciones. -
topK(opcional): muestra solo de los tokens Top K. Elimina las respuestas de baja probabilidad. Rango válido: 0-128 (predeterminado: no se usa).nota
Para la API de Converse, transfiera
topKenadditionalModelRequestFields. -
stopSequences(opcional): matriz de cadenas que detienen la generación cuando se encuentran. -
reasoningConfig(solo Amazon Nova Sonic), configuración de razonamiento:-
type(opcional):enabledodisabled(predeterminado:disabled) -
maxReasoningEffort, esfuerzo computacional:low,mediumohigh. Conlowymedium, el razonamiento fluye de forma incremental;highgenera el razonamiento en un fragmento final.
nota
Para la API de Converse, transfiera
reasoningConfigenadditionalModelRequestFields. -
toolConfig (opcional): configuración de la herramienta según el esquema de ToolConfiguration.
-
tools: matriz de especificaciones de la herramienta conname,descriptionyinputSchema -
toolChoice(opcional), control de la selección de herramientas:-
auto: el modelo decide si utilizar las herramientas y qué herramientas utilizar. -
any: el modelo debe usar al menos una herramienta. -
tool: el modelo debe usar la herramienta especificada por el nombre.
-
Estructura de la respuesta completa
A continuación, se muestra la estructura de la respuesta completa de los modelos de 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 } }
Motivos de detención:
-
end_turn: fin natural de la respuesta -
max_tokens: límite de maxTokens alcanzado -
content_filtered: política de contenido infringida -
malformed_model_output: salida del modelo no válida -
malformed_tool_use: salida de uso de herramientas no válida -
service_unavailable: servicio de la herramienta integrada inaccesible -
invalid_query: consulta no válida a la herramienta integrada -
max_tool_invocations: reintentos de la herramienta agotados
En las siguientes secciones, se proporcionan explicaciones detalladas para cada campo de la respuesta:
output: (obligatorio) contiene el mensaje de respuesta del modelo.
-
message(obligatorio): mensaje de la respuesta del asistente con el rol y la matriz de contenido. -
content(obligatorio), matriz de bloques de contenido que pueden incluir lo siguiente:-
reasoningContent: (opcional) se devuelve si se ha activado el razonamiento. Contiene el texto del razonamiento, que siempre será[REDACTED]en la respuesta. -
toolUse: (opcional) se devuelve si se ha llamado a una herramienta. Contiene el ID de uso de la herramienta, el nombre y los argumentos de entrada. -
text: (opcional) se devuelve si el modelo respondió con contenido de texto. -
image: (solo opcional) se devuelve si el modelo generó una imagen. El formato siempre será PNG.
-
stopReason (obligatorio), indica el motivo por el que el modelo dejó de generar la salida:
-
end_turn: fin natural de la respuesta alcanzado -
max_tokens: límite de maxTokens o límite máximo de salidas del modelo alcanzado -
content_filtered: infracción de la política de IA responsable AWS por parte de la salida -
malformed_model_output: salida no válida producida por el modelo -
malformed_tool_use: salida de uso de herramientas no válida producida por el modelo -
service_unavailable: servicio de herramienta integrada inaccesible -
invalid_query: consulta no válida a la herramienta integrada -
max_tool_invocations: resultado válido no producido por la herramienta integrada después de reintentos
usage (obligatorio), información de uso del token:
-
inputTokens: total de tokens ingeridos por el modelo -
outputTokens: número de tokens generados -
totalTokens: suma de tokens de entrada y salida
metrics (Obligatorio), métricas de rendimiento:
-
latencyMs: tiempo total de finalización de la inferencia en milisegundos