

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à.

# 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.