

Pemberitahuan akhir dukungan: Pada 15 September 2025, AWS akan menghentikan dukungan untuk Amazon Lex V1. Setelah 15 September 2025, Anda tidak lagi dapat mengakses konsol Amazon Lex V1 atau sumber daya Amazon Lex V1. Jika Anda menggunakan Amazon Lex V2, lihat [panduan Amazon Lex V2](https://docs.aws.amazon.com/lexv2/latest/dg/what-is.html) sebagai gantinya. 

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

# Latihan 1: Buat Amazon Lex Bot (AWS CLI)
<a name="gs-cli-create"></a>

Secara umum, saat Anda membuat bot, Anda:

1. Buat jenis slot untuk menentukan informasi yang bot Anda akan bekerja dengan.

1. Buat maksud yang menentukan tindakan pengguna yang didukung bot Anda. Gunakan jenis slot khusus yang Anda buat sebelumnya untuk menentukan slot, atau parameter, yang dibutuhkan maksud Anda.

1. Buat bot yang menggunakan maksud yang Anda tentukan. 

Dalam latihan ini Anda membuat dan menguji bot Amazon Lex baru menggunakan CLI. Gunakan struktur JSON yang kami sediakan untuk membuat bot. Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah di mana perintah akan dijalankan. Untuk daftar wilayah, lihat[Kuota Bangunan Model](gl-limits.md#gl-limits-model-building).

**Topics**
+ [Langkah 1: Buat Peran Tertaut Layanan ()AWS CLI](gs-create-role.md)
+ [Langkah 2: Buat Jenis Slot Kustom (AWS CLI)](gs-create-flower-types.md)
+ [Langkah 3: Buat Intent ()AWS CLI](gs-cli-create-order-flowers.md)
+ [Langkah 4: Buat Bot (AWS CLI)](gs-cli-create-order-flowers-bot.md)
+ [Langkah 5: Uji Bot (AWS CLI)](gs-create-test.md)

# Langkah 1: Buat Peran Tertaut Layanan ()AWS CLI
<a name="gs-create-role"></a>

Amazon Lex mengasumsikan peran AWS Identity and Access Management terkait layanan untuk memanggil AWS layanan atas nama bot Anda. Peran, yang ada di akun Anda, ditautkan ke kasus penggunaan Amazon Lex dan memiliki izin yang telah ditentukan sebelumnya. Untuk informasi selengkapnya, lihat [Menggunakan Peran Tertaut Layanan untuk Amazon Lex](using-service-linked-roles.md).

Jika Anda telah membuat bot Amazon Lex menggunakan konsol, peran terkait layanan dibuat secara otomatis. Loncat ke [Langkah 2: Buat Jenis Slot Kustom (AWS CLI)](gs-create-flower-types.md). 

**Untuk membuat peran terkait layanan (AWS CLI)**

1. Dalam AWS CLI, ketik perintah berikut:

   ```
   aws iam create-service-linked-role --aws-service-name lex.amazonaws.com
   ```

1. Periksa kebijakan menggunakan perintah berikut:

   ```
   aws iam get-role --role-name AWSServiceRoleForLexBots
   ```

   Tanggapannya adalah:

## Langkah Selanjutnya
<a name="gs-create-next-2"></a>

[Langkah 2: Buat Jenis Slot Kustom (AWS CLI)](gs-create-flower-types.md)

# Langkah 2: Buat Jenis Slot Kustom (AWS CLI)
<a name="gs-create-flower-types"></a>

Buat jenis slot khusus dengan nilai enumerasi untuk bunga yang dapat dipesan. Anda menggunakan jenis ini di langkah berikutnya saat membuat `OrderFlowers` intent. *Jenis slot* mendefinisikan nilai yang mungkin untuk slot, atau parameter, dari maksud.

Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah di mana perintah akan dijalankan. Untuk daftar wilayah, lihat[Kuota Bangunan Model](gl-limits.md#gl-limits-model-building).

**Untuk membuat jenis slot khusus (AWS CLI)**

1. Buat file teks bernama **FlowerTypes.json**. Salin kode JSON dari [FlowerTypes.json](gs-cli-create-flower-types-json.md) ke dalam file teks.

1. Panggil [PutSlotType](API_PutSlotType.md) operasi menggunakan AWS CLI untuk membuat jenis slot. Contoh diformat untuk Unix, Linux, dan macOS. Untuk Windows, ganti karakter kelanjutan backslash (\$1) Unix di akhir setiap baris dengan tanda sisipan (^).

   ```
   aws lex-models put-slot-type \
       --region region \
       --name FlowerTypes \
       --cli-input-json file://FlowerTypes.json
   ```

   Tanggapan dari server adalah:

   ```
   {
       "enumerationValues": [
           {
               "value": "tulips"
           }, 
           {
               "value": "lilies"
           }, 
           {
               "value": "roses"
           }
       ], 
       "name": "FlowerTypes", 
       "checksum": "checksum", 
       "version": "$LATEST", 
       "lastUpdatedDate": timestamp, 
       "createdDate": timestamp, 
       "description": "Types of flowers to pick up"
   }
   ```

## Langkah Selanjutnya
<a name="gs-create-next-3"></a>

[Langkah 3: Buat Intent ()AWS CLI](gs-cli-create-order-flowers.md)

# FlowerTypes.json
<a name="gs-cli-create-flower-types-json"></a>

Kode berikut adalah data JSON yang diperlukan untuk membuat jenis slot `FlowerTypes` khusus:

```
{
    "enumerationValues": [
        {
            "value": "tulips"
        },
        {
            "value": "lilies"
        },
        {
            "value": "roses"
        }
    ],
    "name": "FlowerTypes",
    "description": "Types of flowers to pick up"
}
```

# Langkah 3: Buat Intent ()AWS CLI
<a name="gs-cli-create-order-flowers"></a>

Buat maksud untuk `OrderFlowersBot` bot dan berikan tiga slot, atau parameter. Slot memungkinkan bot untuk memenuhi maksud:
+ `FlowerType`adalah jenis slot khusus yang menentukan jenis bunga mana yang dapat dipesan.
+ `AMAZON.DATE`dan `AMAZON.TIME` merupakan jenis slot bawaan yang digunakan untuk mendapatkan tanggal dan waktu untuk mengirimkan bunga dari pengguna.

Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah di mana perintah akan dijalankan. Untuk daftar wilayah, lihat[Kuota Bangunan Model](gl-limits.md#gl-limits-model-building).

**Untuk membuat `OrderFlowers` maksud ()AWS CLI**

1. Buat file teks bernama **OrderFlowers.json**. Salin kode JSON dari [OrderFlowers.json](gs-cli-create-order-flowers-json.md) ke dalam file teks.

1. Di AWS CLI, panggil [PutIntent](API_PutIntent.md) operasi untuk membuat maksud. Contoh diformat untuk Unix, Linux, dan macOS. Untuk Windows, ganti karakter kelanjutan backslash (\$1) Unix di akhir setiap baris dengan tanda sisipan (^).

   ```
   aws lex-models put-intent \
      --region region \
      --name OrderFlowers \
      --cli-input-json file://OrderFlowers.json
   ```

   Server merespons dengan yang berikut:

## Langkah Selanjutnya
<a name="gs-create-next-4"></a>

[Langkah 4: Buat Bot (AWS CLI)](gs-cli-create-order-flowers-bot.md)

# OrderFlowers.json
<a name="gs-cli-create-order-flowers-json"></a>

Kode berikut adalah data JSON yang diperlukan untuk membuat `OrderFlowers` maksud:

```
{
    "confirmationPrompt": {
        "maxAttempts": 2,
        "messages": [
            {
                "content": "Okay, your {FlowerType} will be ready for pickup by {PickupTime} on {PickupDate}.  Does this sound okay?",
                "contentType": "PlainText"
            }
        ]
    },
    "name": "OrderFlowers",
    "rejectionStatement": {
        "messages": [
            {
                "content": "Okay, I will not place your order.",
                "contentType": "PlainText"
            }
        ]
    },
    "sampleUtterances": [
        "I would like to pick up flowers",
        "I would like to order some flowers"
    ],
    "slots": [
        {
            "slotType": "FlowerTypes",
            "name": "FlowerType",
            "slotConstraint": "Required",
            "valueElicitationPrompt": {
                "maxAttempts": 2,
                "messages": [
                    {
                        "content": "What type of flowers would you like to order?",
                        "contentType": "PlainText"
                    }
                ]
            },
            "priority": 1,
            "slotTypeVersion": "$LATEST",
            "sampleUtterances": [
                "I would like to order {FlowerType}"
            ],
            "description": "The type of flowers to pick up"
        },
        {
            "slotType": "AMAZON.DATE",
            "name": "PickupDate",
            "slotConstraint": "Required",
            "valueElicitationPrompt": {
                "maxAttempts": 2,
                "messages": [
                    {
                        "content": "What day do you want the {FlowerType} to be picked up?",
                        "contentType": "PlainText"
                    }
                ]
            },
            "priority": 2,
            "description": "The date to pick up the flowers"
        },
        {
            "slotType": "AMAZON.TIME",
            "name": "PickupTime",
            "slotConstraint": "Required",
            "valueElicitationPrompt": {
                "maxAttempts": 2,
                "messages": [
                    {
                        "content": "Pick up the {FlowerType} at what time on {PickupDate}?",
                        "contentType": "PlainText"
                    }
                ]
            },
            "priority": 3,
            "description": "The time to pick up the flowers"
        }
    ],
    "fulfillmentActivity": {
        "type": "ReturnIntent"
    },
    "description": "Intent to order a bouquet of flowers for pick up"
}
```

# Langkah 4: Buat Bot (AWS CLI)
<a name="gs-cli-create-order-flowers-bot"></a>

`OrderFlowersBot`Bot memiliki satu maksud, `OrderFlowers` maksud yang Anda buat di langkah sebelumnya. Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah di mana perintah akan dijalankan. Untuk daftar wilayah, lihat[Kuota Bangunan Model](gl-limits.md#gl-limits-model-building).

**catatan**  
 AWS CLI Contoh berikut diformat untuk Unix, Linux, dan macOS. Untuk Windows, ubah `"\$LATEST"` ke`$LATEST`.

**Untuk membuat `OrderFlowersBot` bot (AWS CLI)**

1. Buat file teks bernama **OrderFlowersBot.json**. Salin kode JSON dari [OrderFlowersBot.json](gs-cli-create-order-flowers-bot-json.md) ke dalam file teks.

1. Di AWS CLI, panggil [PutBot](API_PutBot.md) operasi untuk membuat bot. Contoh diformat untuk Unix, Linux, dan macOS. Untuk Windows, ganti karakter kelanjutan backslash (\$1) Unix di akhir setiap baris dengan tanda sisipan (^).

   ```
   aws lex-models put-bot \
       --region region \
       --name OrderFlowersBot \
       --cli-input-json file://OrderFlowersBot.json
   ```

   Respons dari server berikut. Saat Anda membuat atau memperbarui bot, `status` bidang diatur ke`BUILDING`. Ini menunjukkan bahwa bot belum siap digunakan. Untuk menentukan kapan bot siap digunakan, gunakan [GetBot](API_GetBot.md) operasi di langkah berikutnya. 

   

1. Untuk menentukan apakah bot baru Anda siap digunakan, jalankan perintah berikut. Ulangi perintah ini sampai `status` bidang kembali`READY`. Contoh diformat untuk Unix, Linux, dan macOS. Untuk Windows, ganti karakter kelanjutan backslash (\$1) Unix di akhir setiap baris dengan tanda sisipan (^).

   ```
   aws lex-models get-bot \
       --region region \
       --name OrderFlowersBot \
       --version-or-alias "\$LATEST"
   ```

   Cari `status` bidang dalam tanggapan:

   ```
   {
       "status": "READY", 
       
       ...
       
   }
   ```

## Langkah Selanjutnya
<a name="gs-create-next-5"></a>

[Langkah 5: Uji Bot (AWS CLI)](gs-create-test.md)

# OrderFlowersBot.json
<a name="gs-cli-create-order-flowers-bot-json"></a>

Kode berikut menyediakan data JSON yang diperlukan untuk membangun bot `OrderFlowers` Amazon Lex:

```
{
    "intents": [
        {
            "intentVersion": "$LATEST",
            "intentName": "OrderFlowers"
        }
    ],
    "name": "OrderFlowersBot",
    "locale": "en-US",
    "abortStatement": {
        "messages": [
            {
                "content": "Sorry, I'm not able to assist at this time",
                "contentType": "PlainText"
            }
        ]
    },
    "clarificationPrompt": {
        "maxAttempts": 2,
        "messages": [
            {
                "content": "I didn't understand you, what would you like to do?",
                "contentType": "PlainText"
            }
        ]
    },
    "voiceId": "Salli",
    "childDirected": false,
    "idleSessionTTLInSeconds": 600,
    "description": "Bot to order flowers on the behalf of a user"
}
```

# Langkah 5: Uji Bot (AWS CLI)
<a name="gs-create-test"></a>

Untuk menguji bot, Anda dapat menggunakan tes berbasis teks atau berbasis ucapan.

**Topics**
+ [Uji Bot Menggunakan Input Teks (AWS CLI)](gs-create-test-text.md)
+ [Uji Bot Menggunakan Speech Input (AWS CLI)](gs-create-test-speech.md)

# Uji Bot Menggunakan Input Teks (AWS CLI)
<a name="gs-create-test-text"></a>

 Untuk memverifikasi bahwa bot berfungsi dengan benar dengan input teks, gunakan [PostText](API_runtime_PostText.md) operasi. Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah di mana perintah akan dijalankan. Untuk daftar wilayah, lihat[Service Quotas Runtime](gl-limits.md#gl-limits-runtime).

**catatan**  
 AWS CLI Contoh berikut diformat untuk Unix, Linux, dan macOS. Untuk Windows, ubah `"\$LATEST"` ke `$LATEST` dan ganti karakter kelanjutan garis miring terbalik (\$1) di akhir setiap baris dengan tanda sisipan (^).

**Untuk menggunakan teks untuk menguji bot (AWS CLI)**

1. Di AWS CLI, mulailah percakapan dengan `OrderFlowersBot` bot. Contoh diformat untuk Unix, Linux, dan macOS. Untuk Windows, ganti karakter kelanjutan backslash (\$1) Unix di akhir setiap baris dengan tanda sisipan (^).

   ```
   aws lex-runtime post-text \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --input-text "i would like to order flowers"
   ```

   Amazon Lex mengenali maksud pengguna dan memulai percakapan dengan mengembalikan respons berikut:

   ```
   {
       "slotToElicit": "FlowerType", 
       "slots": {
           "PickupDate": null, 
           "PickupTime": null, 
           "FlowerType": null
       }, 
       "dialogState": "ElicitSlot", 
       "message": "What type of flowers would you like to order?", 
       "intentName": "OrderFlowers"
   }
   ```

1. Jalankan perintah berikut untuk menyelesaikan percakapan dengan bot.

   ```
   aws lex-runtime post-text \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --input-text "roses"
   ```

   ```
   aws lex-runtime post-text  \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --input-text "tuesday"
   ```

   ```
   aws lex-runtime post-text  \
       --region region \
       --bot-name OrderFlowersBot --bot-alias "\$LATEST" \
       --user-id UserOne \
       --input-text "10:00 a.m."
   ```

   ```
   aws lex-runtime post-text  \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --input-text "yes"
   ```

    Setelah Anda mengkonfirmasi pesanan, Amazon Lex mengirimkan respons pemenuhan untuk menyelesaikan percakapan: 

   ```
   {
       "slots": {
           "PickupDate": "2017-05-16", 
           "PickupTime": "10:00", 
           "FlowerType": "roses"
       }, 
       "dialogState": "ReadyForFulfillment", 
       "intentName": "OrderFlowers"
   }
   ```

## Langkah Selanjutnya
<a name="gs-create-next-test"></a>

[Uji Bot Menggunakan Speech Input (AWS CLI)](gs-create-test-speech.md)

# Uji Bot Menggunakan Speech Input (AWS CLI)
<a name="gs-create-test-speech"></a>

Untuk menguji bot menggunakan file audio, gunakan [PostContent](API_runtime_PostContent.md) operasi. Anda menghasilkan file audio menggunakan operasi Amazon Polly text-to-speech.

Untuk menjalankan perintah dalam latihan ini, Anda perlu mengetahui wilayah mana perintah Amazon Lex dan Amazon Polly akan dijalankan. Untuk daftar wilayah untuk Amazon Lex, lihat[Service Quotas Runtime](gl-limits.md#gl-limits-runtime). Untuk daftar wilayah Amazon Polly, lihat [AWS Wilayah dan Titik Akhir](https://docs.aws.amazon.com/general/latest/gr/rande.html#pol_region) di Referensi Umum *Amazon Web Services*.

**catatan**  
 AWS CLI Contoh berikut diformat untuk Unix, Linux, dan macOS. Untuk Windows, ubah `"\$LATEST"` ke `$LATEST` dan ganti karakter kelanjutan garis miring terbalik (\$1) di akhir setiap baris dengan tanda sisipan (^).

**Untuk menggunakan input ucapan untuk menguji bot (AWS CLI)**

1. Di AWS CLI, buat file audio menggunakan Amazon Polly. Contoh diformat untuk Unix, Linux, dan macOS. Untuk Windows, ganti karakter kelanjutan backslash (\$1) Unix di akhir setiap baris dengan tanda sisipan (^).

   ```
   aws polly synthesize-speech \
       --region region \
       --output-format pcm \
       --text "i would like to order flowers" \
       --voice-id "Salli" \
       IntentSpeech.mpg
   ```

1. Untuk mengirim file audio ke Amazon Lex, jalankan perintah berikut. Amazon Lex menyimpan audio dari respons dalam file output yang ditentukan. 

   ```
   aws lex-runtime post-content \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --content-type "audio/l16; rate=16000; channels=1" \
       --input-stream IntentSpeech.mpg \
       IntentOutputSpeech.mpg
   ```

   Amazon Lex merespons dengan permintaan untuk slot pertama. Ini menyimpan respons audio dalam file output yang ditentukan.

   ```
   {
       "contentType": "audio/mpeg", 
       "slotToElicit": "FlowerType", 
       "dialogState": "ElicitSlot", 
       "intentName": "OrderFlowers", 
       "inputTranscript": "i would like to order some flowers", 
       "slots": {
           "PickupDate": null, 
           "PickupTime": null, 
           "FlowerType": null
       }, 
       "message": "What type of flowers would you like to order?"
   }
   ```

1. Untuk memesan mawar, buat file audio berikut dan kirimkan ke Amazon Lex:

   ```
   aws polly synthesize-speech \
       --region region \
       --output-format pcm \
       --text "roses" \
       --voice-id "Salli" \ 
       FlowerTypeSpeech.mpg
   ```

   ```
   aws lex-runtime post-content \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --content-type "audio/l16; rate=16000; channels=1" \
       --input-stream FlowerTypeSpeech.mpg \
       FlowerTypeOutputSpeech.mpg
   ```

1. Untuk mengatur tanggal pengiriman, buat file audio berikut dan kirimkan ke Amazon Lex:

   ```
   aws polly synthesize-speech \
       --region region \
       --output-format pcm \
       --text "tuesday" \
       --voice-id "Salli" \ 
       DateSpeech.mpg
   ```

   ```
   aws lex-runtime post-content \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --content-type "audio/l16; rate=16000; channels=1" \
       --input-stream DateSpeech.mpg \
       DateOutputSpeech.mpg
   ```

1. Untuk mengatur waktu pengiriman, buat file audio berikut dan kirimkan ke Amazon Lex:

   ```
   aws polly synthesize-speech \
       --region region \
       --output-format pcm \
       --text "10:00 a.m." \
       --voice-id "Salli" \
       TimeSpeech.mpg
   ```

   ```
   aws lex-runtime post-content \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --content-type "audio/l16; rate=16000; channels=1" \
       --input-stream TimeSpeech.mpg \
       TimeOutputSpeech.mpg
   ```

1. Untuk mengonfirmasi pengiriman, buat file audio berikut dan kirimkan ke Amazon Lex:

   ```
   aws polly synthesize-speech \
       --region region \
       --output-format pcm \
       --text "yes" \
       --voice-id "Salli" \
       ConfirmSpeech.mpg
   ```

   ```
   aws lex-runtime post-content \
       --region region \
       --bot-name OrderFlowersBot \
       --bot-alias "\$LATEST" \
       --user-id UserOne \
       --content-type "audio/l16; rate=16000; channels=1" \
       --input-stream ConfirmSpeech.mpg \
       ConfirmOutputSpeech.mpg
   ```

   Setelah Anda mengonfirmasi pengiriman, Amazon Lex mengirimkan respons yang mengonfirmasi pemenuhan maksud: 

   ```
   {
       "contentType": "text/plain;charset=utf-8", 
       "dialogState": "ReadyForFulfillment", 
       "intentName": "OrderFlowers", 
       "inputTranscript": "yes", 
       "slots": {
           "PickupDate": "2017-05-16", 
           "PickupTime": "10:00", 
           "FlowerType": "roses"
       }
   }
   ```

## Langkah Selanjutnya
<a name="gs-cli-next-exercise-2"></a>

[Latihan 2: Tambahkan Ucapan Baru ()AWS CLI](gs-cli-update-utterance.md)