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 les 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, 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 intégré àAmazon Bedrock, voirRéalisez un chaînage d'invites basé sur l'IA avec Amazon Bedrock.
Amazon Bedrockintégration des services APIs
Pour l'intégrer AWS Step FunctionsAmazon Bedrock, vous pouvez utiliser ce qui suit APIs. Ils APIs sont similaires aux champs correspondants Amazon Bedrock APIs, sauf qu'ils 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 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 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.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 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
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 à 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 } }
Définition de l'état des tâches pour Amazon Bedrock l'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 }
IAM policies for calling 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 basées sur les ressources de votre définition de machine à états. 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.
IAMexemples de politiques d'Amazon Bedrockinté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.
-
IAMexemple de politique pour accéder à un modèle de fondation spécifique en utilisant InvokeModel
-
IAMexemple de politique pour accéder à un modèle provisionné spécifique en utilisant InvokeModel
-
Exemple de IAM politique d'accès complet à utiliser InvokeModel
-
IAMexemple de politique pour accéder à un modèle de fondation spécifique en tant que modèle de base
-
IAMexemple de politique pour accéder à un modèle personnalisé spécifique en tant que modèle de base
-
Exemple de IAM politique d'accès complet pour utiliser CreateModelCustomizationJob .sync
-
Exemple de IAM politique d'accès complet pour utiliser CreateModelCustomizationJob .sync
IAMexemple 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:
region
::foundation-model/amazon.titan-text-express-v1
" ] } ] }
IAMexemple 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:
region
:account-id
:provisioned-model/c2oi931ulksx
" ] } ] }
Exemple de IAM politique d'accès complet à 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:
region
::foundation-model/*", "arn:aws:bedrock:region
:account-id
:provisioned-model/*" ] } ] }
IAMexemple 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 à é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:
region
::foundation-model/amazon.titan-text-express-v1
", "arn:aws:bedrock:region
:account-id
:custom-model/*", "arn:aws:bedrock:region
:account-id
:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::account-id
:role/myRole
" ] } ] }
IAMexemple 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:
region
:account-id
:custom-model/*", "arn:aws:bedrock:region
:account-id
:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::account-id
:role/roleName
" ] } ] }
Exemple de IAM politique d'accès complet pour 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:
region
::foundation-model/*", "arn:aws:bedrock:region
:account-id
:custom-model/*", "arn:aws:bedrock:region
:account-id
:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::account-id
:role/myRole
" ] } ] }
IAMexemple de politique pour accéder à un modèle de base spécifique à l'aide de CreateModelCustomizationJob .sync
Voici un exemple de IAM politique permettant à une machine d'état 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:
region
::foundation-model/amazon.titan-text-express-v1", "arn:aws:bedrock:region
:account-id
:custom-model/*", "arn:aws:bedrock:region
:account-id
:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:region
:account-id
:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob3", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::account-id
:role/myRole
" ] } ] }
IAMexemple de politique pour accéder à un modèle personnalisé à l'aide de CreateModelCustomizationJob .sync
Voici un exemple de IAM politique permettant à une machine d'état 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:
region
:account-id
:custom-model/*", "arn:aws:bedrock:region
:account-id
:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:region
:account-id
:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob3", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::account-id
:role/myRole
" ] } ] }
Exemple de IAM politique d'accès complet pour utiliser CreateModelCustomizationJob .sync
Voici un exemple de IAM 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:
region
::foundation-model/*", "arn:aws:bedrock:region
:account-id
:custom-model/*", "arn:aws:bedrock:region
:account-id
:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob2", "Action": [ "bedrock:GetModelCustomizationJob", "bedrock:StopModelCustomizationJob" ], "Resource": [ "arn:aws:bedrock:region
:account-id
:model-customization-job/*" ] }, { "Effect": "Allow", "Sid": "CreateModelCustomizationJob3", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::account-id
:role/myRole
" ] } ] }