

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

# Memulai grup dataset Domain (SDK for Python (Boto3))
<a name="getting-started-domain-python"></a>

Tutorial ini menunjukkan cara menggunakan SDK for Python (Boto3) untuk membuat grup dataset Domain untuk domain VIDEO\_ON\_DEMAND. Dalam tutorial ini, Anda membuat rekomendasi untuk *pilihan Top untuk kasus penggunaan Anda*.

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](deleting-resources.md). 

**Topics**
+ [Prasyarat](#gs-sdk-domain-prerequisites)
+ [Tutorial](#gs-python-tutorial)
+ [Memulai menggunakan Amazon Personalize APIs dengan notebook Jupyter (IPython)](#gs-jupyter-domain-notebook)

## Prasyarat
<a name="gs-sdk-domain-prerequisites"></a>

Berikut ini adalah langkah-langkah prasyarat untuk menggunakan contoh Python dalam panduan ini:
+ Selesaikan [Memulai prasyarat](gs-prerequisites.md) untuk mengatur izin yang diperlukan dan membuat data pelatihan. Jika Anda menggunakan data sumber Anda sendiri, pastikan bahwa data Anda diformat seperti dalam prasyarat.
+ Siapkan AWS SDK untuk Python (Boto3) lingkungan Anda seperti yang ditentukan dalam[Menyiapkan AWS SDKs](aws-personalize-set-up-sdks.md).

## Tutorial
<a name="gs-python-tutorial"></a>

Dalam langkah-langkah berikut, Anda memverifikasi lingkungan Anda dan membuat SDK for Python (Boto3) klien untuk Amazon Personalize. Kemudian Anda mengimpor data, membuat pemberi rekomendasi untuk *pilihan Teratas untuk kasus penggunaan Anda*, dan mendapatkan rekomendasi.

### Langkah 1: Verifikasi lingkungan Python Anda dan buat klien boto3
<a name="gs-python-domain-verify-environment"></a>

Setelah Anda menyelesaikan prasyarat, jalankan contoh Python berikut untuk mengonfirmasi bahwa lingkungan Anda dikonfigurasi dengan benar. Kode ini juga menciptakan Amazon Personalize boto3 klien yang Anda gunakan dalam tutorial ini. Jika lingkungan Anda dikonfigurasi dengan benar, daftar resep yang tersedia ditampilkan dan Anda dapat menjalankan contoh lain dalam tutorial ini.

```
import boto3

personalizeRt = boto3.client('personalize-runtime')
personalize = boto3.client('personalize')

response = personalize.list_recipes()

for recipe in response['recipes']:
    print (recipe)
```

### Langkah 2: Impor data
<a name="getting-started-python-domain-import-dataset"></a>

Setelah Anda membuat Amazon Personalisasi klien boto3 dan memverifikasi lingkungan Anda, impor data historis yang Anda buat saat Anda menyelesaikan. [Memulai prasyarat](gs-prerequisites.md) Untuk mengimpor data historis ke Amazon Personalize, lakukan hal berikut:

1. Gunakan kode berikut untuk membuat skema di Amazon Personalize. Ganti `gs-domain-interactions-schema` dengan nama untuk skema. 

   ```
   import json
   schema = {
     "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"
   }
   
   create_interactions_schema_response = personalize.create_schema(
       name='{{gs-domain-interactions-schema}}',
       schema=json.dumps(schema),
       domain='VIDEO_ON_DEMAND'
   )
   
   interactions_schema_arn = create_interactions_schema_response['schemaArn']
   print(json.dumps(create_interactions_schema_response, indent=2))
   ```

1. Buat grup dataset dengan kode berikut. Ganti `dataset group name` dengan nama untuk grup dataset.

   ```
   response = personalize.create_dataset_group(
     name = '{{dataset group name}}',
     domain = 'VIDEO_ON_DEMAND'
   )
   dsg_arn = response['datasetGroupArn']
   
   description = personalize.describe_dataset_group(datasetGroupArn = dsg_arn)['datasetGroup']
   
   print('Name: ' + description['name'])
   print('ARN: ' + description['datasetGroupArn'])
   print('Status: ' + description['status'])
   ```

1. Buat kumpulan data interaksi Item di grup kumpulan data baru Anda dengan kode berikut. Beri nama kumpulan data dan berikan `schema_arn` dan `dataset_group_arn` dari langkah sebelumnya.

   ```
   response = personalize.create_dataset(
       name = '{{interactions-dataset-name}}',
       schemaArn = interactions_schema_arn,
       datasetGroupArn = dsg_arn,
       datasetType = 'INTERACTIONS'
   )
   
   dataset_arn = response['datasetArn']
   ```

1. Impor data Anda dengan pekerjaan impor dataset dengan kode berikut. Kode menggunakan metode describe\_dataset\_import\_job untuk melacak status pekerjaan. 

   Teruskan parameter berikut sebagai parameter: nama untuk pekerjaan, `dataset_arn` dari langkah sebelumnya, jalur bucket Amazon S3 (`s3://{{bucket name}}/{{folder name}}/ratings.csv`) tempat Anda menyimpan data pelatihan, dan ARN peran layanan IAM Anda. Anda menciptakan peran ini sebagai bagian dari[Memulai prasyarat](gs-prerequisites.md). Amazon Personalize memerlukan izin untuk mengakses bucket. Untuk informasi tentang pemberian akses, lihat[Memberikan Amazon Personalisasi akses ke sumber daya Amazon S3](granting-personalize-s3-access.md). 

   ```
   import time
   response = personalize.create_dataset_import_job(
       jobName = '{{JobName}}',
       datasetArn = '{{dataset_arn}}',
       dataSource = {'dataLocation':'s3://{{amzn-s3-demo-bucket}}/{{filename}}.csv'},
       roleArn = '{{role_arn}}'
   )
   
   dataset_interactions_import_job_arn = response['datasetImportJobArn']
   
   description = personalize.describe_dataset_import_job(
       datasetImportJobArn = dataset_interactions_import_job_arn)['datasetImportJob']
   
   print('Name: ' + description['jobName'])
   print('ARN: ' + description['datasetImportJobArn'])
   print('Status: ' + description['status'])
   
   max_time = time.time() + 3*60*60 # 3 hours
   while time.time() < max_time:
       describe_dataset_import_job_response = personalize.describe_dataset_import_job(
           datasetImportJobArn = dataset_interactions_import_job_arn
       )
       status = describe_dataset_import_job_response["datasetImportJob"]['status']
       print("Interactions DatasetImportJob: {}".format(status))
       
       if status == "ACTIVE" or status == "CREATE FAILED":
           break
           
       time.sleep(60)
   ```

### Langkah 4: Buat pemberi rekomendasi
<a name="domain-gs-py-create-recommender"></a>

Setelah pekerjaan impor dataset Anda selesai, Anda siap membuat pemberi rekomendasi. Gunakan kode berikut untuk membuat pemberi rekomendasi. Berikan yang berikut ini sebagai parameter: nama untuk pemberi rekomendasi, Nama Sumber Daya Amazon (ARN) grup dataset Anda, dan `arn:aws:personalize:::recipe/aws-vod-top-picks` untuk resep ARN. Kode menggunakan metode describe\_recommended untuk melacak status pemberi rekomendasi.

```
import time
create_recommender_response = personalize.create_recommender(
  name = 'gs-python-top-picks',
  recipeArn = 'arn:aws:personalize:::recipe/aws-vod-top-picks',
  datasetGroupArn = dsg_arn     
)
recommender_arn = create_recommender_response['recommenderArn']

print('Recommender ARN:' + recommender_arn)
max_time = time.time() + 3*60*60 # 3 hours
while time.time() < max_time:

    version_response = personalize.describe_recommender(
        recommenderArn = recommender_arn
    )
    status = version_response["recommender"]["status"]

    if status == "ACTIVE":
        print("Creation succeeded for {}".format(recommender_arn))
        
    elif status == "CREATE FAILED":
        print("Creation failed for {}".format(recommender_arn))

    if status == "ACTIVE":
        break
    else:
        print("Recommender creation is still in progress")
        
    time.sleep(60)
```

### Langkah 5: Dapatkan rekomendasi
<a name="domain-gs-py-get-recommendations"></a>

Setelah Anda membuat pemberi rekomendasi, Anda menggunakannya untuk mendapatkan rekomendasi dengan kode berikut. Teruskan sebagai parameter Nama Sumber Daya Amazon (ARN) dari pemberi rekomendasi yang Anda buat pada langkah sebelumnya, dan ID pengguna (misalnya,). `123` Metode ini mencetak daftar item yang direkomendasikan. 

```
response = personalizeRt.get_recommendations(
    recommenderArn = "arn:aws:personalize:us-west-2:014025156336:recommender/gs-python-top-picks-89",
    userId = '123'
)
print("Recommended items")
for item in response['itemList']:
    print (item['itemId'])
```

## Memulai menggunakan Amazon Personalize APIs dengan notebook Jupyter (IPython)
<a name="gs-jupyter-domain-notebook"></a>

 [Untuk mulai membuat grup kumpulan data Domain dengan notebook Jupyter, kloning atau unduh serangkaian buku catatan yang ditemukan di folder [notebooks\_managed\_domains dari repositori Amazon Personalize samples](https://github.com/aws-samples/amazon-personalize-samples/tree/master/getting_started/notebooks_managed_domains).](https://github.com/aws-samples/amazon-personalize-samples) Notebook memandu Anda mengimpor data pelatihan, membuat pemberi rekomendasi, dan mendapatkan rekomendasi dengan Amazon Personalize.

**catatan**  
 [Sebelum memulai dengan notebook, pastikan untuk membangun lingkungan Anda mengikuti langkah-langkah di README.md](https://github.com/aws-samples/amazon-personalize-samples/blob/master/getting_started/README.md) 