Uso de la API de Automatización de Datos de Bedrock - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Uso de la API de Automatización de Datos de Bedrock

La función Amazon Bedrock de automatización de datos (BDA) proporciona un flujo de trabajo de API simplificado para procesar sus datos. Para todas las modalidades, este flujo de trabajo consta de tres pasos principales: crear un proyecto, invocar el análisis y recuperar los resultados. Para recuperar una salida personalizada de los datos procesados, debe proporcionar el ARN del esquema al invocar la operación de análisis.

Creación de un proyecto de automatización de datos

Para empezar a procesar archivos con BDA, primero debe crear un proyecto de automatización de datos. Esto se puede hacer de dos formas, con la CreateDataAutomationProject operación o con la Amazon Amazon Bedrock Console.

Uso de la API

Cuando se utiliza la API para crear un proyecto, se invoca la CreateDataAutomationProject. Al crear un proyecto, debe definir los ajustes de configuración para el tipo de archivo que va a procesar (la modalidad que pretende utilizar). A continuación, se muestra un ejemplo de cómo se puede configurar la salida estándar para las imágenes:

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

La API valida la configuración de entrada. Crea un nuevo proyecto con un ARN único. La configuración del proyecto se guarda para usarla más adelante. Si se crea un proyecto sin parámetros, se aplicará la configuración predeterminada. Por ejemplo, al procesar imágenes, el resumen de imágenes y la detección de texto estarán habilitadas de forma predeterminada.

Hay un límite en la cantidad de proyectos que se pueden crear por AWS cuenta. Es posible que no se permitan determinadas combinaciones de ajustes o que se requieran permisos adicionales.

Invocación asíncrona de automatización de datos

Ya tienes un proyecto configurado, puedes empezar a procesar imágenes mediante esta InvokeDataAutomationAsyncoperación. Si utiliza una salida personalizada, solo puede enviar un único ARN de esquema por solicitud.

Esta llamada a la API inicia el procesamiento asíncrono de los archivos en un bucket de S3 específico. La API acepta el ARN del proyecto y el archivo que se va a procesar y, a continuación, inicia el trabajo de procesamiento asíncrono. Se devuelve un ID de trabajo para realizar un seguimiento del proceso. Se generarán errores si el proyecto no existe, si el iniciador de la llamada no tiene los permisos necesarios o si los archivos de entrada no están en un formato compatible.

A continuación, se muestra la estructura de la solicitud 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" } ] } }

Cuando ejecuta InvokeDataAutomationAsync en un archivo de vídeo, puede configurar una sección de cinco minutos o más de un vídeo que se considerará un vídeo completo para la extracción de datos. Este tiempo se establece con una marca de tiempo del milisegundo inicial y del milisegundo final. Esta información se añade en el elemento assetProcessingConfiguration.

Invoque la automatización de datos (sincronización)

Como alternativa, puede utilizar la InvokeDataAutomationoperación. La InvokeDataAutomation operación solo admite el procesamiento de imágenes.

Esta llamada a la API inicia el procesamiento sincrónico de lo proporcionado a través de una referencia de S3 o en la carga útil. La API acepta el ARN del proyecto y el archivo que se va a procesar, y devuelve la información estructurada de la respuesta. Se generarán errores si el proyecto no existe, si el iniciador de la llamada no tiene los permisos necesarios o si los archivos de entrada no están en un formato compatible. Si la imagen analizada se clasifica semánticamente como un documento, también se generará como un error, ya que InvokeDataAutomation solo admite imágenes. Para evitar este error, puede utilizar el enrutamiento por modalidad en su proyecto para forzar el enrutamiento de todos los tipos de archivos de imagen como imágenes (consulteDesactivación de modalidades y enrutamiento de tipos de archivos).

Esta es la estructura de la solicitud 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 } }, "tags": [ { "key": "string", "value": "string" } ] } }

La salida incluye estructuras únicas que dependen del archivo, las operaciones y la configuración de salida personalizada especificadas en la llamada a InvokeDataAutomation. Tenga en cuenta que esta respuesta incluye las respuestas de salida estándar y personalizadas.

Esta es la estructura de la respuesta JSON con una configuración de salida estándar y personalizada:

{ "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 } } } ] }

Obtención del estado de la automatización de datos

Para comprobar el estado de su trabajo de procesamiento y recuperar los resultados, utilice GetDataAutomationStatus.

La GetDataAutomationStatus API le permite supervisar el progreso de su trabajo y acceder a los resultados una vez finalizado el procesamiento. La API acepta el ARN de invocación devuelto por. InvokeDataAutomationAsync Comprueba el estado actual del trabajo y devuelve la información pertinente. Una vez finalizado el trabajo, proporciona la ubicación de los resultados en S3.

Si el trabajo aún está en curso, devuelve el estado actual (por ejemplo, "InProgress«). Si el trabajo está completo, devuelve “Success” junto con la ubicación en S3 de los resultados. Si se ha producido un error, devuelve "ServiceError" o ClientError "con los detalles del error.

Este es el formato de la solicitud JSON:

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

Respuesta de salida asíncrona

Los resultados del procesamiento de archivos se almacenan en el bucket de S3 configurado para las imágenes de entrada. La salida incluye estructuras únicas que dependen tanto de la modalidad del archivo como de los tipos de operación especificados en la llamada a InvokeDataAutomationAsync.

Para obtener información sobre las salidas estándar de una modalidad determinada, consulte Salida estándar en Automatización de Datos de Bedrock.

Por ejemplo, en el caso de las imágenes, puede incluir información sobre lo siguiente:

  • Resumen de imágenes: resumen descriptivo o título de la imagen.

  • Clasificación de IAB: clasificación basada en la taxonomía de IAB.

  • Detección de texto de imagen: texto extraído con información sobre el cuadro delimitador.

  • Moderación de contenido: detecta contenido inapropiado, no deseado u ofensivo en una imagen.

A continuación, se muestra un fragmento de código de ejemplo de la salida del procesamiento de imágenes:

{ "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 } ] } ] } ] } }

Esta salida estructurada permite una fácil integración con las aplicaciones posteriores y un análisis posterior.

Optimización del plano APIs

InvokeBlueprintOptimizationAsync

Puede mejorar la precisión de los planos proporcionando activos de contenido de ejemplo con los resultados esperados correctos. La optimización de las instrucciones del plan utiliza los ejemplos para refinar las instrucciones en lenguaje natural de los campos del plan, lo que mejora la precisión de los resultados de la inferencia.

En el caso de un plano, puedes utilizar la InvokeBlueprintOptimizationAsync API, que inicia el trabajo de optimización asíncrona para mejorar las instrucciones de campo del Blueprint en función de datos reales.

Cuerpo de la solicitud

{ "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" }
Respuesta

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

Guarde el ARN de invocación para supervisar el estado del trabajo de optimización.

GetBlueprintOptimizationStatus

Recupera el estado actual y los resultados de un trabajo de optimización de planos generado mediante una llamada a la API asíncrona. InvokeBlueprintOptimizationAsync GetBlueprintOptimizationStatus acepta el ARN de invocación devuelto por. InvokeBlueprintOptimizationAsync

Respuesta

{ "status": "Success", "outputConfiguration": { "s3Object": { "s3Uri": "s3://my-optimization-bucket/results/optimization-output" } } }
Valores de los estados:

  • Creado: se ha creado el trabajo

  • InProgress - La optimización se está ejecutando

  • Éxito: la optimización se completó correctamente

  • ServiceError - Se ha producido un error de servicio interno

  • ClientError - Parámetros de solicitud no válidos

CopyBlueprintStage

Copia el plano de la etapa de origen a la etapa de destino (p. ej. De la etapa de DESARROLLO a la etapa EN VIVO). Esto se usará para sincronizar toda la configuración, incluido el campo OptimizationSamples, entre las etapas.

Cuerpo de la solicitud

{ "blueprintArn": "arn:aws:bedrock:us-east-1:123456789012:blueprint/my-document-processor", "sourceStage": "DEVELOPMENT", "targetStage": "LIVE" }
Valores de la etapa:

  • DESARROLLO: Development/testing etapa

  • EN DIRECTO - Etapa de producción

Respuesta

{}
aviso

Esta operación sobrescribe la configuración de la etapa de destino y no se puede deshacer fácilmente. Asegúrese de realizar pruebas exhaustivas antes de copiar al escenario LIVE.