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
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.
Themen
Voraussetzungen
Für die Durchführung dieses Tutorials sind die folgenden Schritte erforderlich:
-
Gehen Sie wie folgt vorVoraussetzungen für den Einstieg, um die erforderlichen Berechtigungen einzurichten und die Trainingsdaten zu erstellen. Wenn Sie auch das abgeschlossen habenErste Schritte mit einer Domain-Datensatzgruppe (Konsole), können Sie dieselben Quelldaten wiederverwenden. Wenn Sie Ihre eigenen Quelldaten verwenden, stellen Sie sicher, dass Ihre Daten wie in den Voraussetzungen beschrieben formatiert sind.
-
Richten Sie das SDK für JavaScript und die AWS Anmeldeinformationen wie im JavaScript Verfahren SDKzur Einrichtung von for im AWS SDK for JavaScript Entwicklerhandbuch beschrieben ein.
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:
-
@aws -sdk/client-personalize
-
@aws -sdk/ client-personalize-runtime
-
@aws -sdk/ client-personalize-events (optional für dieses Tutorial, aber erforderlich, wenn Sie Ereignisse aufzeichnen möchten, nachdem Sie Ihren Empfehlungsgeber erstellt haben)
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:
-
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" }
-
Erstellen Sie ein Domain-Schema in Amazon Personalize mit dem folgenden
createDomainSchema.js
Code.SCHEMA_PATH
Ersetzen 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();
-
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 zudomain
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();
-
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ürdatasetType
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();
-
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://
) an, in dem Sie die Trainingsdaten gespeichert haben.https://amzn-s3-demo-bucket.s3.region-code.amazonaws.com
/folder name
/ratings.csv -
roleArn
Geben 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();