Introdução a um grupo de conjuntos de dados de domínio (SDKpara JavaScript v3) - Amazon Personalize

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

Introdução a um grupo de conjuntos de dados de domínio (SDKpara JavaScript v3)

Este tutorial mostra como usar a AWS SDK for JavaScript v3 para criar um grupo de conjuntos de dados de domínio para o domínio VIDEO _ON_DEMAND. Neste tutorial, você cria um recomendador para o caso de uso principais opções para você.

Para ver o código usado neste tutorial em GitHub, consulte exemplos de código do Amazon Personalize SDK para a JavaScript v3 no repositório de exemplos de AWS SDKcódigo.

Ao terminar o exercício de introdução, para evitar cobranças desnecessárias, exclua os recursos que você criou. Para obter mais informações, consulte Requisitos para excluir recursos do Amazon Personalize.

Pré-requisitos

Este tutorial tem os seguintes pré-requisitos:

Tutorial

Nas etapas a seguir, você instalará as dependências necessárias. Em seguida, você vai criar um grupo de conjuntos de dados, importar dados, criar um recomendador para o caso de uso Principais opções para você e receber recomendações.

Se você usar o Node.js, poderá executar cada amostra de código salvando a amostra como um JavaScript arquivo e depois executandonode <fileName.js>.

Depois de concluir as etapas obrigatórias, instale as seguintes dependências do Amazon Personalize:

  • @aws-sdk/client-personalize

  • @aws -sdk/ client-personalize-runtime

  • @aws -sdk/ client-personalize-events (opcional para este tutorial, mas obrigatório se você quiser gravar eventos depois de criar seu recomendador)

Confira a seguir um exemplo de um arquivo package.json que você pode usar. Para instalar as dependências com o Node.js, navegue até a pasta onde você salvou o arquivo package.json e execute npm install.

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

Depois de instalar as dependências, crie seus clientes do Amazon Personalize. Neste tutorial, as amostras de código pressupõem que você cria os clientes em um arquivo chamado personalizeClients.js armazenado em um diretório de nome libs.

Este é um exemplo de um arquivo 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 };

Depois de criar seus clientes do Amazon Personalize, importe os dados históricos que você gerou ao concluir os Pré-requisitos de conceitos básicos. Para importar os dados históricos para o Amazon Personalize, faça o seguinte:

  1. Salve o esquema Avro a seguir como um JSON arquivo em seu diretório de trabalho. Esse esquema corresponde às colunas no CSV arquivo que você criou ao concluir o. Como criar dados de treinamento (grupo de conjuntos de dados de domínio)

    { "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" }
  2. Crie um esquema de domínio no Amazon Personalize com o código createDomainSchema.js a seguir. Substitua SCHEMA_PATH pelo caminho para o arquivo schema.json que você acabou de criar. Atualize o createSchemaParam para especificar um nome para o esquema e domain para especificar o 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 'fs'; let 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();
  3. Crie um grupo de conjunto de dados de domínio no Amazon Personalize com o código createDomainDatasetGroup.js a seguir. Atualize domainDatasetGroupParams para especificar um nome para o grupo de conjunto de dados e especifique VIDEO_ON_DEMAND para domain.

    // 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();
  4. Crie um conjunto de dados de interações com itens no Amazon Personalize com o código createDataset.js a seguir. Atualize o createDatasetParam para especificar o Amazon Resource Name (ARN) do grupo de conjuntos de dados e do esquema que você acabou de criar, dê um nome ao conjunto de dados e, paradatasetType, especifique. 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();
  5. Importe seus dados com o código createDatasetImportJob.js a seguir. Atualize datasetImportJobParam para especificar o seguinte:

    • Especifique um nome para o trabalho e especifique o do seu conjunto de dados Interactions. ARN

    • Para dataLocation, especifique o caminho do bucket do Amazon S3 (s3://https://amzn-s3-demo-bucket.s3.region-code.amazonaws.com/folder name/ratings.csv) onde você salvou os dados de treinamento.

    • Para roleArn, especifique o nome do recurso da Amazon para seu perfil de serviço do Amazon Personalize. Você criou esse perfil como parte de Pré-requisitos de conceitos básicos.

    // 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();

Depois que o trabalho de importação do conjunto de dados for concluído, você poderá criar um recomendador. Use o código createRecommender.js a seguir para obter uma recomendação. Atualize o createRecommenderParam com o seguinte: Especifique um nome para o recomendador, especifique o do seu grupo de conjuntos de ARN dados e para recipeArn especificar. 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();

Depois de criar um recomendador, você poderá usá-lo para receber recomendações. Use o código getRecommendations.js a seguir para obter recomendações para um usuário. Atualize o getRecommendationsParam para especificar o ARN do recomendador que você criou na etapa anterior e especifique uma ID de usuário (por exemplo,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();