Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Invocación y personalización de los modelos de Amazon Bedrock con Step Functions
Puede integrar Step Functions con Amazon Bedrock para invocar un modelo de Amazon Bedrock específico y crear un trabajo de ajuste para personalizar un modelo. En esta página se muestra el Amazon Bedrock optimizado APIs y se proporciona un Task
estado de ejemplo para extraer el resultado de la invocación de un modelo.
Para obtener información sobre la integración con AWS los servicios de Step Functions, consulte Integración de los servicios de yCómo pasar parámetros a una API de servicio en Step Functions.
sugerencia
Para implementar un ejemplo de flujo de trabajo que se integre con Amazon Bedrock, consulteRealizar encadenamiento de peticiones de IA con Amazon Bedrock.
Amazon Bedrockintegración de servicios APIs
Para realizar AWS Step Functions la integraciónAmazon Bedrock, puede utilizar lo siguiente APIs. APIs Son similares a los correspondientes Amazon Bedrock APIs, excepto que InvokeModeltienen campos de solicitud adicionales.
API de Amazon Bedrock - CreateModelCustomizationJob
Crea un trabajo de microajuste para personalizar un modelo base. Puedes invocar la API de integración de Step Functions CreateModelCustomizationJobpara los patrones de integración Request Response o CreateModelCustomizationJob.sync para Run a Job (.sync). No hay diferencias en los campos de las llamadas a la API.
API de Amazon Bedrock - InvokeModel
Invoca el modelo de Amazon Bedrock especificado para ejecutar la inferencia utilizando la entrada proporcionada en el cuerpo de la solicitud InvokeModel
sirve para ejecutar la inferencia para modelos de texto, modelos de imagen y modelos de incrustación.
El cuerpo de la solicitud de la API de integración de Amazon Bedrock servicios InvokeModelincluye los siguientes parámetros adicionales.
-
Body
: especifica los datos de entrada en el formato especificado en el encabezado de la solicitud del tipo de contenido.Body
contiene parámetros específicos del modelo de destino.Si utiliza la API
InvokeModel
, debe especificar el parámetroBody
. Step Functions no valida la entrada que proporcionada enBody
.Si especificas el
Body
uso de la integración Amazon Bedrock optimizada, puedes especificar una carga útil de hasta 256 KiB. Si su carga útil supera los 256 KiB, le recomendamos que utiliceInput
. -
Input
: especifica el origen del que se van a recuperar los datos de entrada. Este campo opcional es específico de una integración optimizada de Amazon Bedrock con Step Functions. En este campo, puede especificar unS3Uri
.Puede especificar
Body
en los Parámetros oInput
, pero no ambos.Si especifica
Input
sin especificarContentType
, el tipo de contenido del origen de datos de entrada pasa a ser el valor deContentType
. -
Output
: especifica el destino en el que se escribe la respuesta de la API. Este campo opcional es específico de una integración optimizada de Amazon Bedrock con Step Functions. En este campo, puede especificar unS3Uri
.Si especifica este campo, el cuerpo de la respuesta de la API se sustituye por una referencia a la ubicación de Amazon S3 de la salida original.
El siguiente ejemplo muestra la sintaxis de la InvokeModel API para la Amazon Bedrock integración.
{ "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 } }
Definición del estado Task para la integración de Amazon Bedrock
La siguiente definición del estado Task muestra cómo puede integrar Amazon Bedrock en sus máquinas de estado. Este ejemplo muestra un estado Task que extrae el resultado completo de la invocación del modelo especificada en la ruta, result_one
. Se basa en los parámetros de inferencia de los modelos fundacionales. En este ejemplo se utiliza el modelo de lenguaje grande (LLM) de Cohere Command.
{ "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
Al crear una máquina de estado mediante la consola, Step Functions crea automáticamente un rol de ejecución para la máquina de estado con los privilegios mínimos necesarios. Estas IAM funciones generadas automáticamente son válidas para la máquina Región de AWS en la que se crea la máquina de estados.
Le recomendamos que, al crear políticas de IAM, no incluya caracteres comodín en las políticas. Como práctica recomendada de seguridad, debe reducir el alcance de las políticas en la medida de lo posible. Debe usar políticas dinámicas solo cuando no se conozcan ciertos parámetros de entrada durante el tiempo de ejecución.
Las siguientes plantillas de ejemplo muestran cómo se AWS Step Functions generan las políticas de IAM en función de los recursos de la definición de su máquina de estados. Para obtener más información, consulte Generación de políticas de IAM para servicios integrados por Steps Functions y Descubrimiento de los patrones de integración de servicios en Step Functions.
Ejemplos de políticas de IAM para la integración de Amazon Bedrock
En la siguiente sección se describen los permisos de IAM que necesita según la API de Amazon Bedrock que utilice para un modelo fundacional o aprovisionado específico. En esta sección también se incluyen ejemplos de políticas que otorgan acceso total.
Recuerde sustituir el italicized
texto por la información específica del recurso.
-
IAMejemplo de política para acceder a un modelo básico específico mediante InvokeModel
-
IAMejemplo de política para acceder a un modelo aprovisionado específico mediante InvokeModel
-
Ejemplo de IAM política de acceso completo a utilizar InvokeModel
-
Ejemplo de política de IAM para acceder a un modelo fundacional específico como modelo base
-
Ejemplo de política de IAM para acceder a un modelo personalizado específico como modelo base
-
Ejemplo de IAM política de acceso completo para usar CreateModelCustomizationJob .sync
-
Ejemplo de IAM política de acceso completo para usar .sync CreateModelCustomizationJob
IAMejemplo de política para acceder a un modelo básico específico mediante InvokeModel
El siguiente es un ejemplo IAM de política para una máquina de estados que accede a un modelo básico específico denominado amazon.titan-text-express-v1
mediante la acción de la 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
" ] } ] }
IAMejemplo de política para acceder a un modelo aprovisionado específico mediante InvokeModel
El siguiente es un ejemplo IAM de política para una máquina de estados que accede a un modelo aprovisionado específico denominado c2oi931ulksx
mediante la acción de la InvokeModelAPI.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "InvokeModel1", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:
region
:account-id
:provisioned-model/c2oi931ulksx
" ] } ] }
Ejemplo de IAM política de acceso completo a utilizar InvokeModel
El siguiente es un ejemplo IAM de política para una máquina de estados que proporciona acceso total cuando se utiliza la acción de la 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/*" ] } ] }
Ejemplo de política de IAM para acceder a un modelo fundacional específico como modelo base
El siguiente es un ejemplo de IAM política para que una máquina de estados acceda a un modelo básico específico amazon.titan-text-express-v1
denominado modelo base mediante la acción de la 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
" ] } ] }
Ejemplo de política de IAM para acceder a un modelo personalizado específico como modelo base
El siguiente es un ejemplo IAM de política para que una máquina de estados acceda a un modelo personalizado específico como modelo base mediante la acción de la 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
" ] } ] }
Ejemplo de IAM política de acceso completo para usar CreateModelCustomizationJob .sync
El siguiente es un ejemplo IAM de política para una máquina de estados que proporciona acceso total cuando se utiliza la acción de la 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
" ] } ] }
IAMejemplo de política para acceder a un modelo básico específico mediante CreateModelCustomizationJob .sync
El siguiente es un ejemplo IAM de política para que una máquina de estados acceda a un modelo básico específico denominado amazon.titan-text-express-v1
mediante la acción de la 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
" ] } ] }
IAMejemplo de política para acceder a un modelo personalizado mediante .sync CreateModelCustomizationJob
El siguiente es un ejemplo IAM de política para que una máquina de estados acceda a un modelo personalizado mediante la acción de la 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
" ] } ] }
Ejemplo de IAM política de acceso completo para usar .sync CreateModelCustomizationJob
El siguiente es un ejemplo IAM de política para una máquina de estados que proporciona acceso total cuando se utiliza la acción de la 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
" ] } ] }