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.
Invoquez et personnalisez des modèles Amazon Bedrock avec Step Functions
Vous pouvez intégrer Step Functions à Amazon Bedrock pour appeler un modèle Amazon Bedrock spécifique et créer une tâche de réglage afin de personnaliser un modèle. Cette page répertorie les API Amazon Bedrock optimisées et fournit un exemple d'Taskétat pour extraire le résultat d'un appel de modèle.
Pour en savoir plus sur l'intégration aux AWS services dans Step Functions, consultez Intégration des services etTransmission de paramètres à une API de service dans Step Functions.
Astuce
Pour déployer un exemple de flux de travail qui s'intègre àAmazon Bedrock, voirRéalisez un chaînage d'invites basé sur l'IA avec Amazon Bedrock.
Amazon Bedrock API d'intégration de services
Pour AWS Step Functions l'intégrerAmazon Bedrock, vous pouvez utiliser les API suivantes. Ces API sont similaires aux Amazon Bedrock API correspondantes, sauf qu'elles InvokeModelcomportent des champs de demande supplémentaires.
API Amazon Bedrock - CreateModelCustomizationJob
Crée une tâche de réglage fin pour personnaliser un modèle de base. Vous pouvez appeler l'API d'intégration Step Functions avec CreateModelCustomizationJobles modèles d'intégration CreateModelCustomizationJob.syncfor Request Response ou Run a Job (.sync). Il n'y a aucune différence dans les champs pour les appels d'API.
API Amazon Bedrock - InvokeModel
Invoque le Amazon Bedrock modèle spécifié pour exécuter l'inférence à l'aide de l'entrée que vous fournissez dans le corps de la demande. Vous pouvez InvokeModel exécuter l'inférence pour les modèles de texte, les modèles d'image et les modèles d'intégration.
Le corps de la demande d'API d'intégration de Amazon Bedrock services pour InvokeModelinclut les paramètres supplémentaires suivants.
-
Body— Spécifie les données d'entrée au format spécifié dans l'en-tête de demande de type de contenu.Bodycontient des paramètres spécifiques au modèle cible.Si vous utilisez l'
InvokeModelAPI, vous devez spécifier leBodyparamètre. Step Functionsne valide pas la saisie que vous fournissezBody.Lorsque vous spécifiez
Bodyà l'aide de l'intégration Amazon Bedrock optimisée, vous pouvez spécifier une charge utile allant jusqu'à 256 KiB. Si votre charge utile dépasse 256 KiB, nous vous recommandons d'utiliserInput. -
Input— Spécifie la source à partir de laquelle récupérer les données d'entrée. Ce champ facultatif est spécifique à l'intégration Amazon Bedrock optimisée avecStep Functions. Dans ce champ, vous pouvez spécifier unS3Uri.Vous pouvez le spécifier soit
Bodydans les paramètresInput, soit dans les deux.Lorsque vous spécifiez
Inputsans spécifierContentType, le type de contenu de la source de données d'entrée devient la valeur deContentType. -
Output— Spécifie la destination où la réponse de l'API est écrite. Ce champ facultatif est spécifique à l'intégration Amazon Bedrock optimisée avecStep Functions. Dans ce champ, vous pouvez spécifier unS3Uri.Si vous spécifiez ce champ, le corps de la réponse de l'API est remplacé par une référence à l'Amazon S3emplacement de la sortie d'origine.
L'exemple suivant montre la syntaxe de l' InvokeModel API pour Amazon Bedrock l'intégration.
{ "ModelId": String, // required "Accept": String, // default: application/json "ContentType": String, // default: application/json "Input": { // not from Bedrock API "S3Uri": String }, "Output": { // not from Bedrock API "S3Uri": String } }
Astuce
Pour en savoir plus sur les API Amazon Bedrock supplémentaires disponibles dans vos flux de travail, consultez la section Intégrations du AWS SDK.
Définition de l'état de la tâche pour Amazon Bedrock intégration
La définition d'état de tâche suivante montre comment vous pouvez intégrer vos machines Amazon Bedrock à états. Cet exemple montre un état de tâche qui extrait le résultat complet de l'invocation du modèle spécifié par le chemin,result_one. Ceci est basé sur les paramètres d'inférence pour les modèles de base. Cet exemple utilise le modèle de langage large (LLM) de la commande Cohere.
{ "Type": "Task", "Resource": "arn:aws:states:::bedrock:invokeModel", "Arguments": { "ModelId": "cohere.command-text-v14", "Body": { "prompt": "{% states.input.prompt_one %}", "max_tokens": 20 }, "ContentType": "application/json", "Accept": "*/*" }, "End": true }
Politiques IAM pour appeler Amazon Bedrock
Lorsque vous créez une machine d'état à l'aide de la console, un rôle d'exécution est Step Functions automatiquement créé pour votre machine d'état avec le moins de privilèges requis. Ces IAM rôles générés automatiquement sont valides pour la machine à états Région AWS dans laquelle vous créez la machine à états.
Lorsque vous créez des IAM politiques, nous vous recommandons de ne pas y inclure de caractères génériques. En tant que bonne pratique en matière de sécurité, vous devez limiter autant que possible vos politiques. Vous ne devez utiliser des politiques dynamiques que lorsque certains paramètres d'entrée ne sont pas connus pendant l'exécution.
Les exemples de modèles suivants montrent comment AWS Step Functions générer des politiques IAM en fonction des ressources contenues dans la définition de votre machine d'état. Pour plus d’informations, consultez Comment Step Functions génère des politiques IAM pour les services intégrés et Découvrez les modèles d'intégration des services dans Step Functions.
IAM exemples de politiques pour Amazon Bedrock intégration
La section suivante décrit les IAM autorisations dont vous avez besoin en fonction de l'Amazon BedrockAPI que vous utilisez pour une fondation ou un modèle provisionné spécifique. Cette section contient également des exemples de politiques qui accordent un accès complet.
N'oubliez pas de remplacer le italicized texte par les informations spécifiques à votre ressource.
-
IAM exemple de politique pour accéder à un modèle de fondation spécifique en utilisant InvokeModel
-
IAM exemple de politique pour accéder à un modèle provisionné spécifique en utilisant InvokeModel
-
Accès complet à IAM exemple de politique à utiliser InvokeModel
-
IAM exemple de politique pour accéder à un modèle de fondation spécifique en tant que modèle de base
-
IAM exemple de politique pour accéder à un modèle personnalisé spécifique en tant que modèle de base
-
Accès complet à IAM exemple de politique à utiliser CreateModelCustomizationJob.sync
-
Accès complet à IAM exemple de politique à utiliser CreateModelCustomizationJob.sync
IAM exemple de politique pour accéder à un modèle de fondation spécifique en utilisant InvokeModel
Voici un exemple de IAM politique pour une machine à états qui accède à un modèle de base spécifique nommé à amazon.titan-text-express-v1 l'aide de l'action d'InvokeModelAPI.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "InvokeModel1", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-text-express-v1" ] } ] }
IAM exemple de politique pour accéder à un modèle provisionné spécifique en utilisant InvokeModel
Voici un exemple de IAM politique pour une machine à états qui accède à un modèle provisionné spécifique nommé à c2oi931ulksx l'aide de l'action d'InvokeModelAPI.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "InvokeModel1", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/c2oi931ulksx" ] } ] }
Accès complet à IAM exemple de politique à utiliser InvokeModel
Voici un exemple de IAM politique pour une machine à états qui fournit un accès complet lorsque vous utilisez l'action InvokeModelAPI.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "InvokeModel1", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*", "arn:aws:bedrock:us-east-1:123456789012:provisioned-model/*" ] } ] }
IAM exemple de politique pour accéder à un modèle de fondation spécifique en tant que modèle de base
Voici un exemple de IAM politique permettant à une machine d'état d'accéder à un modèle de base spécifique amazon.titan-text-express-v1 nommé modèle de base à l'aide de l'action CreateModelCustomizationJobAPI.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-text-express-v1", "arn:aws:bedrock:us-east-1:123456789012:custom-model/*", "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }
IAM exemple de politique pour accéder à un modèle personnalisé spécifique en tant que modèle de base
Voici un exemple de IAM politique permettant à une machine à états d'accéder à un modèle personnalisé spécifique en tant que modèle de base à l'aide de l'action CreateModelCustomizationJobAPI.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:custom-model/*", "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRoleName" ] } ] }
Accès complet à IAM exemple de politique à utiliser CreateModelCustomizationJob.sync
Voici un exemple de IAM politique pour une machine à états qui fournit un accès complet lorsque vous utilisez l'action CreateModelCustomizationJobAPI.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*", "arn:aws:bedrock:us-east-1:123456789012:custom-model/*", "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }
IAM exemple de politique pour accéder à un modèle de fondation spécifique en utilisant CreateModelCustomizationJob.sync
Voici un exemple de IAM politique permettant à une machine à états d'accéder à un modèle de base spécifique nommé à amazon.titan-text-express-v1 l'aide de l'action d'CreateModelCustomizationJob.syncAPI.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/amazon.titan-text-express-v1", "arn:aws:bedrock:us-east-1:123456789012:custom-model/*", "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob3", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }
IAM exemple de politique pour accéder à un modèle personnalisé en utilisant CreateModelCustomizationJob.sync
Voici un exemple de IAM politique permettant à une machine à états d'accéder à un modèle personnalisé à l'aide de l'action CreateModelCustomizationJob.syncAPI.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:custom-model/*", "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob3", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }
Accès complet à IAM exemple de politique à utiliser CreateModelCustomizationJob.sync
Voici un exemple de IAM politique pour une machine à états qui fournit un accès complet lorsque vous utilisez l'action CreateModelCustomizationJob.syncAPI.
-
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-1::foundation-model/*", "arn:aws:bedrock:us-east-1:123456789012:custom-model/*", "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob3", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012:role/myRole" ] } ] }