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
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.
Tópicos
Pré-requisitos
Este tutorial tem os seguintes pré-requisitos:
-
Conclua os Pré-requisitos de conceitos básicos para configurar as permissões necessárias e criar os dados de treinamento. Se você também tiver concluído Conceitos básicos do grupo de conjuntos de dados de domínio (console), poderá reutilizar os mesmos dados de origem. Se estiver usando seus próprios dados de origem, verifique se eles estão formatados de acordo com os requisitos.
-
Configure o SDK for JavaScript e AWS as credenciais conforme especificado no JavaScript procedimento Configurando o SDK for no Guia do AWS SDK for JavaScript desenvolvedor.
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:
-
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" }
-
Crie um esquema de domínio no Amazon Personalize com o código
createDomainSchema.js
a seguir. SubstituaSCHEMA_PATH
pelo caminho para o arquivo schema.json que você acabou de criar. Atualize ocreateSchemaParam
para especificar um nome para o esquema edomain
para especificar oVIDEO_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();
-
Crie um grupo de conjunto de dados de domínio no Amazon Personalize com o código
createDomainDatasetGroup.js
a seguir. AtualizedomainDatasetGroupParams
para especificar um nome para o grupo de conjunto de dados e especifiqueVIDEO_ON_DEMAND
paradomain
.// 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();
-
Crie um conjunto de dados de interações com itens no Amazon Personalize com o código
createDataset.js
a seguir. Atualize ocreateDatasetParam
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();
-
Importe seus dados com o código
createDatasetImportJob.js
a seguir. AtualizedatasetImportJobParam
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://
) onde você salvou os dados de treinamento.https://amzn-s3-demo-bucket.s3.region-code.amazonaws.com
/folder name
/ratings.csv -
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();