

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Guida introduttiva a un gruppo di set di dati di dominio (SDK per JavaScript v3)
<a name="getting-started-domain-js"></a>

Questo tutorial mostra come utilizzare la AWS SDK per JavaScript v3 per creare un gruppo di set di dati di dominio per il dominio VIDEO\_ON\_DEMAND. *In questo tutorial, crei un programma di raccomandazione per il caso d'uso Top picks for you.*

 *Per visualizzare il codice utilizzato in questo tutorial su GitHub, consulta gli [esempi di codice di Amazon Personalize per SDK for JavaScript v3 nel repository SDK](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javascriptv3/example_code/personalize) Code Examples. AWS *

Al termine dell'esercizio introduttivo, per evitare di incorrere in addebiti inutili, elimina le risorse che hai creato. Per ulteriori informazioni, consulta [Requisiti per l'eliminazione delle risorse Amazon Personalize](deleting-resources.md). 

**Topics**
+ [Prerequisiti](#gs-js-sdk-domain-prerequisites)
+ [Tutorial](#domain-gs-js-domain-tutorial)

## Prerequisiti
<a name="gs-js-sdk-domain-prerequisites"></a>

Di seguito sono riportati i passaggi preliminari per il completamento di questo tutorial:
+ Completa il [Prerequisiti per iniziare](gs-prerequisites.md) modulo per configurare le autorizzazioni richieste e creare i dati di addestramento. Se hai completato anche il[Guida introduttiva a un gruppo di set di dati di dominio (console)](getting-started-console-domain.md), puoi riutilizzare gli stessi dati di origine. Se utilizzi i tuoi dati di origine, assicurati che i dati siano formattati come nei prerequisiti.
+ *Configura l'SDK JavaScript e le AWS credenziali come specificato nella JavaScript procedura di [configurazione dell'SDK per la guida per gli sviluppatori](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-up.html).AWS SDK per JavaScript * 

## Tutorial
<a name="domain-gs-js-domain-tutorial"></a>

Nei passaggi seguenti, installerai le dipendenze richieste. Quindi crei un gruppo di set di dati, importi dati, crei un programma di raccomandazione per lo use case *Top pick for you* e ottieni consigli.

Se si utilizza Node.js, è possibile eseguire ogni esempio di codice salvandolo come JavaScript file e quindi eseguendolo. `node <fileName.js>`

### Passaggio 1: installa le dipendenze di Amazon Personalize
<a name="domain-gs-js-install-dependencies"></a>

Dopo aver completato i prerequisiti, installa le seguenti dipendenze di Amazon Personalize:
+ @aws -sdk/client-personalize
+ @aws -sdk/ client-personalize-runtime
+ @aws -sdk/ client-personalize-events (opzionale per questo tutorial, ma necessario se si desidera [registrare gli eventi dopo aver creato il programma di raccomandazione](recording-events.md))

Di seguito è riportato un esempio di `package.json` file che è possibile utilizzare. Per installare le dipendenze con Node.js, vai al punto in cui hai salvato il `package.json` file ed `npm install` esegui.

```
{
  "name": "personalize-js-project",
  "version": "1.0.0",
  "description": "personalize operations",
  "type": "module",
  "author": "Author Name <email@address.com>",
  "license": "ISC",
  "dependencies": {
    "@aws-sdk/client-personalize": "^3.350.0",
    "@aws-sdk/client-personalize-events": "^3.350.0",
    "@aws-sdk/client-personalize-runtime": "^3.350.0",
    "fs": "^0.0.1-security"
  },
  "compilerOptions": {
    "resolveJsonModule": true,
    "esModuleInterop": true
  }
}
```

### Fase 2: Creare clienti Amazon Personalize
<a name="domain-gs-js-clients"></a>

Dopo aver installato le dipendenze, crea i tuoi client Amazon Personalize. In questo tutorial, gli esempi di codice presuppongono che tu crei i client in un file denominato `personalizeClients.js` memorizzato in una directory denominata. `libs` 

Di seguito è riportato un esempio di un file `personalizeClient.js`.

```
import { PersonalizeClient } from "@aws-sdk/client-personalize";
import { PersonalizeRuntimeClient } from "@aws-sdk/client-personalize-runtime";
import { PersonalizeEventsClient } from "@aws-sdk/client-personalize-events";
// Set your AWS region.
const REGION = "{{region}}"; //e.g. "us-east-1"

const personalizeClient = new PersonalizeClient({ region: REGION});
const personalizeEventsClient = new PersonalizeEventsClient({ region: REGION});
const personalizeRuntimeClient = new PersonalizeRuntimeClient({ region: REGION});

export { personalizeClient, personalizeEventsClient, personalizeRuntimeClient };
```

### Fase 3: Importazione dei dati
<a name="domain-gs-js-import-dataset"></a>

Dopo aver creato i tuoi clienti Amazon Personalize, importa i dati storici che hai creato quando hai completato il. [Prerequisiti per iniziare](gs-prerequisites.md) Per importare dati storici in Amazon Personalize, procedi come segue:

1.  Salva il seguente schema Avro come file JSON nella tua directory di lavoro. Questo schema corrisponde alle colonne del file CSV che hai creato quando hai completato il. [Creazione dei dati di addestramento (gruppo di set di dati del dominio)](gs-prerequisites.md#gs-data-prep-domain) 

   ```
   {
     "type": "record",
     "name": "Interactions",
     "namespace": "com.amazonaws.personalize.schema",
     "fields": [
         {
             "name": "USER_ID",
             "type": "string"
         },
         {
             "name": "ITEM_ID",
             "type": "string"
         },
         {
             "name": "EVENT_TYPE",
             "type": "string"
         },
         {
             "name": "TIMESTAMP",
             "type": "long"
         }
     ],
     "version": "1.0"
   }
   ```

1. Crea uno schema di dominio in Amazon Personalize con il codice seguente`createDomainSchema.js`. `SCHEMA_PATH`Sostituiscilo con il percorso del file schema.json che hai appena creato. Aggiorna il `createSchemaParam` per specificare un nome per lo schema e per specificare. `domain` `VIDEO_ON_DEMAND` 

   ```
   // Get service clients module and commands using ES6 syntax.
   import { CreateSchemaCommand } from "@aws-sdk/client-personalize";
   import { personalizeClient } from "./libs/personalizeClients.js";
   
   // Or, create the client here.
   // const personalizeClient = new PersonalizeClient({ region: "REGION"});
   
   import fs from "node:fs";
   
   const schemaFilePath = "SCHEMA_PATH";
   let mySchema = "";
   
   try {
     mySchema = fs.readFileSync(schemaFilePath).toString();
   } catch (err) {
     mySchema = "TEST"; // for unit tests.
   }
   
   // Set the domain schema parameters.
   export const createDomainSchemaParam = {
     name: "NAME" /* required */,
     schema: mySchema /* required */,
     domain:
       "DOMAIN" /* required for a domain dataset group, specify ECOMMERCE or VIDEO_ON_DEMAND */,
   };
   
   export const run = async () => {
     try {
       const response = await personalizeClient.send(
         new CreateSchemaCommand(createDomainSchemaParam),
       );
       console.log("Success", response);
       return response; // For unit tests.
     } catch (err) {
       console.log("Error", err);
     }
   };
   run();
   ```

1. Crea un gruppo di set di dati di dominio in Amazon Personalize con il `createDomainDatasetGroup.js` seguente codice. Aggiorna il `domainDatasetGroupParams` per specificare un nome per il gruppo di set di dati e per specificare. `domain` `VIDEO_ON_DEMAND`

   ```
   // Get service clients module and commands using ES6 syntax.
   import { CreateDatasetGroupCommand } from "@aws-sdk/client-personalize";
   import { personalizeClient } from "./libs/personalizeClients.js";
   
   // Or, create the client here.
   // const personalizeClient = new PersonalizeClient({ region: "REGION"});
   
   // Set the domain dataset group parameters.
   export const domainDatasetGroupParams = {
     name: "NAME" /* required */,
     domain:
       "DOMAIN" /* required for a domain dsg, specify ECOMMERCE or VIDEO_ON_DEMAND */,
   };
   
   export const run = async () => {
     try {
       const response = await personalizeClient.send(
         new CreateDatasetGroupCommand(domainDatasetGroupParams),
       );
       console.log("Success", response);
       return response; // For unit tests.
     } catch (err) {
       console.log("Error", err);
     }
   };
   run();
   ```

1. Crea un set di dati sulle interazioni tra articoli in Amazon Personalize con il `createDataset.js` seguente codice. Aggiorna il `createDatasetParam` per specificare l'Amazon Resource Name (ARN) del gruppo di set di dati e dello schema che hai appena creato, assegna un nome al set di dati e specifica per. `datasetType` `Interactions`

   ```
   // Get service clients module and commands using ES6 syntax.
   import { CreateDatasetCommand } from "@aws-sdk/client-personalize";
   import { personalizeClient } from "./libs/personalizeClients.js";
   
   // Or, create the client here.
   // const personalizeClient = new PersonalizeClient({ region: "REGION"});
   
   // Set the dataset's parameters.
   export const createDatasetParam = {
     datasetGroupArn: "DATASET_GROUP_ARN" /* required */,
     datasetType: "DATASET_TYPE" /* required */,
     name: "NAME" /* required */,
     schemaArn: "SCHEMA_ARN" /* required */,
   };
   
   export const run = async () => {
     try {
       const response = await personalizeClient.send(
         new CreateDatasetCommand(createDatasetParam),
       );
       console.log("Success", response);
       return response; // For unit tests.
     } catch (err) {
       console.log("Error", err);
     }
   };
   run();
   ```

1. Importa i tuoi dati con il codice seguente. `createDatasetImportJob.js` Aggiorna il `datasetImportJobParam` per specificare quanto segue: 
   + Specificate un nome per il job e specificate l'ARN del dataset Interactions.
   + Per`dataLocation`, specifica il bucket path di Amazon S3 (`s3://{{https://amzn-s3-demo-bucket.s3.region-code.amazonaws.com}}/{{folder name}}/ratings.csv`) in cui hai archiviato i dati di addestramento.
   + Per `roleArn` specificare il nome della risorsa Amazon per il ruolo del servizio Amazon Personalize. Hai creato questo ruolo come parte di[Prerequisiti per iniziare](gs-prerequisites.md).

   ```
   // Get service clients module and commands using ES6 syntax.
   import { CreateDatasetImportJobCommand } from "@aws-sdk/client-personalize";
   import { personalizeClient } from "./libs/personalizeClients.js";
   
   // Or, create the client here.
   // const personalizeClient = new PersonalizeClient({ region: "REGION"});
   
   // Set the dataset import job parameters.
   export const datasetImportJobParam = {
     datasetArn: "DATASET_ARN" /* required */,
     dataSource: {
       /* required */
       dataLocation: "S3_PATH",
     },
     jobName: "NAME" /* required */,
     roleArn: "ROLE_ARN" /* required */,
   };
   
   export const run = async () => {
     try {
       const response = await personalizeClient.send(
         new CreateDatasetImportJobCommand(datasetImportJobParam),
       );
       console.log("Success", response);
       return response; // For unit tests.
     } catch (err) {
       console.log("Error", err);
     }
   };
   run();
   ```

### Passo 4: Crea un consulente
<a name="domain-gs-js-create-recommender"></a>

Una volta completato il processo di importazione del set di dati, sei pronto per creare un programma di raccomandazione. Per creare un programma di raccomandazione, utilizzate il codice seguente. `createRecommender.js` Aggiorna il `createRecommenderParam` con quanto segue: Specificare un nome per il programma di raccomandazione, specificare l'ARN del gruppo di set di dati e specificare. `recipeArn` `arn:aws:personalize:::recipe/aws-vod-top-picks`

```
// Get service clients module and commands using ES6 syntax.
import { CreateRecommenderCommand } from "@aws-sdk/client-personalize";
import { personalizeClient } from "./libs/personalizeClients.js";

// Or, create the client here.
// const personalizeClient = new PersonalizeClient({ region: "REGION"});

// Set the recommender's parameters.
export const createRecommenderParam = {
  name: "NAME" /* required */,
  recipeArn: "RECIPE_ARN" /* required */,
  datasetGroupArn: "DATASET_GROUP_ARN" /* required */,
};

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

### Passaggio 5: Ottieni consigli
<a name="domain-gs-js-get-recommendations"></a>

Dopo aver creato un programma di raccomandazione, lo usi per ricevere consigli. Usa il `getRecommendations.js` codice seguente per ottenere consigli per un utente. Aggiorna il `getRecommendationsParam` per specificare l'ARN del programma di raccomandazione creato nel passaggio precedente e specifica un ID utente (ad esempio,). `123` 

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

// Set the recommendation request parameters.
export const getRecommendationsParam = {
  recommenderArn: "RECOMMENDER_ARN" /* required */,
  userId: "USER_ID" /* required */,
  numResults: 15 /* optional */,
};

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