

# Soporte multimodal para Amazon Nova
<a name="modalities"></a>

**nota**  
Esta documentación corresponde a la versión 1 de Amazon Nova. Para ver la documentación sobre la comprensión multimodal de Amazon Nova 2, consulte [Multimodal understanding](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html).

Los modelos de comprensión de Amazon Nova son modelos de comprensión multimodales, lo que significa que admiten entradas multimodales, como imágenes, videos y documentos, para inferir y responder preguntas en función del contenido proporcionado. Los modelos de Amazon Nova están equipados con capacidades de visión novedosas que permiten que el modelo comprenda y analice imágenes, documentos y videos, lo que permite realizar casos de uso de comprensión multimodal.

En la siguiente sección, se describen las directrices para trabajar con imágenes, documentos y videos en Amazon Nova. Estas incluyen las estrategias de preprocesamiento empleadas, ejemplos de código y las limitaciones relevantes que se deben tener en cuenta.

**Topics**
+ [Tipo de contenido compatible por modalidad](#modalities-content)
+ [Comprensión de imágenes](modalities-image.md)
+ [Comprensión de videos](modalities-video.md)
+ [Comprensión de documentos](modalities-document.md)
+ [Gestión de errores](text-error-handing.md)

## Tipo de contenido compatible por modalidad
<a name="modalities-content"></a>

A continuación, se detallan los formatos de archivo compatibles con el archivo multimedia y el método de entrada aceptado.


| Tipo de archivo multimedia | Formatos de archivo compatibles | **Método de entrada** | Estrategia de análisis | 
| --- |--- |--- |--- |
| Image | PNG, JPG, JPEG, GIF, WebP | Base64 URI de Amazon S3 | Comprensión visual de la imagen | 
| Documento de texto *(Solo API de Converse)* | CSV, XLS, XLSX, HTML, TXT, MD, DOC | Bytes URI de Amazon S3 | Comprensión textual únicamente del documento. | 
| Documento multimedia *(Solo API de Converse)* | PDF, DOCX | Bytes URI de Amazon S3 | Texto con comprensión de imágenes intercalada | 
| Video | MP4, MOV, MKV, WebM, FLV, MPEG, MPG, WMV, 3GP | Base64 URI de Amazon S3 | Comprensión visual del video | 

**nota**  
Puede incluir hasta cinco archivos de su ordenador o mil archivos de Amazon S3. Cada archivo no debe superar 1 GB cuando se cargue desde Amazon S3. El tamaño total de los archivos cargados no puede superar los 25 MB si se cargan desde su ordenador o los 2 GB si se cargan desde Amazon S3.

Dado que el límite total de carga útil es de 25 MB, asegúrese de tener en cuenta la sobrecarga de base64. Mientras trabaja, recuerde que las bibliotecas y los marcos mantienen la memoria, y que el contenido multimedia transmitido puede acumularse rápidamente. Al utilizar videos, especificar una `s3Location` debería aliviar muchos problemas de almacenamiento.

**nota**  
El procesamiento de videos y documentos de gran tamaño lleva tiempo, independientemente del método de entrada. Si se agota el tiempo de espera del SDK de boto3 mientras se espera una respuesta de Amazon Bedrock, asegúrese de haber establecido un valor de [read\$1timeout](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html) adecuado y haber actualizado boto3 al menos a la versión 1.38.

# Comprensión de imágenes
<a name="modalities-image"></a>

**nota**  
Esta documentación corresponde a la versión 1 de Amazon Nova. Para ver la guía sobre la comprensión de imágenes de Amazon Nova 2, consulte [Image understanding](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html#image-understanding).

Los modelos de Amazon Nova le permiten incluir varias imágenes en la carga útil con una limitación del tamaño total de la carga útil de 25 MB. Sin embargo, puede especificar un URI de Amazon S3 que contenga sus imágenes para el análisis de imágenes. Este enfoque le permite aprovechar el modelo para imágenes más grandes y más imágenes sin verse limitado por la restricción de 25 MB para la carga útil. Los modelos de Amazon Nova pueden analizar las imágenes pasadas y responder preguntas, clasificar imágenes y resumir las imágenes según las instrucciones proporcionadas.

## Información sobre el tamaño de la imagen
<a name="modalities-image-resolution"></a>

Para ofrecer los mejores resultados posibles, Amazon Nova cambia automáticamente la escala de las imágenes de entrada hacia arriba o hacia abajo en función de su relación de aspecto y resolución original. Para cada imagen, Amazon Nova identifica primero la relación de aspecto más cercana entre 1:1, 1:2, 1:3, 1:4, 1:5, 1:6, 1:7, 1:8, 1:9, 2:3, 2:4 y sus transposiciones. A continuación, se cambia la escala de la imagen para que al menos un lado mida más de 896 píxeles o la longitud del lado más corto de la imagen original, manteniendo la relación de aspecto más cercana. Hay una resolución máxima de 8000 x 8000 píxeles

## Detección del cuadro delimitador
<a name="modalities-image-bounding"></a>

Los modelos de Amazon Nova Lite y Amazon Nova Pro están entrenados para detectar con precisión cuadros delimitadores dentro de las imágenes. Esta capacidad puede resultar valiosa cuando el objetivo es obtener las coordenadas de un objeto de interés específico. La funcionalidad de detección de cuadros delimitadores del modelo de Amazon Nova lo convierte en un candidato adecuado para tareas de localización de imágenes, lo que permite una mejor comprensión de las capturas de pantalla. El modelo de Amazon Nova genera cuadros delimitadores en una escala de [0, 1000) y, una vez obtenidas estas coordenadas, se puede cambiar su tamaño en función de las dimensiones de la imagen como paso de posprocesamiento.

## Conversión de imagen a tokens
<a name="modalities-image-tokens"></a>

Como se mencionó anteriormente, las imágenes se redimensionan para maximizar la extracción de información y, al mismo tiempo, mantener la relación de aspecto. A continuación se muestran algunos ejemplos de dimensiones de imágenes de muestra y cálculos aproximados de tokens.


| Resolución de la imagen (AlxAn o AnxAl) | 900 x 450 | 900 x 900 | 1400 x 900 | 1800 x 900 | 1300 x 1300 | 
| --- |--- |--- |--- |--- |--- |
| Recuento estimado de tokens | \$1800 | \$11300 | \$11800 | \$12400 | \$12600 | 

Por ejemplo, considere una imagen de ejemplo con un tamaño de 800 x 400 para la que desea estimar el número de tokens. Según las dimensiones, para mantener una relación de aspecto de 1:2, la resolución más cercana es de 900 x 450. Por lo tanto, el recuento aproximado de tokens para esta imagen es de unos 800 tokens.

# Limitaciones de la comprensión de imágenes
<a name="modalities-image-limitations"></a>

Comprenda las siguientes limitaciones de Amazon Nova:
+ **Comprensión de imágenes multilingües:** los modelos tienen una comprensión limitada de las imágenes y los fotogramas de video multilingües y pueden tener dificultades o alucinar al realizar tareas similares.
+ **Identificación de personas**: los modelos de Amazon Nova no admiten la capacidad de identificar o nombrar a personas en imágenes, documentos o videos. Los modelos se negarán a realizar dichas tareas.
+ **Razonamiento espacial**: los modelos de Amazon Nova tienen capacidades de razonamiento espacial limitadas. Es posible que tengan dificultades con las tareas que requieren una localización precisa o un análisis de disposición.
+ **Texto pequeño en imágenes/videos**: si el texto de la imagen o el video es demasiado pequeño, considere la posibilidad de aumentar el tamaño relativo del texto en la imagen recortándola hasta la sección relevante y conservando el contexto necesario.
+ **Recuento**: los modelos de Amazon Nova pueden proporcionar recuentos aproximados de objetos en una imagen, pero pueden no ser siempre precisos, especialmente cuando se trata de un gran número de objetos pequeños.
+ **Contenido inapropiado**: los modelos de Amazon Nova no procesarán imágenes inapropiadas o explícitas que infrinjan la Política de uso aceptable.
+ **Aplicaciones en la atención de salud**: debido a la naturaleza sensible de estos elementos, aunque los modelos de Amazon Nova pueden ofrecer análisis generales de imágenes o videos relacionados con la atención sanitaria, no recomendamos que interprete imágenes de diagnóstico complejas. Las respuestas de Amazon Nova nunca deben considerarse un sustituto del asesoramiento médico profesional.

# Ejemplos de comprensión de imágenes
<a name="modalities-image-examples"></a>

En el siguiente ejemplo, se muestra cómo enviar una petición de imagen al modelo de Amazon Nova con [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html).

```
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
import base64
import boto3
import json
# Create a Bedrock Runtime client in the AWS Region of your choice.
client = boto3.client(
    "bedrock-runtime",
    region_name="us-east-1",
)

MODEL_ID = "us.amazon.nova-lite-v1:0"
# Open the image you'd like to use and encode it as a Base64 string.
with open("media/sunset.png", "rb") as image_file:
    binary_data = image_file.read()
    base_64_encoded_data = base64.b64encode(binary_data)
    base64_string = base_64_encoded_data.decode("utf-8")
# Define your system prompt(s).
system_list = [    {
        "text": "You are an expert artist. When the user provides you with an image, provide 3 potential art titles"
    }
]
# Define a "user" message including both the image and a text prompt.
message_list = [
    {
        "role": "user",
        "content": [
            {
                "image": {
                    "format": "png",
                    "source": {
                        "bytes": image // Binary array (Converse API) or Base64-encoded string (Invoke API)
                    },
                }
            },
            {
                "text": "Provide art titles for this image."
            }
        ],
    }
]
# Configure the inference parameters.
inf_params = {"maxTokens": 300, "topP": 0.1, "topK": 20, "temperature": 0.3}

native_request = {
    "schemaVersion": "messages-v1",
    "messages": message_list,
    "system": system_list,
    "inferenceConfig": inf_params,
}
# Invoke the model and extract the response body.
response = client.invoke_model(modelId=MODEL_ID, body=json.dumps(native_request))
model_response = json.loads(response["body"].read())
# Pretty print the response JSON.
print("[Full Response]")
print(json.dumps(model_response, indent=2))
# Print the text content for easy readability.
content_text = model_response["output"]["message"]["content"][0]["text"]
print("\n[Response Content Text]")
print(content_text)
```

Si desea transferir archivos de imagen de gran tamaño o varios archivos de imagen, en los que la carga útil total sea superior a 25 MB, puede utilizar Amazon S3. El siguiente ejemplo muestra cómo utilizar Amazon S3 para cargar imágenes en Amazon Nova:

```
import boto3
import json
import base64
# Create a Bedrock Runtime client
client = boto3.client("bedrock-runtime", 
                      region_name="us-east-1", 
                     )
PRO_MODEL_ID = "us.amazon.nova-pro-v1:0"
LITE_MODEL_ID = "us.amazon.nova-lite-v1:0"
MICRO_MODEL_ID = "us.amazon.nova-micro-v1:0"
PREMIER_MODEL_ID = "us.amazon.nova-premier-v1:0"
messages = [
    {
        "role": "user",
        "content": [
            {
                "image": {
                    "format": "png",
                    "source": {
                        "s3Location": {
                            #Replace the s3 bucket URI 
                            "uri": "s3://demo-bucket/cat.png"
                            "bucketOwner" : "123456789012"
                        }
                    },
                }
            },
            {"text": "Describe the following image"},
        ],
    }
]
inf_params = {"maxTokens": 300, "topP": 0.1, "temperature": 0.3}
model_response = client.converse(
    modelId=LITE_MODEL_ID, messages=messages, inferenceConfig=inf_params
)
print("\n[Full Response]")
print(json.dumps(model_response, indent=2))
print("\n[Response Content Text]")
print(model_response["output"]["message"]["content"][0]["text"])
```

# Comprensión de videos
<a name="modalities-video"></a>

**nota**  
Esta documentación corresponde a la versión 1 de Amazon Nova. Para ver la guía sobre la comprensión de video de Amazon Nova 2, consulte [Video understanding](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html#video-understanding).

Los modelos de Amazon Nova permiten incluir un solo video en la carga útil, que puede proporcionarse en formato base64 o mediante un URI de Amazon S3. Al utilizar el método base64, el tamaño total de la carga útil debe permanecer dentro de los 25 MB. Sin embargo, puede especificar un URI de Amazon S3 para la comprensión de video. Este enfoque le permite aprovechar el modelo para videos más largos (de hasta 1 GB de tamaño) sin verse limitado por la restricción general del tamaño de la carga útil. Los modelos de Amazon Nova pueden analizar el video proporcionado y responder a preguntas, clasificar un video y resumir la información que contiene según las instrucciones proporcionadas.


| Tipo de archivo multimedia | Formatos de archivo compatibles | **Método de entrada** | 
| --- |--- |--- |
| Video | MP4, MOV, MKV, WebM, FLV, MPEG, MPG, WMV, 3GP | Base64 *Recomendado para cargas útiles de menos de 25 MB* | 
|  |  | URI de Amazon S3 *Recomendado para cargas útiles superiores a 25 MB y de hasta 2 GB. Los archivos individuales deben ser de 1 GB como máximo.* | 

No hay diferencias en el recuento de tokens de entrada de video, independientemente de si el video se pasa en base64 (siempre que se ajuste a las restricciones de tamaño) o a través de una ubicación de Amazon S3.

Tenga en cuenta que, para el formato de archivo 3GP, el campo “format” pasado en la solicitud de la API debe tener el formato “three\$1gp”.

Cuando utilice Amazon S3, asegúrese de configurar los metadatos “Content-Type” con el tipo MIME correcto para el video.

## Información sobre el tamaño del video
<a name="modalities-video-size"></a>

Las capacidades de comprensión de videos de Amazon Nova admiten múltiples relaciones de aspecto. Todos los videos se redimensionan con distorsión (hacia arriba o hacia abajo, según la entrada) hasta alcanzar dimensiones **cuadradas de 672 x 672** antes de pasarlos al modelo. El modelo utiliza una estrategia de muestreo dinámico según la duración del video. En el caso de Amazon Nova Lite y Amazon Nova Pro, para videos de 16 minutos o menos se emplea una frecuencia de muestreo de 1 fotograma por segundo (FPS). Sin embargo, para los videos de más de 16 minutos, la frecuencia de muestreo disminuye para mantener un muestreo constante de 960 fotogramas, variando la frecuencia de muestreo de fotogramas en consecuencia. Este enfoque está diseñado para proporcionar una comprensión más precisa del video a nivel de escena en los videos más cortos en comparación con los de mayor duración. Le recomendamos que mantenga la duración del video en menos de 1 hora en cámara lenta, y en menos de 16 minutos para cualquier contenido con mayor movimiento. Para Amazon Nova Premier, la frecuencia de muestreo de 1 FPS se aplica hasta un límite de 3200 fotogramas.

No debería haber ninguna diferencia al analizar una versión 4K de un video y una versión Full HD. Del mismo modo, dado que la frecuencia de muestreo es como máximo de 1 FPS, un video de 60 FPS debería funcionar tan bien como un video de 30 FPS. Debido al límite de 1 GB en el tamaño del video, utilizar una resolución y un FPS superiores a los requeridos no es beneficioso y limitará la duración del video que se ajusta a ese límite de tamaño. Es posible que desee preprocesar los videos de más de 1 GB.

# Limitaciones de la comprensión de video
<a name="modalities-video-limitations"></a>

Comprenda las siguientes limitaciones de Amazon Nova:
+ **Comprensión de imágenes multilingües:** los modelos tienen una comprensión limitada de las imágenes y los fotogramas de video multilingües y pueden tener dificultades o alucinar al realizar tareas similares.
+ **Identificación de personas**: los modelos de Amazon Nova no admiten la capacidad de identificar o nombrar a personas en imágenes, documentos o videos. Los modelos se negarán a realizar dichas tareas.
+ **Razonamiento espacial**: los modelos de Amazon Nova tienen capacidades de razonamiento espacial limitadas. Es posible que tengan dificultades con las tareas que requieren una localización precisa o un análisis de disposición.
+ **Texto pequeño en imágenes/videos**: si el texto de la imagen o el video es demasiado pequeño, considere la posibilidad de aumentar el tamaño relativo del texto en la imagen recortándola hasta la sección relevante y conservando el contexto necesario.
+ **Recuento**: los modelos de Amazon Nova pueden proporcionar recuentos aproximados de objetos en una imagen, pero pueden no ser siempre precisos, especialmente cuando se trata de un gran número de objetos pequeños.
+ **Contenido inapropiado**: los modelos de Amazon Nova no procesarán imágenes inapropiadas o explícitas que infrinjan la Política de uso aceptable.
+ **Aplicaciones en la atención de salud**: debido a la naturaleza sensible de estos elementos, aunque los modelos de Amazon Nova pueden ofrecer análisis generales de imágenes o videos relacionados con la atención sanitaria, no recomendamos que interprete imágenes de diagnóstico complejas. Las respuestas de Amazon Nova nunca deben considerarse un sustituto del asesoramiento médico profesional.

## Tokens de video
<a name="modalities-video-tokens"></a>

La duración del video es el factor principal que afecta al número de tokens generados. Para calcular el costo aproximado, debe multiplicar el número estimado de tokens de video por el precio por token del modelo específico que utilice.

En la siguiente tabla se proporcionan algunas aproximaciones del muestreo de fotogramas y la utilización de tokens por duración de video para Amazon Nova Pro, Lite y Micro:


| Duración del video | 10 s | 30 s | 16 min | 20 min | 30 min | 45 min | 1 hora | 1,5 horas | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
| Fotogramas que se muestrean | 10 | 30 | 960 | 960 | 960 | 960 | 960 | 960 | 
| FPS por velocidad de muestreo | 1 | 1 | 1 | 0,755 | 0,5 | 0,35556 | 0,14 | 0,096 | 
| Recuento estimado de tokens | 2880 | 8640 | 276 480 | 276 480 | 276 480 | 276 480 | 276 480 | 276 480 | 

En la siguiente tabla se proporcionan algunas aproximaciones del muestreo de fotogramas y la utilización de tokens según la duración del video para Amazon Nova Premier:


| Duración del video | 10 s | 30 s | 16 min | 20 min | 30 min | 45 min | 1 hora | 1,5 horas | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
| Fotogramas que se muestrean | 10 | 30 | 960 | 1200 | 1800 | 2700 |  |  | 
| FPS por velocidad de muestreo | 1 | 1 | 1 | 1 | 1 | 1 |  |  | 
| Recuento estimado de tokens | 2880 | 8640 | 276 480 | 345 600 | 518 400 | 777 600 |  |  | 

En la siguiente tabla se proporcionan algunas aproximaciones del muestreo de fotogramas y la utilización de tokens según la duración del video para Amazon Nova Lite 1.5:


| Duración del video | 10 s | 30 s | 16 min | 20 min | 30 min | 45 min | 1 hora | 1,5 horas | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
| Fotogramas que se muestrean | 10 | 30 | 960 | 1200 | 1800 | 2700 |  |  | 
| FPS por velocidad de muestreo | 1 | 1 | 1 | 1 | 1 | 1 |  |  | 
| Recuento estimado de tokens | 2880 | 8640 | 276 480 | 345 600 | 518 400 | 777 600 |  |  | 

# Limitaciones de la comprensión de video
<a name="prompting-vision-limitations"></a>

Las siguientes son las principales limitaciones del modelo, en las que es posible que no se garanticen su precisión y rendimiento.
+ **Un video por solicitud:** Actualmente, el modelo solo admite 1 video por solicitud. Algunos marcos y bibliotecas utilizan la memoria para realizar un seguimiento de las interacciones anteriores. Es posible que haya un video que se haya añadido en un contexto anterior.
+ **Sin soporte de audio:** Actualmente, los modelos están entrenados para procesar y comprender el contenido de video basándose únicamente en la información visual. No tienen la capacidad de analizar ni comprender ningún componente de audio del video.
+ **Causalidad temporal:** El modelo tiene una comprensión limitada de la causalidad de los eventos a lo largo de la progresión del video. Aunque responde bien a las preguntas sobre un punto en el tiempo, no funciona tan bien en las respuestas que dependen de la comprensión de una secuencia de eventos.
+ **Comprensión de imágenes multilingües:** Los modelos tienen una comprensión limitada de imágenes y fotogramas de video multilingües. Podrían tener dificultades o alucinar al realizar tareas similares.
+ **Identificación de personas**: Los modelos de Amazon Nova no admiten la capacidad de identificar o nombrar a personas en imágenes, documentos o videos. Los modelos se negarán a realizar dichas tareas.
+ **Razonamiento espacial**: Los modelos de Amazon Nova tienen capacidades de razonamiento espacial limitadas. Es posible que tengan dificultades con las tareas que requieren una localización precisa o un análisis de disposición.
+ **Texto pequeño en imágenes o videos**: Si el texto de la imagen o el video es demasiado pequeño, considere la posibilidad de aumentar el tamaño relativo del texto en la imagen recortándola hasta la sección relevante y conservando el contexto necesario.
+ **Recuento**: Los modelos de Amazon Nova pueden proporcionar recuentos aproximados de objetos en una imagen, pero pueden no ser siempre precisos, especialmente cuando se trata de un gran número de objetos pequeños.
+ **Contenido inapropiado**: Los modelos de Amazon Nova no procesarán imágenes inapropiadas o explícitas que infrinjan la Política de uso aceptable.
+ **Aplicaciones en la atención de salud**: Debido a la naturaleza sensible de estos elementos, aunque los modelos de Amazon Nova pueden ofrecer análisis generales de imágenes o videos relacionados con la atención sanitaria, no recomendamos que interprete imágenes de diagnóstico complejas. La respuesta de Amazon Nova nunca debe considerarse un sustituto del asesoramiento médico profesional.

# Ejemplos de comprensión de videos
<a name="modalities-video-examples"></a>

En el siguiente ejemplo, se muestra cómo enviar una petición de video al modelo de Amazon Nova con [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html).

```
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
# SPDX-License-Identifier: Apache-2.0
import base64
import boto3
import json
# Create a Bedrock Runtime client in the AWS Region of your choice.
client = boto3.client(
    "bedrock-runtime",
    region_name="us-east-1",
)

MODEL_ID = "us.amazon.nova-lite-v1:0"
# Open the image you'd like to use and encode it as a Base64 string.
with open("media/cooking-quesadilla.mp4", "rb") as video_file:
    binary_data = video_file.read()
    base_64_encoded_data = base64.b64encode(binary_data)
    base64_string = base_64_encoded_data.decode("utf-8")
# Define your system prompt(s).
system_list= [
    {
        "text": "You are an expert media analyst. When the user provides you with a video, provide 3 potential video titles"
    }
]
# Define a "user" message including both the image and a text prompt.
message_list = [
    {
        "role": "user",
        "content": [
            {
                "video": {
                    "format": "mp4",
                    "source": {
                        "bytes": video // Binary array (Converse API) or Base64-encoded string (Invoke API)
                    },
                }
            },
            {
                "text": "Provide video titles for this clip."
            },
        ],
    }
]
# Configure the inference parameters.
inf_params = {"maxTokens": 300, "topP": 0.1, "topK": 20, "temperature": 0.3}

native_request = {
    "schemaVersion": "messages-v1",
    "messages": message_list,
    "system": system_list,
    "inferenceConfig": inf_params,
}
# Invoke the model and extract the response body.
response = client.invoke_model(modelId=MODEL_ID, body=json.dumps(native_request))
model_response = json.loads(response["body"].read())
# Pretty print the response JSON.
print("[Full Response]")
print(json.dumps(model_response, indent=2))
# Print the text content for easy readability.
content_text = model_response["output"]["message"]["content"][0]["text"]
print("\n[Response Content Text]")
print(content_text)
```

En el siguiente ejemplo, se muestra cómo enviar un video mediante una ubicación de Amazon S3 a Amazon Nova con [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html).

```
import base64
import boto3
import json
# Create a Bedrock Runtime client in the AWS Region of your choice.
client = boto3.client(
    "bedrock-runtime",
    region_name="us-east-1",
)

MODEL_ID = "us.amazon.nova-lite-v1:0"
# Define your system prompt(s).
system_list = [
    {
        "text": "You are an expert media analyst. When the user provides you with a video, provide 3 potential video titles"
    }
]
# Define a "user" message including both the image and a text prompt.
message_list = [
    {
        "role": "user",
        "content": [
            {
                "video": {
                    "format": "mp4",
                    "source": {
                        "s3Location": {
                            "uri": "s3://my_bucket/my_video.mp4", 
                            "bucketOwner": "111122223333"
                        }
                    }
                }
            },
            {
                "text": "Provide video titles for this clip."
            }
        ]
    }
]
# Configure the inference parameters.
inf_params = {"maxTokens": 300, "topP": 0.1, "topK": 20, "temperature": 0.3}

native_request = {
    "schemaVersion": "messages-v1",
    "messages": message_list,
    "system": system_list,
    "inferenceConfig": inf_params,
}
# Invoke the model and extract the response body.
response = client.invoke_model(modelId=MODEL_ID, body=json.dumps(native_request))
model_response = json.loads(response["body"].read())
# Pretty print the response JSON.
print("[Full Response]")
print(json.dumps(model_response, indent=2))
# Print the text content for easy readability.
content_text = model_response["output"]["message"]["content"][0]["text"]
print("\n[Response Content Text]")
print(content_text)
```

# Comprensión de documentos
<a name="modalities-document"></a>

**nota**  
Esta documentación corresponde a la versión 1 de Amazon Nova. Para ver la guía sobre la comprensión de documentos de Amazon Nova 2, consulte [Document understanding](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html#document-understanding).

La capacidad de comprensión de documentos de Amazon Nova le permite incluir documentos completos (PDF, archivos de Word, hojas de cálculo, etc.) en su petición y hacer preguntas o solicitudes sobre su contenido. Los modelos de comprensión multimodales de Nova (Lite, Pro, Premier) pueden interpretar tanto el texto como los elementos visuales (como gráficos o tablas) de estos documentos. Esto permite casos de uso como contestar preguntas, resumir y analizar informes largos o documentos escaneados. Las características clave incluyen una cantidad de contexto muy grande (de 1 a 2 millones de tokens) para documentos largos y la capacidad de gestionar varios documentos en una sola consulta. 

Amazon Nova distingue entre dos tipos de entradas de documentos:
+ **Tipos de documentos basados en texto** (por ejemplo, TXT, CSV, Markdown, HTML, DOC): se procesan principalmente por su contenido textual. Nova se centrará en comprender y extraer información del texto de estos documentos. 
+ **Tipos de documentos basados en contenido multimedia** (por ejemplo, PDF, DOCX): estos archivos pueden contener diseños, imágenes, gráficos o contenido gráfico incrustado complejos. En el caso de los documentos multimedia, Nova procesa tanto los elementos visuales como los textuales. Nova emplea un análisis basado en la visión para interpretar el contenido visual, como gráficos, tablas, diagramas o capturas de pantalla, junto con el texto del documento.

  JPEG2000 y JBIG2 no son compatibles con archivos PDF en Amazon Nova.

Los formatos de archivo compatibles incluyen los tipos de documentos más comunes: archivos de texto sin formato y de texto estructurado (CSV, TXT), hojas de cálculo (XLS/XLSX), HTML/Markdown, documentos de Word (DOC/DOCX) y archivos PDF. En el caso de las imágenes dentro de los documentos, se utilizan los formatos de imagen estándar (PNG, JPG, GIF, WebP), aunque no se admiten archivos PDF que contengan determinadas codificaciones de imagen (CYMK, SVG). 


**Límites de tamaño de los documentos y pautas de uso**  

| Restricción | Límite | 
| --- | --- | 
|  Número máximo de documentos  |  Hasta 5 documentos por solicitud (se aplica tanto a la carga directa como a Amazon S3)  | 
|  Tamaño del documento basado en texto  |  Cada documento de texto (por ejemplo, .txt, .csv, .md, .html, .doc) debe tener un tamaño inferior o igual a 4,5 MB  | 
|  Tamaño del documento basado en contenido multimedia  |  En el caso de los archivos .pdf y .docx, no existe un límite de tamaño de archivo individual, pero tenga en cuenta lo siguiente: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/nova/latest/userguide/modalities-document.html)  | 
|  Contenido en PDF no compatible  |  No se admiten archivos PDF que contengan perfiles de color CMYK o imágenes SVG  | 

# Uso de la comprensión de documentos de Nova a través de la API
<a name="modalities-document-examples"></a>

Para mostrar cómo usar Amazon Nova para contestar preguntas de documentos o hacer análisis, aquí tiene un ejemplo simplificado en Python. Usaremos la API de AWS Bedrock (mediante el SDK de Boto3) para enviar un documento PDF junto con una pregunta para que la responda el modelo.

```
            
import base64
import base64
import json
import boto3

# Initialize Bedrock runtime client (adjust region as needed)
client = boto3.client("bedrock-runtime", region_name="us-east-1")

MODEL_ID = "us.amazon.nova-lite-v1:5"  # using Nova Lite model in this example

# Read the document file (PDF) in binary mode
with open("my_document.pdf", "rb") as file:
    doc_bytes = file.read()

# Construct the conversation messages with document + question
messages = [
    {
        "role": "user",
        "content": [
            {
                "document": {
                    "format": "pdf",
                    "name": "Document1",  # neutral name for the document
                    "source": {
                        "bytes": doc_bytes  # embedding the PDF content directly
                    }
                }
            },
            {
                "text": "Here is a question about the document: ... (your question) ... ?"
            }
        ]
    }
]

# Set inference parameters (optional)
inf_params = {"maxTokens": 4000, "topP": 0.1, "temperature": 0.3}

# Invoke the model
response = client.converse(modelId=MODEL_ID, messages=messages, inferenceConfig=inf_params)

# Extract and print the answer
answer_text = response["output"]["message"]["content"][0]["text"]
print(answer_text)
```

Si los archivos de entrada son grandes (superan el límite de carga directa de 25 MB) o tiene muchos archivos, puede almacenarlos en Amazon S3 y hacer referencia a ellos. Esto evita enviar los bytes sin procesar junto con la solicitud. Cuando utilice S3, asegúrese de que el servicio Bedrock tenga permiso para acceder al bucket u objeto. Por ejemplo, para hacer referencia a un archivo PDF en S3, el origen del documento utilizaría “s3Location” en lugar de “bytes” de la siguiente manera:

```
messages = [
    {
        "role": "user",
        "content": [
            {
                "document": {
                    "format": "pdf",
                    "name": "Report2023",
                    "source": {
                        "s3Location": {
                            "uri": "s3://your-bucket/path/to/document1.pdf",
                            "bucketOwner": "123456789012"
                        }
                    }
                }
            },
            {
                "text": "Summarize the key findings from the Q3 2023 report."
            }
        ]
    }
]
```

**nota**  
Los nombres de los documentos solo pueden contener caracteres alfanuméricos, guiones, paréntesis y corchetes.  
El campo `name` es vulnerable a las inyecciones de peticiones, ya que el modelo podría interpretarlas como instrucciones por error. Por lo tanto, le recomendamos que especifique un nombre neutro.

# Gestión de errores
<a name="text-error-handing"></a>

La forma en que se comunican los errores al cliente varía según el tipo de error que se produzca. En esta sección, nos centramos únicamente en las condiciones de error que son exclusivas del modelo de Amazon Nova. Los tres tipos principales de errores que deberá gestionar en el código de su aplicación son los errores de **validación de entrada**, los errores de **desviación de entrada de la IA responsable (RAI)** y los errores de **desviación de salida de la RAI**.

**Validación de entrada:** los errores de validación de entrada se producen cuando se utiliza un valor no admitido para un parámetro de entrada. Por ejemplo, un valor de temperatura fuera de los límites o un formato incorrecto de la `image` de entrada. Todos los errores de validación de entrada se expresan como una **ValidationException** que contiene una cadena de mensaje que describe la causa del problema.

Los errores de **desviación de entrada de la RAI** se producen cuando se determina que alguno de los valores de texto o imágenes de entrada infringe la política de IA responsable de AWS. Estos errores se expresan como una **ValidationException** con uno de los siguientes mensajes:
+ Mensaje de validación de **texto de entrada**: “This request has been blocked by our content filters. Please adjust your text prompt to submit a new request”.
+ Mensaje de validación de **imagen de entrada**: “This request has been blocked by our content filters. Please adjust your input image to submit a new request”.
+ Mensaje de validación de **video de entrada**: “This request has been blocked by our content filters. Please adjust your input video to submit a new request”.

Los errores de desviación de la salida de la RAI se producen cuando se genera una salida, pero se determina que no se ajusta a la política de IA responsable de AWS. Cuando esto ocurre, no se utiliza una excepción. En su lugar, se devuelve una respuesta correcta y su estructura contiene un campo `error` que es una cadena con uno de los siguientes valores:
+ Mensaje de validación del **texto de salida**: “The generated text has been blocked by our content filters”.