Erste Schritte mit einer Domain-Datensatzgruppe (SDKfür JavaScript v3) - Amazon Personalize

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erste Schritte mit einer Domain-Datensatzgruppe (SDKfür JavaScript v3)

Dieses Tutorial zeigt Ihnen, wie Sie mit AWS SDK for JavaScript Version 3 eine Domain-Datensatzgruppe für die Domain VIDEO DEMAND _ON_ erstellen. In diesem Tutorial erstellen Sie eine Empfehlung für den Anwendungsfall „Top-Picks“.

Den in diesem Tutorial verwendeten Code finden Sie unter Amazon Personalize Personalize-Codebeispiele SDK für JavaScript v3 im AWS SDKCodebeispiel-Repository. GitHub

Wenn Sie mit der Übung „Erste Schritte“ fertig sind, löschen Sie die von Ihnen erstellten Ressourcen, um unnötige Kosten zu vermeiden. Weitere Informationen finden Sie unter Anforderungen für das Löschen von Amazon Personalize Personalize-Ressourcen.

Voraussetzungen

Für die Durchführung dieses Tutorials sind die folgenden Schritte erforderlich:

Tutorial

In den folgenden Schritten installieren Sie die erforderlichen Abhängigkeiten. Anschließend erstellen Sie eine Datensatzgruppe, importieren Daten, erstellen eine Empfehlung für den für Sie am besten geeigneten Anwendungsfall und erhalten Empfehlungen.

Wenn Sie Node.js verwenden, können Sie jedes Codebeispiel ausführen, indem Sie das Beispiel als JavaScript Datei speichern und dann ausführennode <fileName.js>.

Nachdem Sie die Voraussetzungen erfüllt haben, installieren Sie die folgenden Amazon Personalize Personalize-Abhängigkeiten:

Das Folgende ist ein Beispiel für eine package.json Datei, die Sie verwenden können. Um die Abhängigkeiten mit Node.js zu installieren, navigieren Sie zu dem Speicherort, an dem Sie die package.json Datei gespeichert haben, und führen Sie den Befehl ausnpm 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 } }

Nachdem Sie die Abhängigkeiten installiert haben, erstellen Sie Ihre Amazon Personalize Personalize-Clients. In diesem Tutorial gehen die Codebeispiele davon aus, dass Sie die Clients in einer Datei mit dem Namen erstellen, die in einem Verzeichnis mit dem Namen personalizeClients.js libs gespeichert ist.

Im Folgenden wird ein Beispiel für eine personalizeClient.js-Datei dargestellt.

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 };

Nachdem Sie Ihre Amazon Personalize-Kunden erstellt haben, importieren Sie die historischen Daten, die Sie beim Abschluss des Voraussetzungen für den Einstieg erstellt haben. Gehen Sie wie folgt vor, um historische Daten in Amazon Personalize zu importieren:

  1. Speichern Sie das folgende Avro-Schema als JSON Datei in Ihrem Arbeitsverzeichnis. Dieses Schema entspricht den Spalten in der CSV Datei, die Sie erstellt haben, als Sie das Erstellung der Trainingsdaten (Domain-Datensatzgruppe) abgeschlossen haben.

    { "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. Erstellen Sie ein Domain-Schema in Amazon Personalize mit dem folgenden createDomainSchema.js Code. SCHEMA_PATHErsetzen Sie es durch den Pfad zur schema.json-Datei, die Sie gerade erstellt haben. Aktualisieren Sie diecreateSchemaParam, um einen Namen für das Schema anzugeben, und um zu spezifizieren. 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 '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. Erstellen Sie eine Domain-Datensatzgruppe in Amazon Personalize mit dem folgenden createDomainDatasetGroup.js Code. Aktualisieren Sie dendomainDatasetGroupParams, um einen Namen für die Datensatzgruppe anzugeben, und um zu domain spezifizierenVIDEO_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();
  4. Erstellen Sie einen Datensatz mit Artikelinteraktionen in Amazon Personalize mit dem folgenden createDataset.js Code. Aktualisieren Sie dencreateDatasetParam, um den Amazon-Ressourcennamen (ARN) der Datensatzgruppe und des Schemas anzugeben, die Sie gerade erstellt haben, geben Sie dem Datensatz einen Namen und geben Sie für datasetType anInteractions.

    // 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. Importieren Sie Ihre Daten mit dem folgenden createDatasetImportJob.js Code. Aktualisieren Sie dendatasetImportJobParam, um Folgendes anzugeben:

    • Geben Sie einen Namen für den Job und den Ihres Interactions-Datensatzes anARN.

    • Geben Sie für dataLocation den Amazon S3 S3-Bucket-Pfad (s3://https://amzn-s3-demo-bucket.s3.region-code.amazonaws.com/folder name/ratings.csv) an, in dem Sie die Trainingsdaten gespeichert haben.

    • roleArnGeben Sie den Amazon-Ressourcennamen für Ihre Amazon Personalize-Servicerolle an. Sie haben diese Rolle als Teil von erstellt. Voraussetzungen für den Einstieg

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

Nachdem Ihr Datensatz-Importjob abgeschlossen ist, können Sie eine Empfehlung erstellen. Verwenden Sie den folgenden createRecommender.js Code, um einen Empfehlungsgeber zu erstellen. Aktualisieren Sie createRecommenderParam den wie folgt: Geben Sie einen Namen für den Empfehlungsgeber an, geben Sie den Namen Ihrer Datensatzgruppe an und geben Sie an. ARN 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();

Nachdem Sie einen Empfehlungsgeber erstellt haben, verwenden Sie ihn, um Empfehlungen zu erhalten. Verwenden Sie den folgenden getRecommendations.js Code, um Empfehlungen für einen Benutzer abzurufen. Aktualisieren Sie dengetRecommendationsParam, um den ARN Empfehlungsgeber anzugeben, den Sie im vorherigen Schritt erstellt haben, und geben Sie eine Benutzer-ID an (z. B.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();