

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á.

# Criar uma versão da solução manualmente
<a name="creating-a-solution-version"></a>

Depois de concluir a [Configurar uma solução personalizada no Amazon Personalize](customizing-solution-config.md), você poderá começar o treinamento:
+  Se sua solução usa o treinamento automático, a solução cria versões da solução para você na frequência de treinamento especificada. Por padrão, todas as novas soluções usam o treinamento automático para criar uma nova versão da solução a cada 7 dias. Você ainda pode criar versões da solução manualmente. Para obter mais informações, consulte [Configurar o treinamento automático](solution-config-auto-training.md).
+ Se você desativar o treinamento automático para sua solução ou quiser treinar manualmente, poderá criar manualmente uma versão da solução. Uma *versão da solução* se refere a um modelo de machine learning treinado. Você pode criar uma versão da solução usando o console, a AWS Command Line Interface (AWS CLI) ou os AWS SDKs. Se a versão da sua solução tiver o status CREATE\_PENDING ou CREATE\_IN\_PROGRESS, você poderá usar a operação [StopSolutionVersionCreation](API_StopSolutionVersionCreation.md) para deixar de criar a versão da solução. Consulte [Como interromper a criação de uma versão da solução](stop-solution-version.md). 

Se o treinamento não for concluído devido a um erro, você não será cobrado pelo treinamento. Se a versão da sua solução tiver o status CREATE\_PENDING ou CREATE\_IN\_PROGRESS, você poderá interromper o processo de criação da versão da solução. Para interromper a criação da versão da solução, navegue até a página de detalhes da versão da solução e escolha **Parar**. Para obter mais informações, consulte [Como interromper a criação de uma versão da solução](stop-solution-version.md).

**Topics**
+ [Criar uma versão da solução (console)](#create-solution-version-console)
+ [Criar uma versão da solução (AWS CLI)](#create-solution-version-cli)
+ [Criar uma versão da solução (AWS SDKs)](#create-solution-version-sdk)

## Criar uma versão da solução (console)
<a name="create-solution-version-console"></a>

Para criar manualmente uma nova versão da solução com o console do Amazon Personalize, comece a treinar na página de detalhes da sua solução.

**Para criar uma nova versão da solução**

1. Acesse [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home) para abrir o console do Amazon Personalize e faça login na sua conta.

1. Navegue até a página dos grupos de conjuntos de dados e escolha o grupo de conjuntos de dados com sua nova solução.

1. No painel de navegação, em **Atributos personalizados**, selecione **Soluções e fórmulas**. 

1. Na página **Solução e fórmulas**, escolha a solução para a qual você quer criar uma versão da solução.

1. Na página de visão geral da solução, escolha **Criar versão da solução** para começar a treinar um novo modelo.

Na página de detalhes da solução, você pode acompanhar o progresso do treinamento na seção **Versões da solução**. Quando o treinamento estiver concluído e o status for **Ativo**, você poderá avaliá-lo usando métricas fornecidas pelo Amazon Personalize. Para obter mais informações, consulte [Avaliar uma versão da solução do Amazon Personalize com métricas](working-with-training-metrics.md).

 Quando o status da versão é ATIVA, as recomendações começam a ser enviadas. O uso de uma versão da solução ativa depende de como você recebe as recomendações:
+  Para obter recomendações em tempo real, a versão ativa deve ser implantada com uma campanha do Amazon Personalize. Use a campanha para obter recomendações para seus usuários. Consulte [Você pode implantar uma versão da solução do Amazon Personalize com uma campanha.Criar uma campanha](campaigns.md).
+ Para as recomendações em lote, você especifica uma versão da solução ativa ao criar um trabalho de inferência em lote ou de segmento em lote. Consulte [Obter recomendações de itens em lote](getting-batch-recommendations.md) ou [Obter segmentos em lote de usuários](getting-user-segments.md).

## Criar uma versão da solução (AWS CLI)
<a name="create-solution-version-cli"></a>

Quando sua solução estiver ATIVA, treine o modelo executando o comando a seguir. Substitua `solution arn` pelo nome do recurso da Amazon (ARN) da solução de [Configurar uma solução personalizada no Amazon Personalize](customizing-solution-config.md).

```
aws personalize create-solution-version \
  --solution-arn {{solution arn}}
```

O ARN da versão da solução é exibido, por exemplo:

```
{
  "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/SolutionName/<version-id>"
}
```

Verifique o status de treinamento da versão da solução usando o comando `describe-solution-version`. Forneça o ARN da versão da solução que foi retornado na etapa anterior. Para obter mais informações sobre a API do , consulte [DescribeSolutionVersion](API_DescribeSolutionVersion.md).

```
aws personalize describe-solution-version \
  --solution-version-arn {{solution version arn}}
```

As propriedades da versão da solução e o `status` do treinamento são exibidos. Inicialmente, o status é exibido como CREATE PENDING (criação pendente), por exemplo:

```
{
  "solutionVersion": {
      "solutionVersionArn": "arn:aws:personalize:us-west-2:acct-id:solution/solutionName/<version-id>",
      ...,
      "status": "CREATE PENDING"
  }
}
```

O treinamento será concluído quando o `status` for `ACTIVE`, e você poderá avaliá-lo usando métricas fornecidas pelo Amazon Personalize. Para obter mais informações, consulte [Avaliar uma versão da solução do Amazon Personalize com métricas](working-with-training-metrics.md). Se o treinamento não for concluído devido a um erro, você não será cobrado pelo treinamento. 

Se a versão da sua solução tiver o status CREATE\_PENDING ou CREATE\_IN\_PROGRESS, você poderá usar a operação [StopSolutionVersionCreation](API_StopSolutionVersionCreation.md) para deixar de criar a versão da solução. Consulte [Como interromper a criação de uma versão da solução](stop-solution-version.md).

 Quando o status da versão é ATIVA, as recomendações começam a ser enviadas. O uso de uma versão da solução ativa depende de como você recebe as recomendações:
+  Para obter recomendações em tempo real, a versão ativa deve ser implantada com uma campanha do Amazon Personalize. Use a campanha para obter recomendações para seus usuários. Consulte [Você pode implantar uma versão da solução do Amazon Personalize com uma campanha.Criar uma campanha](campaigns.md).
+ Para as recomendações em lote, você especifica uma versão da solução ativa ao criar um trabalho de inferência em lote ou de segmento em lote. Consulte [Obter recomendações de itens em lote](getting-batch-recommendations.md) ou [Obter segmentos em lote de usuários](getting-user-segments.md).

## Criar uma versão da solução (AWS SDKs)
<a name="create-solution-version-sdk"></a>

Quando sua solução estiver ATIVA, use o código a seguir para criar uma versão da solução. Especifique o nome do recurso da Amazon (ARN) de [Configurar uma solução personalizada no Amazon Personalize](customizing-solution-config.md). Use a operação [DescribeSolutionVersion](API_DescribeSolutionVersion.md) para recuperar o status da versão da solução.

------
#### [ SDK for Python (Boto3) ]

```
import boto3

personalize = boto3.client('personalize')
# Store the solution ARN
solution_arn = '{{solution arn}}'
        
# Use the solution ARN to get the solution status.
solution_description = personalize.describe_solution(solutionArn = 'solution_arn')['solution']
print('Solution status: ' + solution_description['status'])

# Use the solution ARN to create a solution version.
print ('Creating solution version')
response = personalize.create_solution_version(solutionArn = solution_arn)
solution_version_arn = response['solutionVersionArn']
print('Solution version ARN: ' + solution_version_arn)

# Use the solution version ARN to get the solution version status.
solution_version_description = personalize.describe_solution_version(
    solutionVersionArn = solution_version_arn)['solutionVersion']
print('Solution version status: ' + solution_version_description['status'])
```

------
#### [ SDK for Java 2.x ]

```
public static String createPersonalizeSolutionVersion(PersonalizeClient personalizeClient, String solutionArn) {
        long maxTime = 0;
        long waitInMilliseconds = 30 * 1000; // 30 seconds
        String solutionStatus = "";
        String solutionVersionStatus = "";
        String solutionVersionArn = "";

        try {
            DescribeSolutionRequest describeSolutionRequest = DescribeSolutionRequest.builder()
                .solutionArn(solutionArn)
                .build();
            
            maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60;

            // Wait until solution is active. 
            while (Instant.now().getEpochSecond() < maxTime) {

                solutionStatus = personalizeClient.describeSolution(describeSolutionRequest).solution().status();
                System.out.println("Solution status: " + solutionStatus);

                if (solutionStatus.equals("ACTIVE") || solutionStatus.equals("CREATE FAILED")) {
                    break;
                }
                try {
                    Thread.sleep(waitInMilliseconds);
                } catch (InterruptedException e) {
                    System.out.println(e.getMessage());
                }
            }
            
            // Once the solution is active, start creating a solution version.
            
            if (solutionStatus.equals("ACTIVE")) {

                CreateSolutionVersionRequest createSolutionVersionRequest = CreateSolutionVersionRequest.builder()
                    .solutionArn(solutionArn)
                    .build();
                
                CreateSolutionVersionResponse createSolutionVersionResponse = personalizeClient.createSolutionVersion(createSolutionVersionRequest);
                solutionVersionArn = createSolutionVersionResponse.solutionVersionArn();

                System.out.println("Solution version ARN: " + solutionVersionArn);

                DescribeSolutionVersionRequest describeSolutionVersionRequest = DescribeSolutionVersionRequest.builder() 
                    .solutionVersionArn(solutionVersionArn)
                    .build();
                
                maxTime = Instant.now().getEpochSecond() + 3 * 60 * 60;
                
                while (Instant.now().getEpochSecond() < maxTime) {

                    // Use the solution version ARN to get the solution version status.
                    solutionVersionStatus = personalizeClient.describeSolutionVersion(describeSolutionVersionRequest).solutionVersion().status();
                    System.out.println("Solution version status: " + solutionVersionStatus);
    
                    if (solutionVersionStatus.equals("ACTIVE") || solutionVersionStatus.equals("CREATE FAILED")) {
                        break;
                    }
                    try {
                        Thread.sleep(waitInMilliseconds);
                    } catch (InterruptedException e) {
                        System.out.println(e.getMessage());
                    }
                }
                return solutionVersionArn;
            }
        } catch(PersonalizeException e) {
            System.err.println(e.awsErrorDetails().errorMessage());
            System.exit(1);
        }
        return "";
    }
```

------
#### [ SDK for JavaScript v3 ]

```
// Get service clients module and commands using ES6 syntax.
import { CreateSolutionVersionCommand } from "@aws-sdk/client-personalize";
import { personalizeClient } from "./libs/personalizeClients.js";
// Or, create the client here.
// const personalizeClient = new PersonalizeClient({ region: "REGION"});

// Set the solution version parameters.
export const solutionVersionParam = {
  solutionArn: "SOLUTION_ARN" /* required */,
};

export const run = async () => {
  try {
    const response = await personalizeClient.send(
      new CreateSolutionVersionCommand(solutionVersionParam),
    );
    console.log("Success", response);
    return response; // For unit tests.
  } catch (err) {
    console.log("Error", err);
  }
};
run();
```

------



Para verificar o status atual da versão da solução, chame a operação [DescribeSolutionVersion](API_DescribeSolutionVersion.md) e passe o ARN da versão da solução retornado da operação `CreateSolutionVersion`. O treinamento será concluído quando o `status` for `ACTIVE`, e você poderá avaliá-lo usando métricas fornecidas pelo Amazon Personalize. Para obter mais informações, consulte [Avaliar uma versão da solução do Amazon Personalize com métricas](working-with-training-metrics.md). Se o treinamento não for concluído devido a um erro, você não será cobrado pelo treinamento. 

Se a versão da sua solução tiver o status CREATE\_PENDING ou CREATE\_IN\_PROGRESS, você poderá usar a operação [StopSolutionVersionCreation](API_StopSolutionVersionCreation.md) para deixar de criar a versão da solução. Consulte [Como interromper a criação de uma versão da solução](stop-solution-version.md).

 Quando o status da versão é ATIVA, as recomendações começam a ser enviadas. O uso de uma versão da solução ativa depende de como você recebe as recomendações:
+  Para obter recomendações em tempo real, a versão ativa deve ser implantada com uma campanha do Amazon Personalize. Use a campanha para obter recomendações para seus usuários. Consulte [Você pode implantar uma versão da solução do Amazon Personalize com uma campanha.Criar uma campanha](campaigns.md).
+ Para as recomendações em lote, você especifica uma versão da solução ativa ao criar um trabalho de inferência em lote ou de segmento em lote. Consulte [Obter recomendações de itens em lote](getting-batch-recommendations.md) ou [Obter segmentos em lote de usuários](getting-user-segments.md).