

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Prise en charge du multimodal pour Amazon Nova
<a name="modalities"></a>

**Note**  
Cette documentation concerne la version 1 d'Amazon Nova. Pour consulter la documentation multimodale Amazon Nova 2, consultez la page Compréhension [multimodale](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html).

Les modèles de compréhension Amazon Nova sont des modèles de compréhension multimodaux, ce qui signifie qu’ils prennent en charge les entrées multimodales telles que les images, les vidéos et les documents afin de déduire et de répondre à des questions en fonction du contenu fourni. Les modèles Amazon Nova sont dotés de nouvelles capacités de vision qui leur permettent de comprendre et d’analyser des images, des documents et des vidéos, réalisant ainsi des cas d’utilisation de compréhension multimodale.

La section suivante présente les directives relatives à l’utilisation des images, des documents et des vidéos dans Amazon Nova. Elle comprend les stratégies de prétraitement utilisées, des exemples de code et les limitations pertinentes à prendre en compte.

**Topics**
+ [Types de contenu pris en charge par modalité](#modalities-content)
+ [Compréhension des images](modalities-image.md)
+ [Compréhension des vidéos](modalities-video.md)
+ [Compréhension des documents](modalities-document.md)
+ [Gestion des erreurs](text-error-handing.md)

## Types de contenu pris en charge par modalité
<a name="modalities-content"></a>

Les informations suivantes détaillent les formats de fichiers pris en charge par les fichiers multimédias et les méthodes d’entrée acceptées.


| Type de fichier multimédia | Formats de fichier pris en charge | **Méthode de saisie** | Stratégie d’analyse | 
| --- |--- |--- |--- |
| Image | PNG, JPG, JPEG, GIF, WebP | Base64 URI Amazon S3 | Compréhension visuelle des images | 
| Document texte *(API Converse uniquement)* | CSV, XLS, XLSX, HTML, TXT, MD, DOC | Octets URI Amazon S3 | Compréhension textuelle à partir du document uniquement. | 
| Document multimédia *(API Converse uniquement)* | PDF, DOCX | Octets URI Amazon S3 | Texte avec images entrelacées Compréhension visuelle | 
| Vidéo | MP4, MOV, MKV, WebM, FLV, MPEG, MPG, WMV, 3GP | Base64 URI Amazon S3 | Compréhension visuelle de la vidéo | 

**Note**  
Vous pouvez inclure jusqu’à cinq fichiers provenant de votre ordinateur ou 1 000 fichiers provenant d’Amazon S3. Chaque fichier ne doit pas dépasser 1 Go lorsqu’il est chargé depuis Amazon S3. La taille totale des fichiers chargés ne peut pas dépasser 25 Mo lorsqu’ils sont chargés depuis votre ordinateur ou 2 Go lorsqu’ils sont chargés depuis Amazon S3.

Étant donné que 25 Mo est la limite globale de données utiles, veuillez vous assurer de tenir compte de la surcharge base64. Pendant que vous travaillez, n’oubliez pas que les bibliothèques et les cadres conservent la mémoire, et que le contenu multimédia transmis peut rapidement s’accumuler. Lorsque vous utilisez la vidéo, spécifier un `s3Location` devrait atténuer de nombreux problèmes de stockage.

**Note**  
Les vidéos et les documents volumineux prennent du temps à traiter, quelle que soit la méthode de saisie. Si le délai d'expiration du SDK boto3 expire en attendant une réponse de Amazon Bedrock, assurez-vous que vous avez défini une valeur [read\$1timeout](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html) appropriée et que vous avez mis à niveau boto3 vers au moins la version 1.38.

# Compréhension des images
<a name="modalities-image"></a>

**Note**  
Cette documentation concerne la version 1 d'Amazon Nova. Pour consulter le guide de compréhension des images Amazon Nova 2, consultez [Image understanding](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html#image-understanding).

Les modèles Amazon Nova vous permettent d’inclure plusieurs images dans les données utiles, avec une limite totale de 25 Mo. Cependant, vous pouvez spécifier une URI Amazon S3 contenant vos images pour la compréhension des images. Cette approche vous permet d’utiliser le modèle pour des images plus grandes et plus nombreuses sans être limité par la limite de 25 Mo des données utiles. Les modèles Amazon Nova peuvent analyser les images transmises et répondre à des questions, classer les images et les résumer en fonction des instructions que vous fournissez.

## Informations sur la taille des images
<a name="modalities-image-resolution"></a>

Afin de fournir les meilleurs résultats possibles, Amazon Nova redimensionne automatiquement les images d’entrée à la hausse ou à la baisse en fonction de leur rapport d’aspect et de leur résolution d’origine. Pour chaque image, Amazon Nova identifie d’abord le rapport d’aspect le plus proche parmi 1:1, 1:2, 1:3, 1:4, 1:5, 1:6, 1:7, 1:8, 1:9, 2:3, 2:4 et leurs transpositions. L’image est ensuite redimensionnée de manière à ce qu’au moins un côté de l’image soit supérieur à 896 pixels ou à la longueur du côté le plus court de l’image d’origine, tout en conservant le rapport d’aspect le plus proche. La résolution maximale est de 8 000 x 8 000 pixels

## Détection des cadres
<a name="modalities-image-bounding"></a>

Les modèles Amazon Nova Lite et Amazon Nova Pro sont entraînés à détecter avec précision les cadres dans les images. Cette capacité peut s’avérer précieuse lorsque l’objectif est d’obtenir les coordonnées d’un objet spécifique d’intérêt. La fonctionnalité de détection des cadres de sélection du modèle Amazon Nova en fait un candidat idéal pour les tâches d’ancrage d’images, permettant ainsi une meilleure compréhension des captures d’écran. Le modèle Amazon Nova génère des cadres de sélection à l’échelle [0, 1000), et une fois ces coordonnées obtenues, elles peuvent être redimensionnées en fonction des dimensions de l’image lors d’une étape de post-traitement.

## Conversion d’images en jetons
<a name="modalities-image-tokens"></a>

Comme indiqué précédemment, les images sont redimensionnées afin d’optimiser l’extraction d’informations, tout en conservant le rapport d’aspect. Voici quelques exemples de dimensions d’images et de calculs approximatifs de jetons.


| image\$1resolution (HxL ou LxH) | 900 x 450 | 900 x 900 | 1400 x 900 | 1,8K x 900 | 1,3Kx1,3K | 
| --- |--- |--- |--- |--- |--- |
| Nombre estimé de jetons | \$1800 | \$11300 | \$11800 | \$12400 | \$12600 | 

Prenons par exemple une image de 800x400 et supposons que l’on veut estimer le nombre de jetons pour cette image. D’après les dimensions, pour conserver un rapport d’aspect de 1:2, la résolution la plus proche est 900 x 450. Par conséquent, le nombre approximatif de jetons pour cette image est d’environ 800 jetons.

# Limites de la compréhension des images
<a name="modalities-image-limitations"></a>

Veuillez prendre connaissance des limites suivantes d’Amazon Nova :
+ **Compréhension multilingue des images :** les modèles ont une compréhension limitée des images et des images vidéo multilingues et peuvent rencontrer des difficultés ou présenter des hallucinations lors de tâches similaires.
+ **Identification des personnes** : les modèles Amazon Nova ne prennent pas en charge la capacité d’identifier ou de nommer des personnes dans des images, des documents ou des vidéos. Les modèles refuseront d’effectuer de telles tâches.
+ **Raisonnement spatial** : les modèles Amazon Nova ont des capacités de raisonnement spatial limitées. Ils peuvent rencontrer des difficultés avec les tâches qui nécessitent une localisation précise ou une analyse de la disposition.
+ **Petit texte dans les images/vidéos** : si le texte dans l’image ou la vidéo est trop petit, envisagez d’augmenter la taille relative du texte dans l’image en recadrant la section concernée tout en conservant le contexte nécessaire.
+ **Comptage** : les modèles Amazon Nova peuvent fournir un nombre approximatif d’objets dans une image, mais ne sont pas toujours précis, en particulier lorsqu’il s’agit d’un grand nombre de petits objets.
+ **Contenu inapproprié** : les modèles Amazon Nova ne traitent pas les images inappropriées ou explicites qui enfreignent la politique d’utilisation acceptable.
+ **Applications médicales** : en raison de la nature sensible de ces artefacts, même si les modèles Amazon Nova peuvent fournir une analyse générale des images ou vidéos médicales, nous vous déconseillons d’interpréter des scans diagnostiques complexes. Les réponses d’Amazon Nova ne doivent en aucun cas être considérées comme un substitut à un avis médical professionnel.

# Exemples de compréhension d’images
<a name="modalities-image-examples"></a>

L'exemple suivant montre comment envoyer une demande d'image à Amazon Nova Model avec [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)
```

Pour transmettre des fichiers image volumineux ou plusieurs fichiers image, dont les données utiles totales sont supérieures à 25 Mo, vous pouvez utiliser Amazon S3. L’exemple suivant montre comment utiliser Amazon S3 pour charger des images vers 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"])
```

# Compréhension des vidéos
<a name="modalities-video"></a>

**Note**  
Cette documentation concerne la version 1 d'Amazon Nova. Pour consulter le guide de compréhension des vidéos Amazon Nova 2, consultez l'article [Présentation des vidéos](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html#video-understanding).

Les modèles Amazon Nova vous permettent d’inclure une seule vidéo dans les données utiles, qui peut être fournie au format base64 ou via une URI Amazon S3. Lorsque vous utilisez la méthode base64, la taille totale des données utiles doit rester inférieure à 25 Mo. Cependant, vous pouvez spécifier une URI Amazon S3 pour la compréhension des vidéos. Cette approche vous permet d’utiliser le modèle pour des vidéos plus longues (jusqu’à 1 Go) sans être limité par la taille globale des données utiles. Les modèles Amazon Nova peuvent analyser la vidéo transmise et répondre à des questions, classer une vidéo et résumer les informations qu’elle contient en fonction des instructions fournies.


| Type de fichier multimédia | Formats de fichier pris en charge | **Méthode de saisie** | 
| --- |--- |--- |
| Vidéo | MP4, MOV, MKV, WebM, FLV, MPEG, MPG, WMV, 3GP | Base64 *Recommandé pour les données utiles de moins de 25 Mo* | 
|  |  | URI Amazon S3 *Recommandé pour les données utiles de plus de 25 Mo et jusqu’à 2 Go. Les fichiers individuels doivent être de 1 Go ou moins.* | 

Il n’y a aucune différence dans le nombre de jetons d’entrée vidéo, que la vidéo soit transmise au format base64 (à condition qu’elle respecte les contraintes de taille) ou via un emplacement Amazon S3.

Veuillez noter que pour le format de fichier 3GP, le champ « format » transmis dans la demande API doit être au format « three\$1gp ».

Lorsque vous utilisez Amazon S3, assurez-vous que les métadonnées « Content-Type » sont définies sur le type MIME correct pour la vidéo.

## Informations sur la taille de la vidéo
<a name="modalities-video-size"></a>

Les capacités de compréhension vidéo d’Amazon Nova prennent en charge le format multi-aspect. Toutes les vidéos sont redimensionnées avec une distorsion (vers le haut ou vers le bas, en fonction de l’entrée) aux dimensions **672\$1672 carré** avant d’être transmises au modèle. Le modèle utilise une stratégie d’échantillonnage dynamique basée sur la durée de la vidéo. Pour Amazon Nova Lite et Amazon Nova Pro, avec des vidéos d’une durée inférieure ou égale à 16 minutes, un taux d’échantillonnage de 1 image par seconde (FPS) est utilisé. Cependant, pour les vidéos de plus de 16 minutes, le taux d’échantillonnage diminue afin de maintenir un échantillonnage constant de 960 images, le taux d’échantillonnage des images variant en conséquence. Cette approche est conçue pour fournir une compréhension plus précise de la vidéo au niveau de la scène pour les vidéos plus courtes par rapport aux contenus vidéo plus longs. Nous vous recommandons de limiter la durée de la vidéo à moins d’une heure pour les mouvements lents et à moins de 16 minutes pour tout ce qui comporte des mouvements plus rapides. Pour Amazon Nova Premier, le taux d’échantillonnage de 1 FPS est appliqué jusqu’à une limite de 3 200 images.

Il ne devrait y avoir aucune différence entre l’analyse d’une version 4k d’une vidéo et celle d’une version Full HD. De même, comme le taux d’échantillonnage est au maximum de 1 FPS, une vidéo à 60 FPS devrait fonctionner aussi bien qu’une vidéo à 30 FPS. En raison de la limite de 1 Go pour la taille des vidéos, l’utilisation d’une résolution et d’un FPS supérieurs à ceux requis n’est pas avantageuse et limitera la durée de la vidéo qui peut être contenue dans cette limite de taille. Il peut être souhaitable de prétraiter les vidéos dont la taille est supérieure à 1 Go.

# Limites de compréhension de la vidéo
<a name="modalities-video-limitations"></a>

Veuillez prendre connaissance des limites suivantes d’Amazon Nova :
+ **Compréhension multilingue des images :** les modèles ont une compréhension limitée des images et des images vidéo multilingues et peuvent rencontrer des difficultés ou présenter des hallucinations lors de tâches similaires.
+ **Identification des personnes** : les modèles Amazon Nova ne prennent pas en charge la capacité d’identifier ou de nommer des personnes dans des images, des documents ou des vidéos. Les modèles refuseront d’effectuer de telles tâches.
+ **Raisonnement spatial** : les modèles Amazon Nova ont des capacités de raisonnement spatial limitées. Ils peuvent rencontrer des difficultés avec les tâches qui nécessitent une localisation précise ou une analyse de la disposition.
+ **Petit texte dans les images/vidéos** : si le texte dans l’image ou la vidéo est trop petit, envisagez d’augmenter la taille relative du texte dans l’image en recadrant la section concernée tout en conservant le contexte nécessaire.
+ **Comptage** : les modèles Amazon Nova peuvent fournir un nombre approximatif d’objets dans une image, mais ne sont pas toujours précis, en particulier lorsqu’il s’agit d’un grand nombre de petits objets.
+ **Contenu inapproprié** : les modèles Amazon Nova ne traitent pas les images inappropriées ou explicites qui enfreignent la politique d’utilisation acceptable.
+ **Applications médicales** : en raison de la nature sensible de ces artefacts, même si les modèles Amazon Nova peuvent fournir une analyse générale des images ou vidéos médicales, nous vous déconseillons d’interpréter des scans diagnostiques complexes. Les réponses d’Amazon Nova ne doivent en aucun cas être considérées comme un substitut à un avis médical professionnel.

## Jetons vidéo
<a name="modalities-video-tokens"></a>

La durée de la vidéo est le principal facteur qui influe sur le nombre de jetons générés. Pour calculer le coût approximatif, il convient de multiplier le nombre estimé de jetons vidéo par le prix par jeton du modèle spécifique utilisé.

Le tableau suivant fournit quelques approximations de l’échantillonnage des images et de l’utilisation des jetons par durée de vidéo pour Amazon Nova Pro, Lite et Micro :


| video\$1duration | 10 sec | 30 sec | 16 minutes | 20 minutes | 30 min | 45 minutes | 1 h | 1,5 heure | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
| frames\$1to\$1sample | 10 | 30 | 960 | 960 | 960 | 960 | 960 | 960 | 
| sample\$1rate\$1fps | 1 | 1 | 1 | 0,755 | 0.5 | 0,35556 | 0,14 | 0,096 | 
| Nombre estimé de jetons | 2 880 | 8 640 | 276 480 | 276 480 | 276 480 | 276 480 | 276 480 | 276 480 | 

Le tableau suivant fournit des approximations de l’échantillonnage d’images et de l’utilisation de jetons par durée de vidéo pour Amazon Nova Premier :


| video\$1duration | 10 sec | 30 sec | 16 minutes | 20 minutes | 30 min | 45 minutes | 1 h | 1,5 heure | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
| frames\$1to\$1sample | 10 | 30 | 960 | 1200 | 1800 | 2700 |  |  | 
| sample\$1rate\$1fps | 1 | 1 | 1 | 1 | 1 | 1 |  |  | 
| Nombre estimé de jetons | 2 880 | 8 640 | 276 480 | 345 600 | 518 400 | 777 600 |  |  | 

Le tableau suivant fournit quelques approximations de l'échantillonnage des images et de l'utilisation des jetons par durée de vidéo pour Amazon Nova Lite 1.5


| video\$1duration | 10 sec | 30 sec | 16 minutes | 20 minutes | 30 min | 45 minutes | 1 h | 1,5 heure | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
| frames\$1to\$1sample | 10 | 30 | 960 | 1200 | 1800 | 2700 |  |  | 
| sample\$1rate\$1fps | 1 | 1 | 1 | 1 | 1 | 1 |  |  | 
| Nombre estimé de jetons | 2 880 | 8 640 | 276 480 | 345 600 | 518 400 | 777 600 |  |  | 

# Limites de compréhension de la vidéo
<a name="prompting-vision-limitations"></a>

Voici les principales limites du modèle, pour lesquelles la précision et les performances ne peuvent être garanties.
+ **Une vidéo par demande :** actuellement, le modèle ne prend en charge qu’une seule vidéo par demande. Certains cadres et bibliothèques utilisent la mémoire pour garder une trace des interactions précédentes. Il se peut qu’une vidéo ait été ajoutée dans un contexte précédent.
+ **Pas de prise en charge audio :** les modèles sont actuellement entraînés pour traiter et comprendre le contenu vidéo uniquement sur la base des informations visuelles contenues dans la vidéo. Ils ne possèdent pas la capacité d’analyser ou de comprendre les composants audio présents dans la vidéo.
+ **Causalité temporelle :** le modèle a une compréhension limitée de la causalité des événements tout au long de la progression de la vidéo. Bien qu’il réponde bien aux questions ponctuelles, il n’est pas aussi performant pour les réponses qui dépendent de la compréhension d’une séquence d’événements
+ **Compréhension multilingue des images :** les modèles ont une compréhension limitée des images et des images vidéo multilingues. Ils peuvent rencontrer des difficultés ou présenter des erreurs lors de tâches similaires.
+ **Identification des personnes** : les modèles Amazon Nova ne prennent pas en charge la capacité d’identifier ou de nommer des personnes dans des images, des documents ou des vidéos. Les modèles refuseront d’effectuer de telles tâches.
+ **Raisonnement spatial** : les modèles Amazon Nova ont des capacités de raisonnement spatial limitées. Ils peuvent rencontrer des difficultés avec les tâches qui nécessitent une localisation précise ou une analyse de la disposition.
+ **Petit texte dans les images ou les vidéos** : si le texte dans l’image ou la vidéo est trop petit, envisagez d’augmenter la taille relative du texte dans l’image en recadrant la section concernée tout en conservant le contenu nécessaire.
+ **Comptage** : les modèles Amazon Nova peuvent fournir un nombre approximatif d’objets dans une image, mais ils ne sont pas toujours précis, en particulier lorsqu’il s’agit d’un grand nombre de petits objets.
+ **Contenu inapproprié** : les modèles Amazon Nova ne traitent pas les images inappropriées ou explicites qui enfreignent la politique d’utilisation acceptable
+ **Applications médicales** : en raison de la nature sensible de ces artefacts, même si les modèles Amazon Nova peuvent fournir une analyse générale des images ou vidéos médicales, nous vous déconseillons d’interpréter des scans diagnostiques complexes. La réponse d’Amazon Nova ne doit en aucun cas être considérée comme un substitut à un avis médical professionnel.

# Exemples de compréhension de vidéos
<a name="modalities-video-examples"></a>

L'exemple suivant montre comment envoyer une invite vidéo à Amazon Nova Model avec [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)
```

L'exemple suivant montre comment envoyer une vidéo en utilisant un emplacement Amazon S3 à Amazon Nova avec [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)
```

# Compréhension des documents
<a name="modalities-document"></a>

**Note**  
Cette documentation concerne la version 1 d'Amazon Nova. Pour consulter le guide de compréhension des documents Amazon Nova 2, consultez la section [Présentation des documents](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html#document-understanding).

La capacité de compréhension des documents d'Amazon Nova vous permet d'inclure des documents complets (fichiers WordPDFs, feuilles de calcul, etc.) dans votre invite et de poser des questions ou des demandes concernant leur contenu. Les modèles de compréhension multimodale de Nova (Lite, Pro, Premier) peuvent interpréter à la fois le texte et les éléments visuels (tels que des graphiques ou des tableaux) contenus dans ces documents. Cela permet des cas d'utilisation tels que la réponse à des questions, la synthèse et l'analyse de longs rapports ou de documents numérisés. Les principales fonctionnalités incluent une très grande fenêtre contextuelle (1 à 2 millions de jetons) pour les documents longs et la possibilité de gérer plusieurs documents en une seule requête. 

Amazon Nova fait la distinction entre deux types de saisie de documents :
+ **Types de documents basés sur du texte (par exemple TXT, CSV, Markdown, HTML, DOC) : ils sont traités principalement pour leur contenu textuel**. Nova se concentrera sur la compréhension et l'extraction d'informations à partir du texte de ces documents. 
+ **Types de documents basés sur des supports** (PDF, DOCX, par exemple) : ces fichiers peuvent contenir des mises en page complexes, des images, des graphiques ou des graphiques intégrés. Pour les documents multimédias, Nova traite à la fois les éléments visuels et textuels. Nova utilise une compréhension basée sur la vision pour interpréter le contenu visuel, tel que les graphiques, les tableaux, les diagrammes ou les captures d'écran, parallèlement au texte du document.

  JPEG2000 et JBIG2 ne sont pas pris en charge dans les fichiers PDF d'Amazon Nova.

Les formats de fichier pris en charge incluent les types de documents courants : fichiers texte brut et texte structuré (CSV, TXT), feuilles de calcul (XLS/XLSX), HTML/Markdown, Word documents (DOC/DOCX) et fichiers PDF. Pour les images contenues dans des documents, les formats d'image standard (PNG, JPG, GIF, WebP) sont gérés, mais certains encodages PDFs d'image (CYMK, SVG) ne sont pas pris en charge. 


**Limites de taille des documents et directives d'utilisation**  

| Contrainte | Limite | 
| --- | --- | 
|  Nombre maximum de documents  |  Jusqu'à 5 documents par demande (s'applique à la fois au téléchargement direct et à Amazon S3)  | 
|  Taille de document basée sur le texte  |  Chaque document texte (par exemple, .txt, .csv, .md, .html, .doc) doit peser ≤ 4,5 Mo  | 
|  Taille du document basée sur le support  |  Pour les fichiers .pdf et .docx, il n'y a pas de limite de taille de fichier individuelle, mais : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/nova/latest/userguide/modalities-document.html)  | 
|  Contenu PDF non pris en charge  |  PDFs contenant des profils de couleurs CMJN ou des images SVG ne sont pas pris en charge  | 

# Utilisation de l'API Document Understanding de Nova
<a name="modalities-document-examples"></a>

Pour illustrer comment utiliser Amazon Nova pour l'assurance qualité (question-réponse) ou l'analyse de documents, voici un exemple simplifié en Python. Nous utiliserons l'API AWS Bedrock (via le SDK Boto3) pour envoyer un document PDF accompagné d'une question à laquelle le modèle devra répondre.

```
            
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 vos fichiers d'entrée sont volumineux (dépassant la limite de 25 Mo de téléchargement direct) ou si vous avez de nombreux fichiers, vous pouvez les stocker dans Amazon S3 et les référencer. Cela évite d'envoyer les octets bruts par-dessus la demande. Lorsque vous utilisez S3, assurez-vous que le service Bedrock est autorisé à accéder au bucket ou à l'objet. Par exemple, pour référencer un PDF dans S3, la source de votre document utiliserait « S3location » au lieu de « bytes », comme suit :

```
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."
            }
        ]
    }
]
```

**Note**  
Les noms de documents ne peuvent inclure que des caractères alphanumériques, des tirets, des parenthèses et des crochets.  
Le champ `name` est vulnérable aux injections d’invite, car le modèle peut l’interpréter par inadvertance comme des instructions. Nous vous recommandons donc de spécifier un nom neutre.

# Gestion des erreurs
<a name="text-error-handing"></a>

La manière dont les erreurs sont communiquées au client varie en fonction du type d’erreur qui se produit. Dans cette section, nous nous concentrons uniquement sur les conditions d’erreur propres au modèle Amazon Nova. Les trois principaux types d’erreurs que vous voudrez traiter dans le code de votre application sont les erreurs **de validation des entrées**, les erreurs **de déviation des entrées de l’IA responsable (RAI)** et les erreurs **de déviation des sorties de la RAI**.

**Validation des entrées :** les erreurs de validation des entrées se produisent lorsque vous utilisez une valeur non prise en charge pour un paramètre d’entrée. Par exemple, une valeur de température hors limites ou un format incorrect de l’entrée `image`. Toutes les erreurs de validation des entrées sont exprimées sous la forme d’une **ValidationException** qui contient une chaîne de message décrivant la cause du problème.

Les erreurs de **déviation d’entrée RAI** se produisent lorsque l’une des valeurs de texte ou des images d’entrée est jugée contraire à la politique AWS d’IA responsable. Ces erreurs sont exprimées sous la forme d’une **ValidationException** accompagnée de l’un des messages suivants :
+ Message de validation du **texte d’entrée** : « Cette demande a été bloquée par nos filtres de contenu. Veuillez modifier votre invite de texte pour envoyer une nouvelle demande. »
+ Message de validation de l’**image d’entrée** : « Cette demande a été bloquée par nos filtres de contenu. Veuillez modifier votre image d’entrée pour envoyer une nouvelle demande. »
+ Message de validation de la **vidéo d’entrée** : « Cette demande a été bloquée par nos filtres de contenu. Veuillez modifier votre vidéo d’entrée pour envoyer une nouvelle demande. »

Les erreurs de déviation de sortie RAI se produisent lorsqu’une sortie est générée mais qu’elle est jugée non conforme à la politique AWS d’IA responsable. Dans ce cas, aucune exception n’est utilisée. Au lieu de cela, une réponse positive est renvoyée, et sa structure contient un champ `error` qui est une chaîne de caractères avec l’une des valeurs suivantes :
+ Message de validation du **texte de sortie** : « Le texte généré a été bloqué par nos filtres de contenu. »