Memulai grup dataset Domain (SDKuntuk JavaScript v3) - Amazon Personalize

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memulai grup dataset Domain (SDKuntuk JavaScript v3)

Tutorial ini menunjukkan cara menggunakan AWS SDK for JavaScript v3 untuk membuat grup dataset Domain untuk domain VIDEO _ON_DEMAND. Dalam tutorial ini, Anda membuat rekomendasi untuk pilihan Top untuk kasus penggunaan Anda.

Untuk melihat kode yang digunakan dalam tutorial ini GitHub, lihat contoh kode Amazon Personalize SDK untuk JavaScript v3 di repositori Contoh AWS SDKKode.

Saat Anda menyelesaikan latihan memulai, untuk menghindari biaya yang tidak perlu, hapus sumber daya yang Anda buat. Untuk informasi selengkapnya, lihat Persyaratan untuk menghapus sumber daya Amazon Personalize.

Prasyarat

Berikut ini adalah langkah-langkah prasyarat untuk menyelesaikan tutorial ini:

  • Selesaikan Memulai prasyarat untuk mengatur izin yang diperlukan dan membuat data pelatihan. Jika Anda juga menyelesaikanMemulai grup dataset Domain (konsol), Anda dapat menggunakan kembali data sumber yang sama. Jika Anda menggunakan data sumber Anda sendiri, pastikan bahwa data Anda diformat seperti dalam prasyarat.

  • Siapkan SDK untuk JavaScript dan AWS kredensialnya seperti yang ditentukan dalam Menyiapkan JavaScript prosedur SDK untuk di Panduan AWS SDK for JavaScript Pengembang.

Tutorial

Pada langkah-langkah berikut, Anda menginstal dependensi yang diperlukan. Kemudian Anda membuat grup kumpulan data, mengimpor data, membuat pemberi rekomendasi untuk pilihan Teratas untuk kasus penggunaan Anda, dan mendapatkan rekomendasi.

Jika Anda menggunakan Node.js, Anda dapat menjalankan setiap contoh kode dengan menyimpan sampel sebagai JavaScript file dan kemudian menjalankannyanode <fileName.js>.

Setelah Anda menyelesaikan prasyarat, instal dependensi Amazon Personalize berikut:

  • @aws -sdk/klien-personalisasi

  • @aws -sdk/ client-personalize-runtime

  • @aws -sdk/ client-personalize-events (opsional untuk tutorial ini, tetapi diperlukan jika Anda ingin merekam acara setelah Anda membuat pemberi rekomendasi)

Berikut ini adalah contoh package.json file yang dapat Anda gunakan. Untuk menginstal dependensi dengan Node.js, navigasikan ke tempat Anda menyimpan package.json file dan menjalankannya. 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 } }

Setelah Anda menginstal dependensi, buat klien Amazon Personalize Anda. Dalam tutorial ini, contoh kode mengasumsikan Anda membuat klien dalam file bernama personalizeClients.js disimpan dalam direktori bernamalibs.

Berikut ini adalah contoh personalizeClient.js file.

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

Setelah Anda membuat klien Amazon Personalize, impor data historis yang Anda buat saat Anda menyelesaikan. Memulai prasyarat Untuk mengimpor data historis ke Amazon Personalize, lakukan hal berikut:

  1. Simpan skema Avro berikut sebagai JSON file di direktori kerja Anda. Skema ini cocok dengan kolom dalam CSV file yang Anda buat saat Anda menyelesaikan. Membuat data pelatihan (Grup dataset domain)

    { "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. Buat skema domain di Amazon Personalize dengan kode berikut. createDomainSchema.js Ganti SCHEMA_PATH dengan path ke file schema.json yang baru saja Anda buat. Perbarui createSchemaParam untuk menentukan nama untuk skema, dan untuk domain menentukanVIDEO_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. Buat grup kumpulan data domain di Amazon Personalisasi dengan kode berikut. createDomainDatasetGroup.js Perbarui domainDatasetGroupParams untuk menentukan nama untuk grup kumpulan data, dan untuk domain menentukanVIDEO_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. Buat kumpulan data interaksi Item di Amazon Personalisasi dengan kode berikut. createDataset.js Perbarui createDatasetParam untuk menentukan Amazon Resource Name (ARN) dari grup dataset dan skema yang baru saja Anda buat, beri nama kumpulan data, dan untukdatasetType, tentukan. 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. Impor data Anda dengan createDatasetImportJob.js kode berikut. Perbarui datasetImportJobParam untuk menentukan yang berikut:

    • Tentukan nama untuk pekerjaan dan tentukan kumpulan data Interaksi Anda. ARN

    • UntukdataLocation, tentukan jalur bucket Amazon S3 (s3://https://amzn-s3-demo-bucket.s3.region-code.amazonaws.com/folder name/ratings.csv) tempat Anda menyimpan data pelatihan.

    • Untuk roleArn menentukan Nama Sumber Daya Amazon untuk peran layanan Amazon Personalisasi Anda. Anda menciptakan peran ini sebagai bagian dariMemulai prasyarat.

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

Setelah pekerjaan impor dataset Anda selesai, Anda siap membuat pemberi rekomendasi. Untuk membuat pemberi rekomendasi, gunakan createRecommender.js kode berikut. Perbarui createRecommenderParam dengan yang berikut: Tentukan nama untuk pemberi rekomendasi, tentukan grup kumpulan data AndaARN, dan untuk recipeArn tentukan. 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();

Setelah Anda membuat pemberi rekomendasi, Anda menggunakannya untuk mendapatkan rekomendasi. Gunakan getRecommendations.js kode berikut untuk mendapatkan rekomendasi bagi pengguna. Perbarui getRecommendationsParam untuk menentukan ARN pemberi rekomendasi yang Anda buat pada langkah sebelumnya, dan tentukan ID pengguna (misalnya,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();