Uso de la API de Automatización de Datos de Bedrock
La característica Automatización de Datos de Amazon Bedrock (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 maneras: con la operación CreateDataAutomationProject o con la consola de Amazon Amazon Bedrock.
Uso de la API
Cuando se utiliza la API para crear un proyecto, se invoca 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.
Existe un límite en el número de proyectos que se pueden crear para cada cuenta de AWS. 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
Si tiene un proyecto configurado, puede empezar a procesar imágenes mediante la operación InvokeDataAutomationAsync. 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.
Obtención del estado de la automatización de datos
Para comprobar el estado del trabajo de procesamiento y recuperar los resultados, use GetDataAutomationStatus.
La API GetDataAutomationStatus 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 produjo 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.