

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Supporto multimodale per Amazon Nova
<a name="modalities"></a>

**Nota**  
Questa documentazione è per Amazon Nova versione 1. Per la documentazione multimodale di Amazon Nova 2, visita [Multimodal](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html) understanding.

I modelli di comprensione di Amazon Nova sono modelli di comprensione multimodali, il che significa che supportano input multimodali come immagini, video e documenti per dedurre e rispondere a domande in base al contenuto fornito. I modelli Amazon Nova sono dotati di nuove funzionalità di visione che consentono al modello di comprendere e analizzare immagini, documenti e video, realizzando in tal modo casi d’uso di comprensione multimodale.

La sezione riportata di seguito illustra le linee guida per lavorare con immagini, documenti e video in Amazon Nova. Queste includono le strategie di pre-elaborazione utilizzate, gli esempi di codice e le limitazioni pertinenti da considerare.

**Topics**
+ [Tipo di contenuto supportato per modalità](#modalities-content)
+ [Comprensione delle immagini](modalities-image.md)
+ [Comprensione dei video](modalities-video.md)
+ [Comprensione dei documenti](modalities-document.md)
+ [Gestione degli errori](text-error-handing.md)

## Tipo di contenuto supportato per modalità
<a name="modalities-content"></a>

Le seguenti informazioni descrivono in dettaglio i formati di file supportati dal file multimediale e il metodo di input accettato.


| Tipo di file multimediale | Formati di file supportati | **Metodo di input** | Strategia di analisi | 
| --- |--- |--- |--- |
| Immagine | PNG, JPG, JPEG, GIF, WebP | Base64 URI Amazon S3 | Comprensione visiva dell’immagine | 
| Documento di testo *(Solo API Converse)* | CSV, XLS, XLSX, HTML, TXT, MD, DOC | Byte URI Amazon S3 | Comprensione testuale solo dal documento. | 
| Documento multimediale *(Solo API Converse)* | PDF, DOCX | Byte URI Amazon S3 | Testo con comprensione dell’immagine interlacciata | 
| Video | MP4, MOV, MKV, WebM, FLV, MPEG, MPG, WMV, 3GP | Base64 URI Amazon S3 | Comprensione visiva del video | 

**Nota**  
Puoi includere fino a cinque file dal tuo computer o 1.000 file da Amazon S3. Ogni file non deve pesare più di 1 GB quando viene caricato da Amazon S3. La dimensione totale dei file caricati non può superare i 25 MB quando si carica dal computer o 2 GB quando si carica da Amazon S3.

Poiché il limite di payload complessivo è di 25 MB, assicurati di considerare il sovraccarico di base64. Durante il lavoro, ricorda che le librerie e i framework mantengono la memoria e che i contenuti multimediali trasmessi possono accumularsi rapidamente. Quando si utilizza un video, specificare una `s3Location` dovrebbe risolvere molti problemi di archiviazione.

**Nota**  
L’elaborazione di video e documenti di grandi dimensioni richiede tempo, indipendentemente dal metodo di input. [Se boto3 SDK scade in attesa di una risposta da parte di boto3 Amazon Bedrock, assicurati di avere un valore read\$1timeout appropriato e di aver aggiornato boto3 almeno alla versione 1.38.](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html)

# Comprensione delle immagini
<a name="modalities-image"></a>

**Nota**  
Questa documentazione è per Amazon Nova versione 1. Per la guida alla comprensione delle immagini di Amazon Nova 2, visita [Image understanding](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html#image-understanding).

I modelli Amazon Nova permettono di includere più immagini nel payload con un limite di payload totale di 25 MB. Tuttavia, puoi specificare un URI Amazon S3 che contenga le tue immagini per la comprensione delle immagini. Questo approccio permette di sfruttare il modello per immagini più grandi e più numerose senza essere vincolati dal limite di 25 MB di payload. I modelli Amazon Nova possono analizzare le immagini trasmesse e rispondere a domande, classificare le immagini e riassumerle in base alle istruzioni che hai fornito.

## Informazioni sulle dimensioni dell’immagine
<a name="modalities-image-resolution"></a>

Per fornire i migliori risultati possibili, Amazon Nova ridimensiona automaticamente le immagini di input verso l’alto o verso il basso in base alle loro proporzioni e alla risoluzione originale. Per ogni immagine, Amazon Nova identifica innanzitutto la proporzione più vicina tra 1:1, 1:2, 1:3, 1:4, 1:5, 1:6, 1:7, 1:8, 1:9 2:3, 2:4 e le relative trasposizioni. Quindi l’immagine viene ridimensionata in modo che almeno un lato dell’immagine sia maggiore di 896 px o della lunghezza del lato più corto dell’immagine originale, mantenendo le proporzioni più vicine. La risoluzione massima è di 8.000 x 8.000 pixel

## Rilevamento del riquadro di delimitazione
<a name="modalities-image-bounding"></a>

I modelli Amazon Nova Lite e Amazon Nova Pro sono addestrati a rilevare con precisione i riquadri di delimitazione all’interno delle immagini. Questa funzionalità può essere utile quando l’obiettivo è ottenere le coordinate di un oggetto di interesse specifico. La funzionalità di rilevamento dei riquadri di delimitazione del modello Amazon Nova lo rende un candidato ideale per le attività di grounding delle immagini, consentendo così una migliore comprensione delle schermate. Il modello Amazon Nova genera riquadri di delimitazione su una scala compresa tra [0, 1000] e, una volta ottenute queste coordinate, è possibile ridimensionarle in base alle dimensioni dell’immagine come fase di post-elaborazione.

## Conversione da immagine a token
<a name="modalities-image-tokens"></a>

Come spiegato in precedenza, le immagini vengono ridimensionate per massimizzare l’estrazione delle informazioni, mantenendo comunque le proporzioni. Di seguito sono riportati alcuni esempi di dimensioni delle immagini campione e calcoli approssimativi dei token.


| image\$1resolution (HxW o WxH) | 900 x 450 | 900 x 900 | 1400 x 900 | 1,8K x 900 | 1,3K x 1,3K | 
| --- |--- |--- |--- |--- |--- |
| Numero stimato di token | \$1800 | \$11300 | \$11800 | \$12400 | \$12600 | 

Consideriamo ad esempio un’immagine di dimensioni 800x400 e supponiamo di voler stimare il numero di token presenti in essa. In base alle dimensioni, per mantenere una proporzione di 1:2, la risoluzione più vicina è 900x450. Pertanto, il numero approssimativo di token per questa immagine è di circa 800.

# Limiti nella comprensione delle immagini
<a name="modalities-image-limitations"></a>

Comprendi le seguenti limitazioni per Amazon Nova:
+ **Comprensione multilingue delle immagini:** i modelli hanno una comprensione limitata delle immagini e dei fotogrammi video multilingue possono avere difficoltà o dare risultati distorti durante attività simili.
+ **Identificazione delle persone**: i modelli Amazon Nova non supportano la capacità di identificare o nominare persone in immagini, documenti o video. I modelli si rifiuteranno di svolgere tali attività.
+ **Ragionamento spaziale**: i modelli Amazon Nova hanno capacità di ragionamento spaziale limitate. Possono avere difficoltà a svolgere attività che richiedono una localizzazione precisa o un’analisi del layout.
+ **Testo piccolo nelle immagini/video**: se il testo nell’immagine o nel video è troppo piccolo, valuta la possibilità di aumentarne le dimensioni relative ritagliando la sezione pertinente e conservando il contesto necessario.
+ **Conteggio**: i modelli Amazon Nova possono fornire conteggi approssimativi degli oggetti in un’immagine, ma potrebbero non essere sempre precisi, specialmente quando si tratta di un gran numero di oggetti piccoli.
+ **Contenuti inappropriati**: i modelli Amazon Nova non elaboreranno immagini inappropriate o esplicite che violano la Policy di utilizzo accettabile
+ **Applicazioni sanitarie**: per via della natura sensibile di questi artefatti, anche se i modelli Amazon Nova possono fornire analisi generali su immagini o video di ambito sanitario, non è consigliabile interpretare scansioni diagnostiche complesse. Le risposte di Amazon Nova non dovrebbero mai sostituirsi alla consulenza medica professionale.

# Esempi di comprensione delle immagini
<a name="modalities-image-examples"></a>

L'esempio seguente mostra come inviare una richiesta di immagine ad Amazon Nova Model 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)
```

Per trasmettere file di immagini di grandi dimensioni o più file di immagini, per i quali il payload complessivo è superiore a 25 MB, puoi utilizzare Amazon S3. Il seguente esempio mostra come utilizzare Amazon S3 per caricare immagini su 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"])
```

# Comprensione dei video
<a name="modalities-video"></a>

**Nota**  
Questa documentazione è per Amazon Nova versione 1. Per la guida alla comprensione dei video di Amazon Nova 2, visita [Video understanding](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html#video-understanding).

I modelli Amazon Nova consentono di includere un singolo video nel payload, che puoi fornire in formato base64 o tramite un URI Amazon S3. Quando utilizzi il metodo base64, la dimensione complessiva del payload devono rimanere entro i 25 MB. Tuttavia, puoi specificare un URI Amazon S3 per la comprensione dei video. Questo approccio permette di sfruttare il modello per video più lunghi (fino a 1 GB) senza essere vincolati dalla limitazione complessiva delle dimensioni del payload. I modelli Amazon Nova possono analizzare il video trasmesso e rispondere a domande, classificare il video e riassumere le informazioni in esso contenute in base alle istruzioni fornite.


| Tipo di file multimediale | Formati di file supportati | **Metodo di input** | 
| --- |--- |--- |
| Video | MP4, MOV, MKV, WebM, FLV, MPEG, MPG, WMV, 3GP | Base64 *Consigliato per payload di dimensioni inferiori a 25 MB.* | 
|  |  | URI Amazon S3 *Consigliato per payload superiori a 25 MB e fino a 2 GB. I singoli file devono avere una dimensione massima di 1 GB.* | 

Non ci sono differenze nel numero di token di input video, indipendentemente dal fatto che il video venga trasmesso come base64 (purché rispetti i limiti di dimensione) o tramite una posizione Amazon S3.

Tieni presente che, per il formato di file 3GP, il campo “format” trasmesso alla richiesta API deve avere il formato “three\$1gp”.

Quando usi Amazon S3, assicurati di impostare i metadati “Content-Type” sul tipo MIME corretto per il video.

## Informazioni sulle dimensioni del video
<a name="modalities-video-size"></a>

Le funzionalità di comprensione del video di Amazon Nova supportano le proporzioni multiple. Tutti i video vengono ridimensionati con distorsione (verso l’alto o verso il basso, in base all’input) a dimensioni **quadrate di 672\$1672** prima di essere inviati al modello. Il modello usa una strategia di campionamento dinamico basata sulla lunghezza del video. Per Amazon Nova Lite e Amazon Nova Pro, con video di durata inferiore o uguale a 16 minuti, viene usata una frequenza di campionamento di 1 fotogramma al secondo (FPS). Per i video di durata superiore a 16 minuti, invece, la frequenza di campionamento diminuisce per mantenere un campionamento costante di 960 fotogrammi, con la frequenza di campionamento dei fotogrammi che varia di conseguenza. Questo approccio è pensato per fornire una comprensione dei video più accurata a livello di scena per video più brevi rispetto a contenuti video più lunghi. Consigliamo di mantenere la durata del video inferiore a 1 ora per i movimenti ridotti e inferiore a 16 minuti per qualsiasi movimento più intenso. Per Amazon Nova Premier, la frequenza di campionamento di 1 FPS viene applicata fino a un limite di 3.200 fotogrammi.

Non dovrebbero esserci differenze tra l’analisi di una versione 4K e una versione Full HD di un video. Allo stesso modo, poiché la frequenza di campionamento è al massimo di 1 FPS, un video a 60 FPS dovrebbe funzionare quanto un video a 30 FPS. A causa del limite di 1 GB per le dimensioni dei video, l’uso di una risoluzione e di un FPS superiori a quelli richiesti non è vantaggioso e limiterà la durata del video che rientra in tale limite di dimensioni. Potresti voler pre-elaborare video più lunghi di 1 GB.

# Limitazioni sulla comprensione dei video
<a name="modalities-video-limitations"></a>

Comprendi le seguenti limitazioni per Amazon Nova:
+ **Comprensione multilingue delle immagini:** i modelli hanno una comprensione limitata delle immagini e dei fotogrammi video multilingue possono avere difficoltà o dare risultati distorti durante attività simili.
+ **Identificazione delle persone**: i modelli Amazon Nova non supportano la capacità di identificare o nominare persone in immagini, documenti o video. I modelli si rifiuteranno di svolgere tali attività.
+ **Ragionamento spaziale**: i modelli Amazon Nova hanno capacità di ragionamento spaziale limitate. Possono avere difficoltà a svolgere attività che richiedono una localizzazione precisa o un’analisi del layout.
+ **Testo piccolo nelle immagini/video**: se il testo nell’immagine o nel video è troppo piccolo, valuta la possibilità di aumentarne le dimensioni relative ritagliando la sezione pertinente e conservando il contesto necessario.
+ **Conteggio**: i modelli Amazon Nova possono fornire conteggi approssimativi degli oggetti in un’immagine, ma potrebbero non essere sempre precisi, specialmente quando si tratta di un gran numero di oggetti piccoli.
+ **Contenuti inappropriati**: i modelli Amazon Nova non elaboreranno immagini inappropriate o esplicite che violano la Policy di utilizzo accettabile
+ **Applicazioni sanitarie**: per via della natura sensibile di questi artefatti, anche se i modelli Amazon Nova possono fornire analisi generali su immagini o video di ambito sanitario, non è consigliabile interpretare scansioni diagnostiche complesse. Le risposte di Amazon Nova non dovrebbero mai sostituirsi alla consulenza medica professionale.

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

La lunghezza del video è il principale fattore che influisce sul numero di token generati. Per calcolare il costo approssimativo, devi moltiplicare il numero stimato di token video per il prezzo per token del modello specifico usato.

La seguente tabella fornisce alcune approssimazioni del campionamento dei frame e dell’uso dei token per lunghezza video per Amazon Nova Pro, Lite e Micro:


| video\$1duration | 10 sec | 30 sec | 16 minuti | 20 minuti | 30 minuti | 45 minuti | 1 ora | 1,5 ore | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
| 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 | 
| Numero stimato di token | 2.880 | 8.640 | 276.480 | 276.480 | 276.480 | 276.480 | 276.480 | 276.480 | 

La seguente tabella fornisce alcune approssimazioni del campionamento dei frame e dell’uso dei token per lunghezza video per Amazon Nova Premier:


| video\$1duration | 10 sec | 30 sec | 16 min | 20 minuti | 30 minuti | 45 minuti | 1 ora | 1,5 ore | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
| frames\$1to\$1sample | 10 | 30 | 960 | 1200 | 1800 | 2700 |  |  | 
| sample\$1rate\$1fps | 1 | 1 | 1 | 1 | 1 | 1 |  |  | 
| Numero stimato di token | 2.880 | 8.640 | 276.480 | 345.600 | 518.400 | 777.600 |  |  | 

La tabella seguente fornisce alcune approssimazioni del campionamento dei frame e dell'utilizzo dei token per lunghezza video per Amazon Nova Lite 1.5


| video\$1duration | 10 sec | 30 sec | 16 min | 20 minuti | 30 minuti | 45 minuti | 1 ora | 1,5 ore | 
| --- |--- |--- |--- |--- |--- |--- |--- |--- |
| frames\$1to\$1sample | 10 | 30 | 960 | 1200 | 1800 | 2700 |  |  | 
| sample\$1rate\$1fps | 1 | 1 | 1 | 1 | 1 | 1 |  |  | 
| Numero stimato di token | 2.880 | 8.640 | 276.480 | 345.600 | 518.400 | 777.600 |  |  | 

# Limitazioni sulla comprensione dei video
<a name="prompting-vision-limitations"></a>

Di seguito sono riportate le principali limitazioni del modello, in cui la precisione e le prestazioni del modello potrebbero non essere garantite.
+ **Un video per richiesta:** attualmente il modello supporta solo 1 video per richiesta. Alcuni framework e librerie utilizzano la memoria per tenere traccia delle interazioni precedenti. Potrebbe esserci un video che è stato aggiunto in un contesto precedente.
+ **Nessun supporto audio:** i modelli sono attualmente addestrati a elaborare e comprendere i contenuti video esclusivamente sulla base delle informazioni visive contenute nel video. Non possiedono la capacità di analizzare o comprendere i componenti audio presenti nel video.
+ **Causalità temporale:** il modello ha una comprensione limitata della causalità degli eventi nella progressione del video. Sebbene risponda bene a domande puntuali, non funziona altrettanto bene su risposte che dipendono dalla comprensione di una sequenza di eventi
+ **Comprensione multilingue delle immagini:** i modelli hanno una comprensione limitata delle immagini e dei fotogrammi video in più lingue. Potrebbero avere difficoltà o allucinazioni durante attività simili.
+ **Identificazione delle persone**: i modelli Amazon Nova non supportano la capacità di identificare o nominare persone in immagini, documenti o video. I modelli si rifiuteranno di svolgere tali attività.
+ **Ragionamento spaziale**: i modelli Amazon Nova hanno capacità di ragionamento spaziale limitate. Possono avere difficoltà a svolgere attività che richiedono una localizzazione precisa o un’analisi del layout.
+ **Testo di piccole dimensioni nelle immagini o nei video**: se il testo dell’immagine o del video è troppo piccolo, valuta la possibilità di aumentarne le dimensioni relative nell’immagine ritagliandolo fino alla sezione pertinente e preservando il contenuto necessario.
+ **Conteggio**: i modelli Amazon Nova possono fornire conteggi approssimativi degli oggetti in un’immagine, ma potrebbero non essere sempre precisi, specialmente quando si tratta di un gran numero di oggetti piccoli.
+ **Contenuti inappropriati**: i modelli Amazon Nova non elaboreranno immagini inappropriate o esplicite che violano la Policy di utilizzo accettabile
+ **Applicazioni sanitarie**: per via della natura sensibile di questi artefatti, anche se i modelli Amazon Nova possono fornire analisi generali su immagini o video di ambito sanitario, non è consigliabile interpretare scansioni diagnostiche complesse. La risposta di Amazon Nova non dovrebbe mai sostituirsi alla consulenza medica professionale.

# Esempi di comprensione dei video
<a name="modalities-video-examples"></a>

L'esempio seguente mostra come inviare una richiesta video ad Amazon Nova Model 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)
```

L'esempio seguente mostra come inviare un video utilizzando una posizione Amazon S3 ad 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)
```

# Comprensione dei documenti
<a name="modalities-document"></a>

**Nota**  
Questa documentazione è per Amazon Nova versione 1. Per la guida alla comprensione dei documenti di Amazon Nova 2, visita [Document understanding](https://docs.aws.amazon.com/nova/latest/nova2-userguide/using-multimodal-models.html#document-understanding).

La funzionalità di comprensione dei documenti di Amazon Nova ti consente di includere interi documenti (file WordPDFs, fogli di calcolo, ecc.) nel prompt e porre domande o richieste sul loro contenuto. I modelli di comprensione multimodale di Nova (Lite, Pro, Premier) possono interpretare sia il testo che gli elementi visivi (come grafici o tabelle) all'interno di questi documenti. Ciò consente casi d'uso come la risposta a domande, il riepilogo e l'analisi di report lunghi o documenti scansionati. Le caratteristiche principali includono una finestra contestuale molto ampia (1-2 milioni di token) per documenti lunghi e la capacità di gestire più documenti in un'unica query. 

Amazon Nova distingue due tipi di input di documenti:
+ **Tipi di documenti basati su testo** (ad esempio TXT, CSV, Markdown, HTML, DOC): vengono elaborati principalmente per il loro contenuto testuale. Nova si concentrerà sulla comprensione e l'estrazione di informazioni dal testo di questi documenti. 
+ **Tipi di documenti basati su supporti** (ad esempio PDF, DOCX): questi file possono contenere layout complessi, immagini, grafici o grafica incorporata. Per i documenti multimediali, Nova elabora sia gli elementi visivi che quelli testuali. Nova utilizza la comprensione basata sulla visione per interpretare i contenuti visivi, come grafici, tabelle, diagrammi o schermate, insieme al testo del documento.

  JPEG2000 e JBIG2 non sono supportati nei file PDF in Amazon Nova.

I formati di file supportati includono tipi di documenti comuni: file di testo semplice e di testo strutturato (CSV, TXT), fogli di calcolo (XLS/XLSX), HTML/Markdown, Word documents (DOC/DOCX) e file PDF. Per le immagini all'interno dei documenti, vengono gestiti i formati di immagine standard (PNG, JPG, GIF, WebP), sebbene quelli PDFs contenenti determinate codifiche di immagine (CYMK, SVG) non siano supportati. 


**Limiti di dimensione dei documenti e linee guida per l'utilizzo**  

| Vincolo | Limite | 
| --- | --- | 
|  Numero massimo di documenti  |  Fino a 5 documenti per richiesta (valido sia per il caricamento diretto che per Amazon S3)  | 
|  Dimensioni del documento basato su testo  |  Ogni documento di testo (ad esempio, .txt, .csv, .md, .html, .doc) deve pesare ≤ 4,5 MB  | 
|  Dimensioni del documento basato su supporti  |  Per i file con estensione pdf e docx, non esiste un limite per le dimensioni dei singoli file, ma: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/nova/latest/userguide/modalities-document.html)  | 
|  Contenuti PDF non supportati  |  PDFs contenenti profili di colore CMYK o immagini SVG non sono supportati  | 

# Utilizzo di Document Understanding di Nova tramite API
<a name="modalities-document-examples"></a>

Per illustrare come utilizzare Amazon Nova per il controllo qualità (Question-Answering) o l'analisi dei documenti, ecco un esempio semplificato in Python. Utilizzeremo l'API AWS Bedrock (tramite Boto3 SDK) per inviare un documento PDF insieme a una domanda a cui il modello dovrà rispondere.

```
            
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)
```

Se i tuoi file di input sono di grandi dimensioni (superano il limite di caricamento diretto di 25 MB) o hai molti file, puoi archiviarli in Amazon S3 e farvi riferimento. In questo modo si evita l'invio di byte non elaborati durante la richiesta. Quando usi S3, assicurati che il servizio Bedrock disponga dell'autorizzazione per accedere al bucket/oggetto. Ad esempio, per fare riferimento a un PDF in S3, la fonte del documento utilizzerebbe «S3location» anziché «byte», in questo modo:

```
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**  
I nomi dei documenti possono includere solo caratteri alfanumerici, trattini, parentesi e parentesi quadre.  
Il campo `name` è vulnerabile alle iniezioni di prompt, poiché il modello potrebbe inavvertitamente interpretarlo come istruzioni. Pertanto, consigliamo di specificare un nome neutro.

# Gestione degli errori
<a name="text-error-handing"></a>

Il modo in cui gli errori vengono comunicati al client varia a seconda del tipo di errore che si verifica. Questa sezione si concentra solo sulle condizioni di errore specifiche del modello Amazon Nova. I tre tipi di errore principali da gestire nel codice dell’applicazione sono gli errori di **convalida dell’input**, **deviazione dell’input per IA responsabile (RAI)** e **deviazione dell’output per RAI**.

**Convalida dell’input:** questi errori si verificano quando utilizzi un valore non supportato come parametro di input. Ad esempio, un valore fuori dai limiti per la temperatura o un formato errato dell’input `image`. Tutti gli errori di convalida dell’input sono espressi come una **ValidationException** che contiene una stringa di messaggio che descrive la causa del problema.

Gli errori di **deviazione dell’input per RAI** si verificano quando viene determinato che i valori del testo o le immagini di input violano la policy di IA responsabile di AWS. Questi errori sono espressi come una **ValidationException** con uno dei seguenti messaggi:
+ Messaggio di convalida per gli **input di testo**: “Questa richiesta è stata bloccata dai nostri filtri di contenuti. Modifica il prompt di testo per inviare una nuova richiesta”.
+ Messaggio di convalida per gli **input con immagini**: “Questa richiesta è stata bloccata dai nostri filtri di contenuti. Modifica l’immagine di input per inviare una nuova richiesta”.
+ Messaggio di convalida per gli **input con video**: “Questa richiesta è stata bloccata dai nostri filtri di contenuti. Modifica il video di input per inviare una nuova richiesta”.

Gli errori di deviazione dell’output per RAI si verificano quando l’output viene generato, ma viene ritenuto non in linea con la policy di IA responsabile di AWS. Quando si verifica questo tipo di errore, non viene utilizzata un’eccezione. Viene invece restituita una risposta con esito positivo, e la sua struttura contiene un campo `error`, costituito da una stringa con uno dei seguenti valori:
+ Messaggio di convalida per il **testo di output**: “Il testo generato è stato bloccato dai nostri filtri di contenuti”.