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 l'Amazon Bedrock optimisé APIs 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, reportez-vous Intégration des services aux sections etTransmission de paramètres à une API de service dans Step Functions.
Astuce
Pour déployer un exemple de flux de travail intégré à Amazon Bedrock, voir Réalisez un chaînage d'invites basé sur l'IA avec Amazon Bedrock.
Amazon Bedrock intégration des services APIs
Pour intégrer AWS Step Functions avec Amazon Bedrock, vous pouvez utiliser ce qui suit APIs. Elles APIs sont similaires aux correspondantes Amazon Bedrock APIs, sauf InvokeModels'il comporte 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 CreateModelCustomizationJobfor Request Response ou CreateModelCustomizationJob.sync pour les modèles d'intégration 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 paramètre spécifié Amazon Bedrock modèle pour exécuter l'inférence en utilisant l'entrée que vous fournissez dans le corps de la demande. Vous l'utilisez InvokeModel
pour exécuter l'inférence pour les modèles de texte, les modèles d'image et les modèles d'intégration.
Le Amazon Bedrock Le corps de la demande d'API d'intégration de 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.Body
contient des paramètres spécifiques au modèle cible.Si vous utilisez l'
InvokeModel
API, vous devez spécifier leBody
paramètre. Step Functions ne valide pas la saisie que vous fournissezBody
.Lorsque vous spécifiez
Body
à l'aide du Amazon Bedrock intégration 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 à Amazon Bedrock intégration optimisée avec Step Functions. Dans ce champ, vous pouvez spécifier unS3Uri
.Vous pouvez le spécifier soit
Body
dans les paramètresInput
, soit dans les deux.Lorsque vous spécifiez
Input
sans 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 à Amazon Bedrock intégration optimisée avec Step 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 au Amazon S3 emplacement de la sortie d'origine.
L'exemple suivant montre la syntaxe de InvokeModel l'API pour Amazon Bedrock 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 } }
Définition de l'état de la tâche pour Amazon Bedrock intégration
La définition de l'état de tâche suivante montre comment vous pouvez intégrer Amazon Bedrock dans les machines de votre État. 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", "Parameters": { "ModelId": "cohere.command-text-v14", "Body": { "prompt.$": "$.prompt_one", "max_tokens": 250 }, "ContentType": "application/json", "Accept": "*/*" }, "ResultPath": "$.result_one", "ResultSelector": { "result_one.$": "$.Body.generations[0].text" }, "End": true }
IAM policies for calling Amazon Bedrock
Lorsque vous créez une machine à états à l'aide de la console, Step Functions crée automatiquement un rôle d'exécution pour votre machine d'état avec le moins de privilèges requis. Ceux-ci sont générés automatiquement IAM les rôles sont valides pour celui Région AWS dans lequel vous créez la machine à états.
Nous vous recommandons de le faire lorsque vous créez IAM politiques, n'incluez pas de caractères génériques dans les politiques. 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 IAM les autorisations dont vous avez besoin en fonction de Amazon Bedrock API que vous utilisez pour une base 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 pour utiliser CreateModelCustomizationJob .sync
-
Accès complet à IAM exemple de politique pour utiliser CreateModelCustomizationJob .sync
IAM exemple de politique pour accéder à un modèle de fondation spécifique en utilisant InvokeModel
Ce qui suit est un IAM exemple de 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-2::foundation-model/
amazon.titan-text-express-v1
" ] } ] }
IAM exemple de politique pour accéder à un modèle provisionné spécifique en utilisant InvokeModel
Ce qui suit est un IAM exemple de 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-2:
123456789012
:provisioned-model/c2oi931ulksx
" ] } ] }
Accès complet à IAM exemple de politique à utiliser InvokeModel
Ce qui suit est un IAM exemple de 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-2::foundation-model/*", "arn:aws:bedrock:us-east-2:
123456789012
:provisioned-model/*" ] } ] }
IAM exemple de politique pour accéder à un modèle de fondation spécifique en tant que modèle de base
Ce qui suit est un IAM exemple de politique permettant à une machine à états 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-2::foundation-model/
amazon.titan-text-express-v1
", "arn:aws:bedrock:us-east-2:123456789012
:custom-model/*", "arn:aws:bedrock:us-east-2: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
Ce qui suit est un IAM exemple de 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-2:
123456789012
:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012
:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012
:role/[[roleName]]" ] } ] }
Accès complet à IAM exemple de politique pour utiliser CreateModelCustomizationJob .sync
Ce qui suit est un IAM exemple de 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-2::foundation-model/*", "arn:aws:bedrock:us-east-2:
123456789012
:custom-model/*", "arn:aws:bedrock:us-east-2: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 base spécifique à l'aide de CreateModelCustomizationJob .sync
Ce qui suit est un IAM exemple de 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'API CreateModelCustomizationJob.sync.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2::foundation-model/amazon.titan-text-express-v1", "arn:aws:bedrock:us-east-2:
123456789012
:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012
:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2: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é à l'aide de CreateModelCustomizationJob .sync
Ce qui suit est un IAM exemple de politique permettant à une machine à états d'accéder à un modèle personnalisé à l'aide de l'action d'API CreateModelCustomizationJob.sync.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2:
123456789012
:custom-model/*", "arn:aws:bedrock:us-east-2:123456789012
:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2: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 pour utiliser CreateModelCustomizationJob .sync
Ce qui suit est un IAM exemple de politique pour une machine à états qui fournit un accès complet lorsque vous utilisez l'action d'API CreateModelCustomizationJob.sync.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "CreateModelCustomizationJob1", "Action": [ "bedrock:CreateModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:
us-east-2
::foundation-model/*", "arn:aws:bedrock:us-east-2
:123456789012
:custom-model/*", "arn:aws:bedrock:us-east-2
:123456789012
:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:us-east-2
:123456789012
:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob3", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::123456789012
:role/myRole
" ] } ] }