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. OBodycontém parâmetros específicos do modelo de destino.Se você usar a API
InvokeModel, deverá especificar o parâmetroBody. O Step Functions não valida a entrada fornecida emBody.Ao especificar o
Bodyusando 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 usarInput. -
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 umS3Uri.É possível especificar
Bodynos Parâmetros ouInput, mas não ambos.Quando você especifica
Inputsem especificarContentType, o tipo de conteúdo da fonte de dados de entrada se torna o valor deContentType. -
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 umS3Uri.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
-
IAM exemplo de política para acessar um modelo provisionado específico usando InvokeModel
-
IAM exemplo de política para acessar um modelo de fundação específico como modelo básico
-
IAM exemplo de política para acessar um modelo personalizado específico como modelo base
-
Acesso total. IAM exemplo de política para usar CreateModelCustomizationJob.sync
-
IAM exemplo de política para acessar um modelo personalizado usando CreateModelCustomizationJob.sync
-
Acesso total. IAM exemplo de política para usar CreateModelCustomizationJob.sync
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" ] } ] }