Usar a API da Automação de Dados do Bedrock - Amazon Bedrock

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar a API da Automação de Dados do Bedrock

O recurso Amazon Bedrock Data Automation (BDA) fornece um fluxo de trabalho de API simplificado para processar seus dados. Para todas as modalidades, esse fluxo de trabalho consiste em três etapas principais: criar um projeto, invocar a análise e recuperar os resultados. Para recuperar a saída personalizada para seus dados processados, forneça o ARN do esquema ao invocar a operação de análise.

Criar um projeto de automação de dados

Para começar a processar arquivos com a BDA, primeiro é necessário criar um projeto de automação de dados. Isso pode ser feito de duas maneiras, com a CreateDataAutomationProject operação ou com o Amazon Amazon Bedrock Console.

Usar a API

Ao usar a API para criar um projeto, você invoca o. CreateDataAutomationProject Ao criar um projeto, é necessário definir as configurações para o tipo de arquivo que você tende a processar (a modalidade que pretende usar). Veja um exemplo de como é possível configurar a saída padrão para imagens:

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

A API valida a configuração de entrada. Ela cria um projeto com um ARN exclusivo. As configurações do projeto são armazenadas para uso futuro. Se um projeto for criado sem parâmetros, serão aplicadas as configurações padrão. Por exemplo, ao processar imagens, o resumo de imagens e a detecção de texto serão habilitados por padrão.

Há um limite para o número de projetos que podem ser criados por AWS conta. Determinadas combinações de configurações podem não ser permitidas ou exigir permissões adicionais.

Invocar a automação de dados assíncrona

Você tem um projeto configurado, pode começar a processar imagens usando a InvokeDataAutomationAsyncoperação. Se estiver usando a saída personalizada, só poderá enviar um único ARN do esquema por solicitação.

Essa chamada de API inicia o processamento assíncrono dos arquivos em um bucket especificado do S3. A API aceita o ARN do projeto e o arquivo a ser processado e, em seguida, inicia o trabalho de processamento assíncrono. Um ID do trabalho é exibido para rastrear o processo. Serão gerados erros se o projeto não existir, se o chamador não tiver as permissões necessárias ou se os arquivos de entrada não estiverem em um formato compatível.

Abaixo é apresentada a estrutura da solicitação 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" } ] } }

Ao executar InvokeDataAutomationAsync em um arquivo de vídeo, é possível definir uma seção de 5 minutos ou mais de um vídeo que será tratada como um vídeo completo para a extração de dados. Esse tempo é definido com um carimbo de data/hora do milissegundo inicial e do milissegundo final. Essas informações são adicionadas ao elemento assetProcessingConfiguration.

Invoque a automação de dados (sincronização)

Como alternativa, você pode usar a InvokeDataAutomationoperação. A InvokeDataAutomation operação só oferece suporte ao processamento de imagens.

Essa chamada de API inicia o processamento síncrono do fornecido por meio de uma referência do S3 ou na carga útil. A API aceita o ARN do projeto e o arquivo a ser processado e retorna os insights estruturados na resposta. Serão gerados erros se o projeto não existir, se o chamador não tiver as permissões necessárias ou se os arquivos de entrada não estiverem em um formato compatível. Se a imagem analisada for classificada semanticamente como um documento, isso também será gerado como um erro, pois a InvokeDataAutomation única suporta imagens. Para evitar esse erro, você pode usar o Roteamento de Modalidade em seu projeto para forçar o roteamento de todos os tipos de arquivos de imagem como Imagens (consulte). Desabilitar modalidades e tipos de arquivo de roteamento

Aqui está a estrutura da solicitação 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" } ] } }

A saída inclui estruturas exclusivas, dependendo do arquivo, das operações e da configuração de saída personalizada especificadas na chamada para InvokeDataAutomation. Observe que essa resposta inclui as respostas de saída padrão e personalizadas.

Aqui está a estrutura da resposta JSON com configuração de saída padrão e 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 } } } ] }

Obter o status da automação de dados

Para verificar o status do seu trabalho de processamento e recuperar os resultados, use GetDataAutomationStatus.

A GetDataAutomationStatus API permite que você monitore o progresso do seu trabalho e acesse os resultados após a conclusão do processamento. A API aceita o ARN de invocação retornado por. InvokeDataAutomationAsync Ela verifica o status atual do trabalho e exibe informações relevantes. Depois que o trabalho é concluído, ela fornece o local dos resultados no S3.

Se o trabalho ainda estiver em andamento, ele retornará o estado atual (por exemplo, "InProgress“). Se o trabalho for concluído, ela exibirá “Success” com o local dos resultados no S3. Se houver um erro, ele retornará "ServiceError" ou "ClientError" com detalhes do erro.

Abaixo é apresentado o formato da solicitação JSON:

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

Resposta de saída assíncrona

Os resultados do processamento do arquivo são armazenados no bucket do S3 configurado para as imagens de entrada. A saída inclui estruturas exclusivas, dependendo da modalidade do arquivo e dos tipos de operação especificados na chamada para InvokeDataAutomationAsync.

Para ter informações sobre as saídas padrão para uma determinada modalidade, consulte Saída padrão na Automação de Dados do Bedrock.

Como exemplo, para imagens, ela pode incluir informações sobre o seguinte:

  • Resumo da imagem: um resumo descritivo ou legenda da imagem.

  • Classificação do IAB: categorização baseada na taxonomia do IAB.

  • Detecção de texto de imagem: texto extraído com informações da caixa delimitadora.

  • Moderação de conteúdo: detecta conteúdo impróprio, indesejado ou ofensivo em uma imagem.

Veja abaixo um trecho de exemplo de saída para processamento de imagem:

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

Essa saída estruturada permite fácil integração com aplicações subsequentes e análises adicionais.

Otimização do blueprint APIs

InvokeBlueprintOptimizationAsync

Você pode melhorar a precisão do blueprint fornecendo exemplos de ativos de conteúdo com os resultados corretos esperados. A otimização de instruções do Blueprint usa seus exemplos para refinar as instruções em linguagem natural nos campos do blueprint, o que melhora a precisão dos resultados da inferência.

Para um blueprint, você pode chamar a InvokeBlueprintOptimizationAsync API que inicia o trabalho de otimização assíncrona para melhorar as instruções de campo do Blueprint com base em dados reais básicos.

Corpo da Solicitação

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

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

Salve o InvocationARN para monitorar o status do trabalho de otimização.

GetBlueprintOptimizationStatus

Recupera o status atual e os resultados de um trabalho de otimização de blueprint gerado chamando a API assíncrona. InvokeBlueprintOptimizationAsync GetBlueprintOptimizationStatus aceita o ARN de invocação retornado por. InvokeBlueprintOptimizationAsync

Resposta

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

  • Criado - O trabalho foi criado

  • InProgress - A otimização está em execução

  • Sucesso - Otimização concluída com sucesso

  • ServiceError - Ocorreu um erro de serviço interno

  • ClientError - Parâmetros de solicitação inválidos

CopyBlueprintStage

Copia o Blueprint do estágio de origem para o estágio de destino (por exemplo. (estágio de DESENVOLVIMENTO até estágio AO VIVO). Isso será usado para sincronizar toda a configuração, incluindo o campo OptimizationSamples, entre os estágios.

Corpo da Solicitação

{ "blueprintArn": "arn:aws:bedrock:us-east-1:123456789012:blueprint/my-document-processor", "sourceStage": "DEVELOPMENT", "targetStage": "LIVE" }
Valores do estágio:

  • DESENVOLVIMENTO - Development/testing estágio

  • LIVE - Etapa de produção

Resposta

{}
Atenção

Essa operação substitui a configuração do estágio de destino e não pode ser facilmente desfeita. Garanta testes completos antes de copiar para o palco AO VIVO.