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.
Utilisation de l'API Document Understanding de Nova
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.