Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Commencer à utiliser un groupe de jeux de données de domaine (SDKpour JavaScript v3)
Ce didacticiel explique comment utiliser la AWS SDK for JavaScript version 3 pour créer un groupe de jeux de données de domaine pour le domaine VIDEO _ON_DEMAND. Dans ce didacticiel, vous allez créer un outil de recommandation pour le cas d'utilisation qui vous convient le mieux.
Pour consulter le code utilisé dans ce didacticiel GitHub, consultez les exemples de code Amazon JavaScript Personalize SDK pour la version 3
Lorsque vous avez terminé l'exercice de mise en route, pour éviter d'encourir des frais inutiles, supprimez les ressources que vous avez créées. Pour de plus amples informations, veuillez consulter Conditions requises pour supprimer des ressources Amazon Personalize.
Rubriques
Prérequis
Les étapes suivantes sont nécessaires pour suivre ce didacticiel :
-
Complétez le Conditions préalables à la mise en route pour configurer les autorisations requises et créer les données d'entraînement. Si vous avez également rempli leCommencer à utiliser un groupe de jeux de données de domaine (console), vous pouvez réutiliser les mêmes données sources. Si vous utilisez vos propres données sources, assurez-vous qu'elles sont formatées conformément aux prérequis.
-
Configurez le SDK for JavaScript et les AWS informations d'identification comme indiqué dans la JavaScript procédure de configuration du SDK for du Guide du AWS SDK for JavaScript développeur.
Didacticiel
Dans les étapes suivantes, vous allez installer les dépendances requises. Ensuite, vous créez un groupe de jeux de données, vous importez des données, vous créez un outil de recommandation pour le cas d'utilisation qui vous convient le mieux et vous obtenez des recommandations.
Si vous utilisez Node.js, vous pouvez exécuter chaque exemple de code en l'enregistrant sous forme de JavaScript fichier, puis en l'exécutantnode <fileName.js>
.
Une fois les conditions requises remplies, installez les dépendances Amazon Personalize suivantes :
-
@aws -sdk/personnalisez le client
-
@aws -sdk/ client-personalize-runtime
-
@aws -sdk/ client-personalize-events (facultatif pour ce didacticiel, mais obligatoire si vous souhaitez enregistrer des événements après avoir créé votre recommandateur)
Voici un exemple de package.json
fichier que vous pouvez utiliser. Pour installer les dépendances avec Node.js, naviguez jusqu'à l'endroit où vous avez enregistré le package.json
fichier et exécutez-lenpm 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 } }
Après avoir installé les dépendances, créez vos clients Amazon Personalize. Dans ce didacticiel, les exemples de code supposent que vous créez les clients dans un fichier nommé personalizeClients.js
stocké dans un répertoire nommélibs
.
Voici un exemple de fichier 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 };
Après avoir créé vos clients Amazon Personalize, importez les données historiques que vous avez créées lorsque vous avez terminé leConditions préalables à la mise en route. Pour importer des données historiques dans Amazon Personalize, procédez comme suit :
-
Enregistrez le schéma Avro suivant sous forme de JSON fichier dans votre répertoire de travail. Ce schéma correspond aux colonnes du CSV fichier que vous avez créé lorsque vous avez terminé leCréation des données d'entraînement (groupe de jeux de données de domaine).
{ "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" }
-
Créez un schéma de domaine dans Amazon Personalize à l'aide du
createDomainSchema.js
code suivant.SCHEMA_PATH
Remplacez-le par le chemin du fichier schema.json que vous venez de créer. Mettez à jour lecreateSchemaParam
pour spécifier un nom pour le schéma, et pourdomain
spécifierVIDEO_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();
-
Créez un groupe de jeux de données de domaine dans Amazon Personalize à l'aide du
createDomainDatasetGroup.js
code suivant. Mettez à jour ledomainDatasetGroupParams
pour spécifier un nom pour le groupe de jeux de données, et pourdomain
spécifierVIDEO_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();
-
Créez un ensemble de données sur les interactions entre articles dans Amazon Personalize à l'aide
createDataset.js
du code suivant. Mettez à jour lecreateDatasetParam
pour spécifier le nom de ressource Amazon (ARN) du groupe de jeux de données et du schéma que vous venez de créer, donnez un nom à l'ensemble de données et pourdatasetType
, spécifiezInteractions
.// 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();
-
Importez vos données avec le
createDatasetImportJob.js
code suivant. Mettez à jour ledatasetImportJobParam
pour spécifier les éléments suivants :-
Donnez un nom à la tâche et spécifiez celui de votre jeu de données InteractionsARN.
-
Pour
dataLocation
, spécifiez le chemin du compartiment Amazon S3 (s3://
) dans lequel vous avez stocké les données d'entraînement.https://amzn-s3-demo-bucket.s3.region-code.amazonaws.com
/folder name
/ratings.csv -
Pour
roleArn
spécifier le nom de ressource Amazon pour votre rôle de service Amazon Personalize. Vous avez créé ce rôle dans le cadre duConditions préalables à la mise en route.
// 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();
-
Une fois votre tâche d'importation de jeu de données terminée, vous êtes prêt à créer un recommandateur. Pour créer un recommandeur, utilisez le createRecommender.js
code suivant. Mettez à jour le createRecommenderParam
avec ce qui suit : Spécifiez un nom pour le recommandateur, spécifiez celui de votre groupe de jeux de ARN données et pour recipeArn
spécifierarn: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();
Une fois que vous avez créé un recommandeur, vous l'utilisez pour obtenir des recommandations. Utilisez le getRecommendations.js
code suivant pour obtenir des recommandations pour un utilisateur. Mettez getRecommendationsParam
à jour le pour spécifier le ARN recommandeur que vous avez créé à l'étape précédente et spécifiez un ID utilisateur (par exemple,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();