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à.
Utilizzo di Document Understanding di Nova tramite API
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.