View a markdown version of this page

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 as APIs otimizadas do Amazon Bedrock e fornece um exemplo de estado Task 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 Bedrock APIs de integração de serviços

Para integrar o AWS Step Functions ao Amazon Bedrock, é possível usar as APIs a seguir. Essas APIs são semelhantes às Amazon Bedrock APIs correspondentes, exceto que InvokeModeltê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.syncRun 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 o Body usando a integração otimizada do Amazon Bedrock, é possível especificar uma carga útil de até 256 KiB. Se a carga útil exceder 256 KiB, recomendamos usar Input.

  • 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 Amazon Bedrock integração

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 }

Políticas do IAM para ligar para o 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 a máquina Região da AWS em que 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.

IAM exemplos de políticas para Amazon Bedrock integração

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.

IAM exemplo 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" ] } ] }

IAM exemplo 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" ] } ] }

Acesso total. IAM exemplo de política 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/*" ] } ] }

IAM exemplo de política para acessar um modelo de fundação específico como modelo básico

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

IAM exemplo de política para acessar um modelo personalizado específico como modelo 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" ] } ] }

Acesso total. IAM exemplo de política 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" ] } ] }

IAM exemplo 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 uma máquina de estado acessar um modelo básico específico chamado amazon.titan-text-express-v1 usando a ação da CreateModelCustomizationJob.syncAPI.

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

IAM exemplo 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 CreateModelCustomizationJob.syncAPI.

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

Acesso total. IAM exemplo de política 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 CreateModelCustomizationJob.syncAPI.

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