View a markdown version of this page

Utilizzo dell’API Bedrock Data Automation - Amazon Bedrock

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 dell’API Bedrock Data Automation

La funzionalità Amazon Bedrock Data Automation (BDA) fornisce un flusso di lavoro API semplificato per l'elaborazione dei dati. Per tutte le modalità, questo flusso di lavoro consiste in tre fasi principali: creazione di un progetto, invocazione dell’analisi e recupero dei risultati. Per recuperare l’output personalizzato per i dati elaborati, fornisci l’ARN del blueprint quando invochi l’operazione di analisi.

Creare un progetto Data Automation

Per iniziare a elaborare i file con BDA, devi prima creare un progetto di Data Automation. Questa operazione può essere eseguita in due modi, con l' CreateDataAutomationProject operazione o con la console Amazon Amazon Bedrock .

Uso dell’API

Quando si utilizza l'API per creare un progetto, si richiama il CreateDataAutomationProject. Durante la creazione di un progetto, è necessario definire le impostazioni di configurazione per il tipo di file che si intende elaborare (la modalità da utilizzare). Di seguito è riportato un esempio di come è possibile configurare l’output standard per le immagini:

{ "standardOutputConfiguration": { "image": { "state": "ENABLED", "extraction": { "category": { "state": "ENABLED", "types": [ "CONTENT_MODERATION", "TEXT_DETECTION" ] }, "boundingBox": { "state": "ENABLED" } }, "generativeField": { "state": "ENABLED", "types": [ "IMAGE_SUMMARY", "IAB" ] } } } }

L’API convalida la configurazione di input. Crea un nuovo progetto con un ARN univoco. Le impostazioni del progetto vengono archiviate per l’utilizzo futuro. Se un progetto viene creato senza parametri, vengono applicate le impostazioni predefinite. Ad esempio, durante l’elaborazione delle immagini, la sintesi delle immagini e il rilevamento del testo saranno abilitati per impostazione predefinita.

C'è un limite al numero di progetti che possono essere creati per AWS account. Alcune combinazioni di impostazioni potrebbero non essere consentite o richiedere autorizzazioni aggiuntive.

Async

Invoca Data Automation Async

Hai impostato un progetto, puoi iniziare a elaborare le immagini utilizzando l'operazione. InvokeDataAutomationAsync Se si utilizza un output personalizzato, è possibile inviare uno o più blueprint ARN per richiesta.

Questa chiamata API avvia l’elaborazione asincrona dei file in un bucket S3 specificato. L’API accetta l’ARN del progetto e il file da elaborare, quindi avvia il processo di elaborazione asincrona. invocationArnViene restituito un per tracciare il processo. Vengono generati errori se il progetto non esiste, se il chiamante non dispone delle autorizzazioni necessarie o se i file di input non sono in un formato supportato.

Di seguito è riportata la struttura della richiesta JSON:

{ { "blueprints": [ { "blueprintArn": "string", "stage": "string", "version": "string" } ], "clientToken": "string", "dataAutomationConfiguration": { "dataAutomationProjectArn": "string", "stage": "string" }, "dataAutomationProfileArn": "string", "encryptionConfiguration": { "kmsEncryptionContext": { "string" : "string" }, "kmsKeyId": "string" }, "inputConfiguration": { "assetProcessingConfiguration": { "video": { "segmentConfiguration": { ... } } "s3Uri": "string" }, "notificationConfiguration": { "eventBridgeConfiguration": { "eventBridgeEnabled": boolean } }, "outputConfiguration": { "s3Uri": "string" }, "tags": [ { "key": "sstring", "value": "string" } ] } }

Quando eseguite InvokeDataAutomationAsync su un file video, potete impostare una sezione di almeno 5 minuti di un video che verrà trattata come un video completo per l’estrazione dei dati. Questo orario è impostato con un timestamp del millisecondo iniziale e del millisecondo finale. Queste informazioni vengono aggiunte nell’elemento assetProcessingConfiguration.

Sync

Richiama l'automazione dei dati

In alternativa, è possibile utilizzare l'InvokeDataAutomationoperazione. L'InvokeDataAutomationoperazione supporta solo l'elaborazione delle immagini.

Questa chiamata API avvia l'elaborazione sincrona di quanto fornito tramite un riferimento S3 o nel payload. L'API accetta l'ARN del progetto e il file da elaborare e restituisce le informazioni strutturate nella risposta. Vengono generati errori se il progetto non esiste, se il chiamante non dispone delle autorizzazioni necessarie o se i file di input non sono in un formato supportato. Se l'immagine analizzata è classificata semanticamente come documento, anche questo verrà generato come un errore, perché supporta InvokeDataAutomation solo le immagini. Per evitare questo errore, potete utilizzare Modality Routing sul vostro progetto per forzare l'instradamento di tutti i tipi di file di immagine come Immagini (vedi). Disabilitazione delle modalità e dei tipi di file di routing

Ecco la struttura della richiesta JSON sia per l'immagine che per il documento. La richiesta API di sincronizzazione supporta sia i byte di immagine che il bucket S3. Per utilizzare i byte dell'immagine, è sufficiente sostituire “s3Uri”: “string” nella sezione «InputConfiguration» con “bytes“: “base64-encoded string“ outputConfiguration è opzionale. L'impostazione predefinita è l'output in linea. Se l'uri S3 viene fornito come outputConfiguration, l'output crittografato verrà inserito nel bucket S3 specificato.

{ { "blueprints": [ { "blueprintArn": "string", //use for image "stage": "string", "version": "string" } ], "dataAutomationConfiguration": { "dataAutomationProjectArn": "string", "stage": "string" }, "dataAutomationProfileArn": "string", "inputConfiguration": { "s3Uri": "string" }, "outputConfiguration": { "s3Uri": "string" } } }

L'output include strutture uniche che dipendono dal file, dalle operazioni e dalla configurazione di output personalizzata specificati nella chiamata a. InvokeDataAutomation Nota che questa risposta include sia le risposte di output standard che personalizzate.

Ecco la struttura della risposta JSON con configurazione di output standard e personalizzata:

{ "semanticModality": "IMAGE", "outputSegments": [ { "customOutputStatus": "MATCH", "standardOutput": { "image": { "summary": "This image shows a white Nike running shoe with a black Nike swoosh logo on the side. The shoe has a modern design with a thick, cushioned sole and a sleek upper part. The word \"ROUKEA\" is visible on the sole of the shoe, repeated twice. The shoe appears to be designed for comfort and performance, suitable for running or athletic activities. The background is plain and dark, highlighting the shoe.", "iab_categories": [ { "category": "Style and Fashion", "confidence": 0.9890000000000001, "taxonomy_level": 1, "parent_name": "", "id": "0ebe86c8-e9af-43f6-a7bb-182a61d2e1fd", "type": "IAB" }, { "category": "Men's Fashion", "confidence": 0.9890000000000001, "taxonomy_level": 2, "parent_name": "Style and Fashion", "id": "13bd456a-3e1b-4681-b0dd-f42a8d5e5ad5", "type": "IAB" }, { "category": "Style and Fashion", "confidence": 0.853, "taxonomy_level": 1, "parent_name": "", "id": "177b29a1-0e40-45c1-8540-5f49a3d7ded3", "type": "IAB" }, { "category": "Women's Fashion", "confidence": 0.853, "taxonomy_level": 2, "parent_name": "Style and Fashion", "id": "f0197ede-3ba6-498b-8f7b-43fecc5735ef", "type": "IAB" } ], "content_moderation": [], "logos": [ { "id": "2e109eb6-39f5-4782-826f-911b62d277fb", "type": "LOGOS", "confidence": 0.9170872209665809, "name": "nike", "locations": [ { "bounding_box": { "left": 0.3977411523719743, "top": 0.4922481227565456, "width": 0.2574246356942061, "height": 0.15461772197001689 } } ] } ], "text_words": [ { "id": "f70301df-5725-405e-b50c-612e352467bf", "type": "TEXT_WORD", "confidence": 0.10091366487951722, "text": "ROUKEA", "locations": [ { "bounding_box": { "left": 0.6486002310163024, "top": 0.6783271480251003, "width": 0.13219473954570082, "height": 0.05802226710963898 }, "polygon": [ { "x": 0.6486002310163024, "y": 0.7025876947351404 }, { "x": 0.7760931467045249, "y": 0.6783271480251003 }, { "x": 0.7807949705620032, "y": 0.7120888684246991 }, { "x": 0.6533020989743271, "y": 0.7363494151347393 } ] } ], "line_id": "9147fec0-d869-4d58-933e-93eb7164c404" } ], "text_lines": [ { "id": "9147fec0-d869-4d58-933e-93eb7164c404", "type": "TEXT_LINE", "confidence": 0.10091366487951722, "text": "ROUKEA", "locations": [ { "bounding_box": { "left": 0.6486002310163024, "top": 0.6783271480251003, "width": 0.13219473954570082, "height": 0.05802226710963898 }, "polygon": [ { "x": 0.6486002310163024, "y": 0.7025876947351404 }, { "x": 0.7760931467045249, "y": 0.6783271480251003 }, { "x": 0.7807949705620032, "y": 0.7120888684246991 }, { "x": 0.6533020989743271, "y": 0.7363494151347393 } ] } ] } ] }, "statistics": { "iab_category_count": 4, "content_moderation_count": 0, "logo_count": 1, "line_count": 1, "word_count": 1 }, "metadata": { "semantic_modality": "IMAGE", "image_width_pixels": 173, "image_height_pixels": 148, "image_encoding": "jpeg", "s3_bucket": "test-bucket", "s3_key": "uploads/test-image.jpeg" } }, "customOutput": { "matched_blueprint": { "arn": "arn:aws:bedrock:us-east-1:123456789012:blueprint/test", "version": "1", "name": "test-blueprint", "confidence": 1.0 }, "inference_result": { "product_details": { "product_category": "footwear" }, "image_sentiment": "Positive", "image_background": "Solid color", "image_style": "Product image", "image_humor": false } } } ] }

Ottenere lo stato di Data Automation

Per verificare lo stato del processo di elaborazione e recuperare i risultati, usa. GetDataAutomationStatus

L' GetDataAutomationStatus API consente di monitorare lo stato di avanzamento del lavoro e accedere ai risultati una volta completata l'elaborazione. L'API accetta l'ARN di chiamata restituito da. InvokeDataAutomationAsync Controlla lo stato corrente del processo e restituisce le informazioni pertinenti. Una volta completato il processo, fornisce la posizione dei risultati in S3.

Se il processo è ancora in corso, restituisce lo stato corrente (ad esempio, "«InProgress). Se il processo è completato, restituisce “Success” insieme alla posizione S3 dei risultati. Se c'è stato un errore, restituisce "ServiceError" o ClientError "con i dettagli dell'errore.

La richiesta JSON ha il seguente formato:

{ "InvocationArn": "string" // Arn }

Risposta di output asincrono

I risultati dell’elaborazione dei file vengono archiviati nel bucket S3 configurato per le immagini di input. L'output include strutture uniche che dipendono sia dalla modalità del file che dai tipi di operazione specificati nella chiamata a InvokeDataAutomationAsync.

Per informazioni sugli output standard per una determinata modalità, consulta Output standard in Bedrock Data Automation.

Ad esempio, per le immagini può includere informazioni su quanto segue:

  • Riepilogo dell’immagine: un riepilogo o una didascalia descrittiva dell’immagine.

  • Classificazione IAB: categorizzazione basata sulla tassonomia IAB.

  • Rilevamento del testo dell’immagine: testo estratto con informazioni sul riquadro di delimitazione.

  • Moderazione dei contenuti: rileva contenuti inappropriati, indesiderati oppure offensivi in un’immagine.

Di seguito è riportato una esempio di frammento di codice dell’output per l’elaborazione delle immagini:

{ "metadata": { "id": "image_123", "semantic_modality": "IMAGE", "s3_bucket": "my-s3-bucket", "s3_prefix": "images/", "image_width_pixels": 1920, "image_height_pixels": 1080 }, "image": { "summary": "A lively party scene with colorful decorations and supplies", "iab_categories": [ { "category": "Party Supplies", "confidence": 0.9, "parent_name": "Events & Attractions" } ], "content_moderation": [ { "category": "Drugs & Tobacco Paraphernalia & Use", "confidence": 0.7 } ], "text_words": [ { "id": "word_1", "text": "lively", "confidence": 0.9, "line_id": "line_1", "locations": [ { "bounding_box": { "left": 100, "top": 200, "width": 50, "height": 20 }, "polygon": [ { "x": 100, "y": 200 }, { "x": 150, "y": 200 }, { "x": 150, "y": 220 }, { "x": 100, "y": 220 } ] } ] } ] } }

Questo output strutturato consente una facile integrazione con le applicazioni downstream e ulteriori analisi.

API Blueprint Optimization

InvokeBlueprintOptimizationAsync

Puoi migliorare la precisione del blueprint fornendo risorse di contenuto di esempio con i risultati attesi corretti. L'ottimizzazione delle istruzioni Blueprint utilizza gli esempi per perfezionare le istruzioni in linguaggio naturale nei campi del blueprint, migliorando così la precisione dei risultati di inferenza.

Per un blueprint, puoi chiamare l' InvokeBlueprintOptimizationAsync API che avvia il processo di ottimizzazione asincrona per migliorare le istruzioni sul campo Blueprint sulla base di dati di base.

Corpo della richiesta

{ "blueprint": { "blueprintArn": "arn:aws:bedrock:us-east-1:123456789012:blueprint/my-document-processor", "stage": "DEVELOPMENT" }, "samples": [ { "assetS3Object": { "s3Uri": "s3://my-optimization-bucket/samples/document1.pdf" }, "groundTruthS3Object": { "s3Uri": "s3://my-optimization-bucket/ground-truth/document1-expected.json" } } ], "outputConfiguration": { "s3Object": { "s3Uri": "s3://my-optimization-bucket/results/optimization-output" } }, "dataAutomationProfileArn": "arn:aws:bedrock:us-east-1:123456789012:data-automation-profile/my-profile" }
Risposta

{ "invocationArn": "arn:aws:bedrock:us-east-1:123456789012:blueprint-optimization-invocation/opt-12345abcdef" }
Importante

Salva InvocationARN per monitorare lo stato del processo di ottimizzazione.

GetBlueprintOptimizationStatus

Recupera lo stato corrente e i risultati di un processo di ottimizzazione del blueprint emesso chiamando l'API asincrona. InvokeBlueprintOptimizationAsync GetBlueprintOptimizationStatus accetta l'ARN di chiamata restituito da. InvokeBlueprintOptimizationAsync

Risposta

{ "status": "Success", "outputConfiguration": { "s3Object": { "s3Uri": "s3://my-optimization-bucket/results/optimization-output" } } }
Valori di stato:

  • Creato: il lavoro è stato creato

  • InProgress - L'ottimizzazione è in corso

  • Successo: l'ottimizzazione è stata completata con successo

  • ServiceError - Si è verificato un errore interno del servizio

  • ClientError - Parametri di richiesta non validi

CopyBlueprintStage

Copia il Blueprint dalla fase di origine alla fase di destinazione (ad es. Dalla fase di SVILUPPO alla fase LIVE). Verrà utilizzato per sincronizzare tutta la configurazione, incluso il campo OptimizationSamples, tra le fasi.

Corpo della richiesta

{ "blueprintArn": "arn:aws:bedrock:us-east-1:123456789012:blueprint/my-document-processor", "sourceStage": "DEVELOPMENT", "targetStage": "LIVE" }
Valori delle fasi:

  • SVILUPPO - Development/testing fase

  • LIVE - Fase di produzione

Risposta

{}
avvertimento

Questa operazione sovrascrive la configurazione della fase di destinazione e non può essere annullata facilmente. Assicurati di eseguire test approfonditi prima di eseguire la copia su LIVE stage.