

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación de una solución
<a name="create-solution"></a>

Puede crear una solución personalizada con la consola de Amazon Personalize, la AWS Command Line Interface (AWS CLI) o los SDK de AWS. A continuación, se incluyen pasos detallados para crear una solución con la consola de Amazon Personalize y ejemplos de código que muestran cómo crear una solución solo con los campos obligatorios. 

**Topics**
+ [Creación de una solución (consola)](#configure-solution-console)
+ [Creación de una solución (AWS CLI)](#configure-solution-cli)
+ [Creación de una solución (SDK de AWS)](#configure-solution-sdk)

## Creación de una solución (consola)
<a name="configure-solution-console"></a>

**importante**  
De forma predeterminada, todas las soluciones nuevas utilizan el entrenamiento automático. Con el entrenamiento automático, incurrirá en costos de entrenamiento mientras la solución esté activa. Para evitar costos innecesarios, cuando haya terminado, puede [actualizar la solución](updating-solution.md) para desactivar el entrenamiento automático. Para obtener información sobre los costos de entrenamiento, consulte [Precios de Amazon Personalize](https://aws.amazon.com/personalize/pricing/).

 Para crear una solución en la consola, elija el grupo de conjuntos de datos y, a continuación, especifique el nombre de la solución, la receta y la configuración de entrenamiento opcional. 

**Para configurar una solución (consola)**

1. Abra la consola de Amazon Personalize en [https://console.aws.amazon.com/personalize/home](https://console.aws.amazon.com/personalize/home) e inicie sesión en la cuenta.

1. En la página **Grupos de conjuntos de datos**, elija su grupo de conjuntos de datos.

1. En la página **Descripción general**, para **Paso 3**, realice una de las siguientes acciones:
   + Si ha creado un grupo de conjuntos de datos de dominio, elija **Usar recursos personalizados** y, después, **Crear soluciones**.
   + Si ha creado un grupo de conjuntos de datos personalizados, elija **Crear soluciones**. 

1. En **Nombre de la solución**, especifique un nombre para la solución.

1. En **Tipo de solución**, elija el tipo de solución que desea crear. El tipo que elija determina las recetas que están disponibles. 
   + Elija **Recomendación de elementos** para obtener recomendaciones de elementos para sus usuarios. Por ejemplo, recomendaciones personalizadas sobre películas. 
   + Elija **Recomendación de acción** a fin obtener recomendaciones sobre acciones para los usuarios. Por ejemplo, genere la siguiente mejor acción para un usuario, como descargar la aplicación. 
   + Elija **Segmentación de usuarios** para obtener segmentos de usuarios (grupos de usuarios) en función de los datos de los elementos.

1. En **Receta**, elija una receta (consulte [Elección de una receta](working-with-predefined-recipes.md)). 

1. Para **Etiquetas**, si lo desea, añada cualquier etiqueta. Para obtener más información acerca del etiquetado de recursos de Amazon Personalize, consulte [Etiquetado de recursos de Amazon Personalize](tagging-resources.md).

1. Elija **Siguiente**.

1. En la página **Configuración de entrenamiento**, personalice la solución para que se adapte a los requisitos empresariales. 
   + En **Entrenamiento automático**, elija si la solución utiliza el entrenamiento automático. Si usa entrenamiento automático, puede cambiar la `Automatic training frequency`. La frecuencia de entrenamiento predeterminada es cada siete días. 

     Recomendamos utilizar el entrenamiento automático. Esto le facilita mantener la relevancia de la recomendación. La frecuencia de entrenamiento depende de los requisitos empresariales, de la receta que utilice y de la frecuencia con que importe los datos. Para obtener más información, consulte [Configuración del entrenamiento automático](solution-config-auto-training.md). Para obtener información sobre cómo mantener la relevancia, consulte [Mantenimiento de la relevancia de las recomendaciones](maintaining-relevance.md).
   + En **Configuración de hiperparámetros**, configure cualquier opción de hiperparámetro en función de la receta y de las necesidades empresariales. Las distintas recetas usan diferentes hiperparámetros. Para los hiperparámetros que tiene disponibles, consulte las recetas individuales en [Elección de una receta](working-with-predefined-recipes.md). 
   + En **Columnas para entrenamiento**, si la receta genera recomendaciones de elemento o segmentos de usuarios, puede elegir las columnas que Amazon Personalize tiene en cuenta a la hora de entrenar las versiones de solución. Para obtener más información, consulte [Configuración de las columnas que se utilizan en el entrenamiento](custom-config-columns.md). 
   + En **Configuración adicional**, si el conjunto de datos de interacciones con artículos tiene la columna EVENT\$1TYPE o tanto EVENT\$1TYPE como EVENT\$1VALUE, si lo desea, utilice los campos **Tipo de evento** y **Umbral del valor del evento** para elegir los datos de interacciones con artículos que Amazon Personalize usará al entrenar el modelo. Para obtener más información, consulte [Elección de los datos de interacciones de elementos utilizados para el entrenamiento](event-values-types.md). 

      Si tiene varios tipos de evento y usa la receta User-Personalization-v2 o Personalized-Ranking-v2, también puede especificar ponderaciones distintas para los diferentes tipos. Por ejemplo, puede configurar una solución para dar más peso a los eventos de compra que a los de clic. Para obtener más información, consulte [Optimización de una solución con la configuración de eventos](optimizing-solution-events-config.md). 
   + Si utiliza la receta [Receta User-Personalization](native-recipe-new-item-USER_PERSONALIZATION.md) o [Receta Personalized-Ranking](native-recipe-search.md), si lo desea, especifique un **Objetivo** y elija una **Sensibilidad de objetivo** con el fin de optimizar su solución en función de un objetivo, además de su relevancia. La sensibilidad de los objetivos configura la forma en que Amazon Personalize equilibra la recomendación de elementos en función del objetivo según la relevancia a través de los datos de interacciones. Para obtener más información, consulte [Optimización de una solución para un objetivo adicional](optimizing-solution-for-objective.md).

1. Seleccione **Siguiente** y revise los detalles de la solución. No puede cambiar la configuración de la solución después de crearla.

1. Elija **Create solution (Crear solución)**. Después de crear una solución, Amazon Personalize comienza a crear la primera versión de solución en una hora. Cuando comience el entrenamiento, podrá supervisarla en la sección **Versiones de solución** de la página de detalles de la solución. Las versiones de solución creadas automáticamente tienen un **Tipo de entrenamiento** de AUTOMATIC. 

    Cuando el estado de la versión de solución sea ACTIVE, podrá usarla para recibir recomendaciones. El uso de una versión de solución activa depende de cómo reciba las recomendaciones:
   +  Para obtener recomendaciones en tiempo real, implemente una versión de solución con el estado ACTIVE con una campaña de Amazon Personalize. Utilice la campaña para obtener recomendaciones para los usuarios. Consulte [Implementación de una versión de solución de Amazon Personalize con una campañaCreación de una campaña](campaigns.md).
   + Para las recomendaciones por lotes, especifique una versión de solución con el estado ACTIVO al crear un trabajo de inferencia por lotes o un trabajo de segmento por lotes. Consulte [Obtención de recomendaciones de elemento por lotes](getting-batch-recommendations.md) o [Obtención de segmentos de usuarios por lotes](getting-user-segments.md).

## Creación de una solución (AWS CLI)
<a name="configure-solution-cli"></a>

**importante**  
De forma predeterminada, todas las soluciones nuevas utilizan el entrenamiento automático. Con el entrenamiento automático, incurrirá en costos de entrenamiento mientras la solución esté activa. Para evitar costos innecesarios, cuando haya terminado, puede [actualizar la solución](updating-solution.md) para desactivar el entrenamiento automático. Para obtener información sobre los costos de entrenamiento, consulte [Precios de Amazon Personalize](https://aws.amazon.com/personalize/pricing/).

Para crear una solución con la AWS CLI, utilice el comando `create-solution`. Este comando utiliza la operación de la API [CreateSolution](API_CreateSolution.md). En el siguiente código se muestra cómo crear una solución que usa entrenamiento automático. Crea automáticamente una nueva versión de solución cada cinco días.

Para usar el código, actualícelo para asignar un nombre a la solución, especifique el nombre de recurso de Amazon (ARN) del grupo de conjuntos de datos, cambie la frecuencia de entrenamiento y especifique el ARN de la receta que se usará. Para obtener información acerca de las recetas, consulte [Elección de una receta](working-with-predefined-recipes.md). 

```
aws personalize create-solution \
--name solution name \
--dataset-group-arn dataset group ARN \
--recipe-arn recipe ARN \
--perform-auto-training \
--solution-config "{\"autoTrainingConfig\": {\"schedulingExpression\": \"rate(5 days)\"}}"
```
+ Recomendamos que utilice el entrenamiento automático. Esto le facilita mantener y mejorar la relevancia de la recomendación. De forma predeterminada, todas las soluciones nuevas utilizan el entrenamiento automático. La frecuencia de entrenamiento predeterminada es cada siete días. La frecuencia de entrenamiento depende de los requisitos empresariales, de la receta que utilice y de la frecuencia con que importe los datos. Para obtener más información, consulte [Configuración del entrenamiento automático](solution-config-auto-training.md). 
+ En función de la receta, puede modificar el código para configurar determinadas propiedades e hiperparámetros de la receta (consulte [Hiperparámetros y HPO](customizing-solution-config-hpo.md)), configurar qué columnas se utilizan para el entrenamiento (consulte [Configuración de las columnas que se utilizan en el entrenamiento (AWS CLI)](custom-config-columns.md#custom-config-columns-cli)) o filtrar los datos de interacciones de elemento que se utilizan para el entrenamiento (consulte [Elección de los datos de interacciones de elementos utilizados para el entrenamiento](event-values-types.md)). 
+ Si utiliza la receta [Receta User-Personalization](native-recipe-new-item-USER_PERSONALIZATION.md) o [Receta Personalized-Ranking](native-recipe-search.md), puede optimizar la solución para un objetivo, además de por la relevancia. Para obtener más información, consulte [Optimización de una solución para un objetivo adicional](optimizing-solution-for-objective.md).

Después de crear la solución, registre el ARN de la solución para usarlo en el futuro. Con el entrenamiento automático, la creación de versiones de la solución comienza una hora después de que el estado de la solución sea ACTIVE. Si crea de forma manual una versión de solución en menos de una hora, la solución omitirá el primer entrenamiento automático. Una vez que comience el entrenamiento, puede obtener el nombre de recurso de Amazon (ARN) de la versión de solución con la operación de API [ListSolutionVersions](https://docs.aws.amazon.com/personalize/latest/dg/API_ListSolutionVersions.html). Para obtener el estado, utilice la operación de la API [DescribeSolutionVersion](https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolutionVersion.html). 

 Cuando el estado de la versión de solución sea ACTIVE, podrá usarla para recibir recomendaciones. El uso de una versión de solución activa depende de cómo reciba las recomendaciones:
+  Para obtener recomendaciones en tiempo real, implemente una versión de solución con el estado ACTIVE con una campaña de Amazon Personalize. Utilice la campaña para obtener recomendaciones para los usuarios. Consulte [Implementación de una versión de solución de Amazon Personalize con una campañaCreación de una campaña](campaigns.md).
+ Para las recomendaciones por lotes, especifique una versión de solución con el estado ACTIVO al crear un trabajo de inferencia por lotes o un trabajo de segmento por lotes. Consulte [Obtención de recomendaciones de elemento por lotes](getting-batch-recommendations.md) o [Obtención de segmentos de usuarios por lotes](getting-user-segments.md).

## Creación de una solución (SDK de AWS)
<a name="configure-solution-sdk"></a>

**importante**  
De forma predeterminada, todas las soluciones nuevas utilizan el entrenamiento automático. Con el entrenamiento automático, incurrirá en costos de entrenamiento mientras la solución esté activa. Para evitar costos innecesarios, cuando haya terminado, puede [actualizar la solución](updating-solution.md) para desactivar el entrenamiento automático. Para obtener información sobre los costos de entrenamiento, consulte [Precios de Amazon Personalize](https://aws.amazon.com/personalize/pricing/).

Para crear una solución con los SDK de AWS, utilice la operación de la API [CreateSolution](API_CreateSolution.md). En el siguiente código se muestra cómo crear una solución que usa entrenamiento automático. Crea automáticamente una nueva versión de solución cada cinco días.

Para usar el código, actualícelo para asignar un nombre a la solución, especifique el nombre de recurso de Amazon (ARN) del grupo de conjuntos de datos, cambie la frecuencia de entrenamiento y especifique el ARN de la receta que desea usar. Para obtener información acerca de las recetas, consulte [Elección de una receta](working-with-predefined-recipes.md). 

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

```
import boto3

personalize = boto3.client('personalize')

create_solution_response = personalize.create_solution(
  name = 'solution name',
  recipeArn = 'recipe ARN',
  datasetGroupArn = 'dataset group ARN',
  performAutoTraining = True,
  solutionConfig = {
    "autoTrainingConfig": {
      "schedulingExpression": "rate(5 days)"
    }
  }
)
solution_arn = create_solution_response['solutionArn']
print('solution_arn: ', solution_arn)
```

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

```
import {
  CreateSolutionCommand,
  PersonalizeClient,
} from "@aws-sdk/client-personalize";

// create client
const personalizeClient = new PersonalizeClient({ region: "REGION" });

// set the solution parameters
export const solutionParam = {
  datasetGroupArn: "DATASET_GROUP_ARN" /* required */,
  recipeArn: "RECIPE_ARN" /* required */,
  name: "SOLUTION_NAME" /* required */,
  performAutoTraining: true /* optional, default is true */,
  solutionConfig: {
    autoTrainingConfig: {
      schedulingExpression:
        "rate(5 days)" /* optional, default is every 7 days */,
    },
  },
};

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

------
+ Recomendamos que utilice el entrenamiento automático. Esto le facilita mantener y mejorar la relevancia de la recomendación. De forma predeterminada, todas las soluciones nuevas utilizan el entrenamiento automático. La frecuencia de entrenamiento predeterminada es cada siete días. La frecuencia de entrenamiento depende de los requisitos empresariales, de la receta que utilice y de la frecuencia con que importe los datos. Para obtener más información, consulte [Configuración del entrenamiento automático](solution-config-auto-training.md). 
+ En función de la receta, puede modificar el código para configurar determinadas propiedades e hiperparámetros de la receta (consulte [Hiperparámetros y HPO](customizing-solution-config-hpo.md)), configurar qué columnas se utilizan para el entrenamiento (consulte [Configuración de las columnas que se utilizan en el entrenamiento (SDK de AWS)](custom-config-columns.md#custom-configure-columns-sdk)) o filtrar los datos de interacciones de elemento que se utilizan para el entrenamiento (consulte [Elección de los datos de interacciones de elementos utilizados para el entrenamiento](event-values-types.md)). 
+ Si utiliza la receta [Receta User-Personalization](native-recipe-new-item-USER_PERSONALIZATION.md) o [Receta Personalized-Ranking](native-recipe-search.md), puede optimizar la solución para un objetivo, además de por la relevancia. Para obtener más información, consulte [Optimización de una solución para un objetivo adicional](optimizing-solution-for-objective.md).

Después de crear la solución, registre el ARN de la solución para usarlo en el futuro. Con el entrenamiento automático, la creación de versiones de la solución comienza una hora después de que el estado de la solución sea ACTIVE. Si crea de forma manual una versión de solución en menos de una hora, la solución omitirá el primer entrenamiento automático. Una vez que comience el entrenamiento, puede obtener el nombre de recurso de Amazon (ARN) de la versión de solución con la operación de API [ListSolutionVersions](https://docs.aws.amazon.com/personalize/latest/dg/API_ListSolutionVersions.html). Para obtener el estado, utilice la operación de la API [DescribeSolutionVersion](https://docs.aws.amazon.com/personalize/latest/dg/API_DescribeSolutionVersion.html). 

Puede utilizar el siguiente código Python para esperar a que comience el entrenamiento automático. El método `wait_for_training_to_start` devuelve el ARN de la primera versión de solución.

```
import time
import boto3


def wait_for_training_to_start(new_solution_arn):
    max_time = time.time() + 3 * 60 * 60    # 3 hours
    while time.time() < max_time:
        list_solution_versions_response = personalize.list_solution_versions(
            solutionArn=new_solution_arn
        )
        solution_versions = list_solution_versions_response.get('solutionVersions', [])
        if solution_versions:
            new_solution_version_arn = solution_versions[0]['solutionVersionArn']
            print(f"Solution version ARN: {new_solution_version_arn}")
            return new_solution_version_arn
        else:
            print(f"Training hasn't started yet. Training will start within the next hour.")
            time.sleep(60)


personalize = boto3.client('personalize')

solution_arn = "solution_arn"
solution_version_arn = wait_for_training_to_start(solution_arn)
```

 Cuando el estado de la versión de solución sea ACTIVE, podrá usarla para recibir recomendaciones. El uso de una versión de solución activa depende de cómo reciba las recomendaciones:
+  Para obtener recomendaciones en tiempo real, implemente una versión de solución con el estado ACTIVE con una campaña de Amazon Personalize. Utilice la campaña para obtener recomendaciones para los usuarios. Consulte [Implementación de una versión de solución de Amazon Personalize con una campañaCreación de una campaña](campaigns.md).
+ Para las recomendaciones por lotes, especifique una versión de solución con el estado ACTIVO al crear un trabajo de inferencia por lotes o un trabajo de segmento por lotes. Consulte [Obtención de recomendaciones de elemento por lotes](getting-batch-recommendations.md) o [Obtención de segmentos de usuarios por lotes](getting-user-segments.md).