Invocar e personalizar modelos do Amazon Bedrock com o Step Functions - AWS Step Functions

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Invocar e personalizar modelos do Amazon Bedrock com o Step Functions

É possível integrar o Step Functions ao Amazon Bedrock para invocar um modelo específico do Amazon Bedrock e criar um trabalho de ajuste fino para personalizar um modelo. Esta página lista o Amazon Bedrock otimizado APIs e fornece um exemplo de Task estado para extrair o resultado de uma invocação de modelo.

Para saber mais sobre a integração com AWS serviços no Step Functions, consulte Integração de produtos da e. Transmitir parâmetros a uma API de serviço no Step Functions

dica

Para implantar um exemplo de fluxo de trabalho que se integre ao Amazon Bedrock, consulte Realizar o encadeamento de prompts de IA com o Amazon Bedrock.

Amazon Bedrockintegração de serviços APIs

Para integrar AWS Step Functions comAmazon Bedrock, você pode usar o seguinte APIs. Eles APIs são semelhantes aos correspondentes Amazon Bedrock APIs, exceto InvokeModelque têm campos de solicitação adicionais.

API Amazon Bedrock - CreateModelCustomizationJob

Cria um trabalho de ajuste fino para personalizar um modelo básico. Você pode invocar a API de integração Step Functions com os padrões de integração CreateModelCustomizationJobfor Request Response ou CreateModelCustomizationJob.sync para Run a Job (.sync). Não há diferenças nos campos das chamadas de API.

API Amazon Bedrock - InvokeModel

Invoca o modelo do Amazon Bedrock especificado para executar a inferência usando a entrada fornecida no corpo da solicitação. Você vai usa InvokeModel para executar inferência para modelos de texto, modelos de imagem e modelos de incorporação.

O corpo da solicitação da API de integração de Amazon Bedrock serviços InvokeModelinclui os seguintes parâmetros adicionais.

  • Body: especifica os dados de entrada no formato especificado no cabeçalho da solicitação do tipo de conteúdo. O Body contém parâmetros específicos do modelo de destino.

    Se você usar a API InvokeModel, deverá especificar o parâmetro Body. O Step Functions não valida a entrada fornecida em Body.

    Ao especificar Body usando a integração Amazon Bedrock otimizada, você pode especificar uma carga útil de até 256 KiB. Se sua carga útil exceder 256 KiB, recomendamos que você useInput.

  • Input: especifica a fonte da qual recuperar os dados de entrada. Esse campo opcional é específico da integração otimizada do Amazon Bedrock ao Step Functions. Nesse campo, é possível especificar um S3Uri.

    É possível especificar Body nos Parâmetros ou Input, mas não ambos.

    Quando você especifica Input sem especificar ContentType, o tipo de conteúdo da fonte de dados de entrada se torna o valor de ContentType.

  • Output: especifica o destino em que a resposta da API é gravada. Esse campo opcional é específico da integração otimizada do Amazon Bedrock ao Step Functions. Nesse campo, é possível especificar um S3Uri.

    Se você especificar esse campo, o corpo da resposta da API será substituído por uma referência ao local do Amazon S3 da saída original.

O exemplo a seguir mostra a sintaxe InvokeModel da API para Amazon Bedrock integração.

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

Definição do estado da tarefa para integração do Amazon Bedrock

A definição do estado de Tarefa a seguir mostra como se integrar ao Amazon Bedrock nas máquinas de estado. Este exemplo mostra um estado de Tarefa que extrai o resultado completo da invocação do modelo especificado pelo caminho, result_one. Isso se baseia em Parâmetros de inferência para modelos básicos. Este exemplo usa o grande modelo de linguagem (LLM) 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

Ao criar uma máquina de estado usando o console, o Step Functions cria automaticamente um perfil de execução para a máquina de estado com os privilégios mínimos necessários. Essas IAM funções geradas automaticamente são válidas para Região da AWS as quais você cria a máquina de estado.

Recomendamos não incluir curingas ao criar políticas do IAM. Como prática recomendada de segurança, você deve definir o escopo de suas políticas o máximo possível. Use políticas dinâmicas somente quando determinados parâmetros de entrada não forem conhecidos durante o runtime.

Os modelos de exemplo a seguir mostram como AWS Step Functions gera políticas do IAM com base nos recursos na definição da sua máquina de estado. Para obter mais informações, consulte Como o Step Functions gera políticas do IAM para serviços integrados e Descobrir padrões de integração de serviços no Step Functions.

Exemplos de política do IAM para integração do Amazon Bedrock

A seção a seguir descreve as permissões do IAM necessárias com base na API do Amazon Bedrock utilizada para uma base específica ou um modelo provisionado. Esta seção também contém exemplos de políticas que concedem acesso total.

Lembre-se de substituir o italicized texto pelas informações específicas do seu recurso.

IAMexemplo de política para acessar um modelo de fundação específico usando InvokeModel

Veja a seguir um exemplo IAM de política para uma máquina de estado que acessa um modelo básico específico chamado amazon.titan-text-express-v1 usando a ação da 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" ] } ] }

IAMexemplo de política para acessar um modelo provisionado específico usando InvokeModel

Veja a seguir um exemplo IAM de política para uma máquina de estado que acessa um modelo provisionado específico chamado c2oi931ulksx usando a ação da InvokeModelAPI.

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

Exemplo de IAM política de acesso completo para usar InvokeModel

Veja a seguir um exemplo IAM de política para uma máquina de estado que fornece acesso total quando você usa a ação da 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/*" ] } ] }

Exemplo de política do IAM que acessa um modelo de base específico como modelo de base

Veja a seguir um exemplo IAM de política para que uma máquina de estado acesse um modelo básico específico amazon.titan-text-express-v1 chamado de modelo básico usando a ação da 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" ] } ] }

Exemplo de política do IAM que acessa um modelo personalizado específico como modelo de base

Veja a seguir um exemplo IAM de política para que uma máquina de estado acesse um modelo personalizado específico como modelo base usando a ação da 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" ] } ] }

Exemplo de IAM política de acesso completo para usar CreateModelCustomizationJob .sync

Veja a seguir um exemplo IAM de política para uma máquina de estado que fornece acesso total quando você usa a ação da 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" ] } ] }

IAMexemplo de política para acessar um modelo de fundação específico usando CreateModelCustomizationJob .sync

Veja a seguir um exemplo IAM de política para que uma máquina de estado acesse um modelo básico específico chamado amazon.titan-text-express-v1 usando a ação da API CreateModelCustomizationJob.sync.

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

IAMexemplo de política para acessar um modelo personalizado usando CreateModelCustomizationJob .sync

Veja a seguir um exemplo IAM de política para uma máquina de estado acessar um modelo personalizado usando a ação da API CreateModelCustomizationJob.sync.

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

Exemplo de IAM política de acesso completo para usar CreateModelCustomizationJob .sync

Veja a seguir um exemplo IAM de política para uma máquina de estado que fornece acesso total quando você usa a ação da API CreateModelCustomizationJob.sync.

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