Invoca y personaliza los modelos de Amazon Bedrock con Step Functions - AWS Step Functions

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.

Invoca y personaliza 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 enumeran los Amazon Bedrock compatibles 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 servicios en Step Functions, consulte Integración de los servicios de yPasar parámetros a un servicio API en Step Functions.

sugerencia

Para implementar un ejemplo de flujo de trabajo que se integre con Amazon Bedrock, consulte Lleve a cabo el encadenamiento de mensajes de IA con Amazon Bedrock.

Amazon Bedrock integración de servicios APIs

Para integrar AWS Step Functions with Amazon Bedrock, puede utilizar lo siguienteAPIs. Estos APIs son similares a los correspondientes Amazon Bedrock APIs, excepto InvokeModelque tiene campos de solicitud adicionales.

Amazon Bedrock - API CreateModelCustomizationJob

Crea un trabajo de microajuste para personalizar un modelo base. Puede invocar la integración de Step Functions API con CreateModelCustomizationJoblos patrones de integración de Request Response o CreateModelCustomizationJob.sync para Run a Job (.sync). No hay diferencias en los campos de las llamadas. API

Amazon Bedrock - API InvokeModel

Invoca el especificado Amazon Bedrock modelo para ejecutar la inferencia utilizando la entrada que proporciona en el cuerpo de la solicitud. InvokeModel sirve para ejecutar la inferencia para modelos de texto, modelos de imagen y modelos de incrustación.

La Amazon Bedrock El cuerpo de la API solicitud de integración del servicio 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 el InvokeModelAPI, debe especificar el Body parámetro. Step Functions no valida la entrada que proporcionaBody.

    Cuando se especifica Body mediante el Amazon Bedrock en la integración optimizada, puede especificar una carga útil de hasta 256 KB. Si su carga útil supera 256 KB, le recomendamos que utilice Input.

  • Input: especifica el origen del que se van a recuperar los datos de entrada. Este campo opcional es específico de Amazon Bedrock integración optimizada con Step Functions. En este campo, puede especificar unS3Uri.

    Puede especificar Body en los Parámetros o Input, pero no ambos.

    Si especifica Input sin especificar ContentType, el tipo de contenido del origen de datos de entrada pasa a ser el valor de ContentType.

  • Output— Especifica el destino en el que se escribe la API respuesta. Este campo opcional es específico de Amazon Bedrock integración optimizada con Step Functions. En este campo, puede especificar unS3Uri.

    Si especifica este campo, el cuerpo de la API respuesta se sustituye por una referencia al Amazon S3 ubicación de la salida original.

En el siguiente ejemplo se muestra la sintaxis de InvokeModel API for 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 de la tarea para Amazon Bedrock integración

La siguiente definición del estado de la tarea muestra cómo puede integrarse con Amazon Bedrock en sus máquinas estatales. 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 Cohere Command (LLM).

{ "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

Al crear una máquina de estados mediante la consola, Step Functions crea automáticamente un rol de ejecución para su máquina de estados con los privilegios mínimos necesarios. Estos se generan automáticamente IAM los roles son válidos para Región de AWS en la que se crea la máquina de estados.

Se recomienda que cuando cree IAM políticas, 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.

En las siguientes plantillas de ejemplo se muestra cómo AWS Step Functions genera IAM políticas en función de los recursos de la definición de su máquina de estados. Para obtener más información, consulte Cómo Step Functions genera IAM políticas para servicios integrados y Descubra los patrones de integración de servicios en Step Functions.

IAM ejemplos de políticas para Amazon Bedrock integración

En la siguiente sección se describe la IAM los permisos que necesita en función de Amazon Bedrock APIque utilice para una base específica o un modelo aprovisionado. En esta sección también se incluyen ejemplos de políticas que otorgan acceso total.

Recuerde reemplazar el italicized envíe un mensaje de texto con la información específica de su recurso.

IAM ejemplo de política para acceder a un modelo de base específico utilizando InvokeModel

El siguiente es un IAM ejemplo 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 InvokeModelAPIacción.

{ "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 ejemplo de política para acceder a un modelo aprovisionado específico mediante InvokeModel

El siguiente es un IAM ejemplo de política para una máquina de estados que accede a un modelo aprovisionado específico denominado c2oi931ulksx mediante la InvokeModelAPIacción.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Sid": "InvokeModel1", "Action": [ "bedrock:InvokeModel" ], "Resource": [ "arn:aws:bedrock:us-east-2:123456789012:provisioned-model/c2oi931ulksx" ] } ] }

Acceso completo de IAM ejemplo de política para usar InvokeModel

El siguiente es un IAM ejemplo de política para una máquina de estados que proporciona acceso total cuando se utiliza la InvokeModelAPIacción.

{ "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 ejemplo de política para acceder a un modelo básico específico como modelo base

El siguiente es un IAM ejemplo de 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 CreateModelCustomizationJobAPIacción.

{ "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 ejemplo de política para acceder a un modelo personalizado específico como modelo base

El siguiente es un IAM ejemplo de política para que una máquina de estados acceda a un modelo personalizado específico como modelo base mediante la CreateModelCustomizationJobAPIacción.

{ "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]]" ] } ] }

Acceso completo de IAM ejemplo de política para usar CreateModelCustomizationJob .sync

El siguiente es un IAM ejemplo de política para una máquina de estados que proporciona acceso total cuando se utiliza la CreateModelCustomizationJobAPIacción.

{ "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 ejemplo de política para acceder a un modelo básico específico mediante CreateModelCustomizationJob .sync

El siguiente es un IAM ejemplo 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 API acción 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 ejemplo de política para acceder a un modelo personalizado mediante .sync CreateModelCustomizationJob

El siguiente es un IAM ejemplo de política para que una máquina de estados acceda a un modelo personalizado mediante la API acción 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" ] } ] }

Acceso completo de IAM ejemplo de política para usar .sync CreateModelCustomizationJob

El siguiente es un IAM ejemplo de política para una máquina de estados que proporciona acceso total cuando se utiliza la API acción 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" ] } ] }