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 d’automatisation des données Bedrock
La fonctionnalité Amazon Bedrock Data Automation (BDA) fournit un flux de travail API rationalisé pour le traitement de vos données. Pour toutes les modalités, ce flux de travail comprend trois étapes principales : création d’un projet, invocation de l’analyse et récupération des résultats. Pour récupérer une sortie personnalisée pour vos données traitées, vous devez fournir l’ARN du plan lorsque vous invoquez l’opération d’analyse.
Création d’un projet d’automatisation des données
Pour commencer à traiter des fichiers avec BDA, vous devez d’abord créer un projet d’automatisation des données. Cela peut être fait de deux manières, à l'aide de l' CreateDataAutomationProject opération ou de la Amazon Bedrock console Amazon.
Utilisation de l’API
Lorsque vous utilisez l'API pour créer un projet, vous invoquez le CreateDataAutomationProject. Lorsque vous créez un projet, vous devez définir vos paramètres de configuration pour le type de fichier que vous souhaitez traiter (la modalité que vous souhaitez utiliser). Voici un exemple de configuration de la sortie standard pour les images :
{ "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 valide la configuration d’entrée. Elle crée un projet avec un ARN unique. Les paramètres du projet sont stockés pour une utilisation ultérieure. Si un projet est créé sans paramètres, les paramètres par défaut s’appliquent. Par exemple, lors du traitement d’images, le résumé des images et la détection de texte sont activés par défaut.
Le nombre de projets pouvant être créés par AWS compte est limité. Certaines combinaisons de paramètres peuvent ne pas être autorisées ou nécessiter des autorisations supplémentaires.
Invocation de l’automatisation des données de manière asynchrone
Vous avez un projet configuré, vous pouvez commencer à traiter les images à l'aide de l'InvokeDataAutomationAsyncopération. Si vous utilisez une sortie personnalisée, vous ne pouvez soumettre qu’un seul ARN de plan par demande.
Cet appel d’API lance le traitement asynchrone de vos fichiers dans un compartiment S3 spécifié. L’API accepte l’ARN du projet et le fichier à traiter, puis lance la tâche de traitement asynchrone. Un identifiant de tâche est renvoyé pour suivre le processus. Des erreurs sont signalées si le projet n’existe pas, si l’appelant ne dispose pas des autorisations nécessaires ou si les fichiers d’entrée ne sont pas dans un format pris en charge.
Voici la structure de la demande 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" } ] } }
Lorsque vous exécutez l’opération InvokeDataAutomationAsync sur un fichier vidéo, vous pouvez définir une section de 5 minutes ou plus d’une vidéo qui sera traitée comme une vidéo complète pour l’extraction des données. Cette durée est définie avec un horodatage de la milliseconde de début et de la milliseconde de fin. Ces informations sont ajoutées dans l’élément assetProcessingConfiguration.
Invoquer l'automatisation des données (synchronisation)
Vous pouvez également utiliser l'InvokeDataAutomationopération. L'InvokeDataAutomationopération prend uniquement en charge le traitement des images.
Cet appel d'API lance le traitement synchrone du contenu fourni via une référence S3 ou dans la charge utile. L'API accepte l'ARN du projet et le fichier à traiter, et renvoie les informations structurées dans la réponse. Des erreurs sont signalées si le projet n’existe pas, si l’appelant ne dispose pas des autorisations nécessaires ou si les fichiers d’entrée ne sont pas dans un format pris en charge. Si l'image analysée est classée sémantiquement comme un document, cela sera également signalé comme une erreur, car elle InvokeDataAutomation ne prend en charge que les images. Pour éviter cette erreur, vous pouvez utiliser le routage par modalité sur votre projet pour forcer le routage de tous les types de fichiers image sous forme d'images (voirModalités de désactivation et types de fichiers de routage).
Voici la structure de la requête 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 sortie inclut des structures uniques qui dépendent à la fois du fichier, des opérations et de la configuration de sortie personnalisée spécifiée dans l'appel à InvokeDataAutomation. Notez que cette réponse inclut à la fois les réponses de sortie standard et personnalisées.
Voici la structure de la réponse JSON avec une configuration de sortie standard et personnalisée :
{ "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 } } } ] }
Obtention du statut de l’automatisation des données
Pour vérifier l'état de votre tâche de traitement et récupérer les résultats, utilisez GetDataAutomationStatus.
L' GetDataAutomationStatus API vous permet de suivre la progression de votre tâche et d'accéder aux résultats une fois le traitement terminé. L'API accepte l'ARN d'invocation renvoyé par InvokeDataAutomationAsync. Elle vérifie le statut actuel de la tâche et renvoie les informations pertinentes. Une fois la tâche terminée, elle indique l’emplacement des résultats dans S3.
Si la tâche est toujours en cours, elle renvoie l'état actuel (par exemple, InProgress « »). Si la tâche est terminée, elle renvoie « Success » ainsi que l’emplacement S3 des résultats. En cas d'erreur, il renvoie « » ou ServiceError « ClientError » avec les détails de l'erreur.
Le code JSON de la demande est au format suivant :
{ "InvocationArn": "string" // Arn }
Réponse de sortie asynchrone
Les résultats du traitement du fichier sont stockés dans le compartiment S3 configuré pour les images d’entrée. La sortie inclut des structures uniques en fonction à la fois de la modalité du fichier et des types d'opérations spécifiés dans l'appel à InvokeDataAutomationAsync.
Pour en savoir plus sur les sorties standard pour une modalité donnée, consultez Sortie standard dans l’automatisation des données Bedrock.
Par exemple, pour les images, elle peut inclure des informations sur les éléments suivants :
Résumé de l’image : résumé descriptif ou légende de l’image.
Classification IAB : catégorisation basée sur la taxonomie de l’IAB.
Détection du texte de l’image : texte extrait avec des informations sur les cadres de délimitation.
Modération de contenu : détecte le contenu inapproprié, indésirable ou offensant dans une image.
Voici un exemple d’extrait de la sortie pour le traitement d’image :
{ "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 } ] } ] } ] } }
Cette sortie structurée permet une intégration facile aux applications en aval et une analyse plus approfondie.
Optimisation du plan APIs
InvokeBlueprintOptimizationAsync
Vous pouvez améliorer la précision du plan en fournissant des exemples de ressources de contenu avec les bons résultats attendus. L'optimisation des instructions du plan utilise vos exemples pour affiner les instructions en langage naturel dans les champs de votre plan, ce qui améliore la précision de vos résultats d'inférence.
Pour un plan, vous pouvez appeler l' InvokeBlueprintOptimizationAsync API qui lance la tâche d'optimisation asynchrone afin d'améliorer les instructions de terrain du plan en fonction des données de base.
Corps de la requête
{ "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" }
Réponse
{ "invocationArn": "arn:aws:bedrock:us-east-1:123456789012:blueprint-optimization-invocation/opt-12345abcdef" }
Important
Enregistrez l'InvocationArn pour surveiller l'état de la tâche d'optimisation.
GetBlueprintOptimizationStatus
Récupère l'état actuel et les résultats d'une tâche d'optimisation du plan généré en appelant l'API asynchrone. InvokeBlueprintOptimizationAsync GetBlueprintOptimizationStatus accepte l'ARN d'invocation renvoyé par InvokeBlueprintOptimizationAsync.
Réponse
{ "status": "Success", "outputConfiguration": { "s3Object": { "s3Uri": "s3://my-optimization-bucket/results/optimization-output" } } }
Valeurs de statut :
Créé - Le job a été créé
InProgress - L'optimisation est en cours
Succès - Optimisation terminée avec succès
ServiceError - Une erreur de service interne s'est produite
ClientError - Paramètres de demande non valides
CopyBlueprintStage
Copie le Blueprint de l'étape source vers l'étape cible (par ex. (de la phase de DÉVELOPPEMENT à la phase LIVE). Cela sera utilisé pour synchroniser toute la configuration, y compris le champ OptimizationSamples, entre les étapes.
Corps de la requête
{ "blueprintArn": "arn:aws:bedrock:us-east-1:123456789012:blueprint/my-document-processor", "sourceStage": "DEVELOPMENT", "targetStage": "LIVE" }
Valeurs de l'étape :
DÉVELOPPEMENT - Development/testing étape
EN DIRECT - Étape de production
Réponse
{}
Avertissement
Cette opération remplace la configuration de l'étape cible et ne peut pas être facilement annulée. Effectuez des tests approfondis avant de copier sur la scène LIVE.