

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
<a name="connect-bedrock"></a>

É 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 ](integrate-services.md) e. [Transmitir parâmetros a uma API de serviço no Step Functions](connect-parameters.md)

**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](sample-bedrock-prompt-chaining.md).

## Amazon Bedrock APIs de integração de serviços
<a name="connect-bedrock-custom-apis"></a>

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 *InvokeModel*têm campos de solicitação adicionais.

**API Amazon Bedrock - [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)**  
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 **CreateModelCustomizationJob**for *Request Response* ou **CreateModelCustomizationJob.sync***Run a Job (.sync)*. Não há diferenças nos campos das chamadas de API.

**API Amazon Bedrock - [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)**  
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 *InvokeModel*inclui 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
    } 
}
```

**dica**  
[Para saber mais sobre as APIs adicionais do Amazon Bedrock disponíveis em seus fluxos de trabalho, consulte AWS Integrações de SDK.](supported-services-awssdk.md)

## Definição do estado da tarefa para Amazon Bedrock integração
<a name="connect-bedrock-task-definition"></a>

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](https://docs.aws.amazon.com/bedrock/latest/userguide/model-parameters.html). 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
<a name="bedrock-iam"></a>

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](service-integration-iam-templates.md) e [Descobrir padrões de integração de serviços no Step Functions](connect-to-resource.md).

### IAM exemplos de políticas para Amazon Bedrock integração
<a name="bedrock-iam-policy-eg"></a>

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](#bedrock-policy-invoke-foundation-model)
+ [IAM exemplo de política para acessar um modelo provisionado específico usando InvokeModel](#bedrock-policy-invoke-provisioned-model)
+ [Acesso total. IAM exemplo de política para usar InvokeModel](#bedrock-policy-invokemodel-full-access)
+ [IAM exemplo de política para acessar um modelo de fundação específico como modelo básico](#bedrock-policy-foundation-model)
+ [IAM exemplo de política para acessar um modelo personalizado específico como modelo base](#bedrock-policy-custom-model)
+ [Acesso total. IAM exemplo de política para usar CreateModelCustomizationJob.sync](#bedrock-policy-createmodel-full-access)
+ [IAM exemplo de política para acessar um modelo de fundação específico usando CreateModelCustomizationJob.sync](#bedrock-policy-createmodel-sync-foundation-model)
+ [IAM exemplo de política para acessar um modelo personalizado usando CreateModelCustomizationJob.sync](#bedrock-policy-createmodel-sync-custom-model)
+ [Acesso total. IAM exemplo de política para usar CreateModelCustomizationJob.sync](#bedrock-policy-createmodel-sync-full-access)

#### IAM exemplo de política para acessar um modelo de fundação específico usando InvokeModel
<a name="bedrock-policy-invoke-foundation-model"></a>

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 [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)API.

****  

```
{
    "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
<a name="bedrock-policy-invoke-provisioned-model"></a>

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 [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)API.

****  

```
{
  "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
<a name="bedrock-policy-invokemodel-full-access"></a>

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 [InvokeModel](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html)API.

****  

```
{
    "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
<a name="bedrock-policy-foundation-model"></a>

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 [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)API.

****  

```
{
    "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
<a name="bedrock-policy-custom-model"></a>

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 [CreateModelCustomizationJob](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)API.

****  

```
{
    "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
<a name="bedrock-policy-createmodel-full-access"></a>

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](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)API.

****  

```
{
    "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
<a name="bedrock-policy-createmodel-sync-foundation-model"></a>

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.sync](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)API.

****  

```
{
    "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
<a name="bedrock-policy-createmodel-sync-custom-model"></a>

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.sync](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)API.

****  

```
{
    "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
<a name="bedrock-policy-createmodel-sync-full-access"></a>

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.sync](https://docs.aws.amazon.com/bedrock/latest/APIReference/API_CreateModelCustomizationJob.html)API.

****  

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