

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.

# Langkah 5 (Opsional): Tinjau Detail Alur Informasi (Konsol)
<a name="gs-bp-details-after-lambda"></a>

Bagian ini menjelaskan aliran informasi antara klien dan Amazon Lex untuk setiap input pengguna, termasuk integrasi fungsi Lambda.

**catatan**  
Bagian ini mengasumsikan bahwa klien mengirimkan permintaan ke Amazon Lex menggunakan API `PostText` runtime dan menampilkan detail permintaan dan respons yang sesuai. Untuk contoh aliran informasi antara klien dan Amazon Lex di mana klien menggunakan `PostContent` API, lihat[Langkah 2a (Opsional): Tinjau Detail Alur Informasi Lisan (Konsol)](gs-bp-details-postcontent-flow.md).

Untuk informasi selengkapnya tentang API `PostText` runtime dan detail tambahan tentang permintaan dan tanggapan yang ditampilkan dalam langkah-langkah berikut, lihat[PostText](API_runtime_PostText.md). 

1. Pengguna: Saya ingin memesan beberapa bunga.

   1. Klien (konsol) mengirimkan [PostText](API_runtime_PostText.md) permintaan berikut ke Amazon Lex: 

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/ignw84y6seypre4xly5rimopuri2xwnd/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
          "inputText": "I would like to order some flowers",
          "sessionAttributes": {}
      }
      ```

      URI permintaan dan badan memberikan informasi ke Amazon Lex:
      + Request URI — Menyediakan nama bot (`OrderFlowers`), bot alias (`$LATEST`), dan nama pengguna (string acak yang mengidentifikasi pengguna). Trailing `text` menunjukkan bahwa itu adalah permintaan `PostText` API (dan bukan`PostContent`).
      + Request body - Termasuk input pengguna (`inputText`) dan kosong`sessionAttributes`. Ketika klien membuat permintaan pertama, tidak ada atribut sesi. Fungsi Lambda memulai mereka nanti.

   1. Dari`inputText`, Amazon Lex mendeteksi intent ()`OrderFlowers`. Maksud ini dikonfigurasi dengan fungsi Lambda sebagai hook kode untuk inisialisasi dan validasi data pengguna. Oleh karena itu, Amazon Lex memanggil fungsi Lambda itu dengan meneruskan informasi berikut sebagai data peristiwa:

      ```
      {
          "messageVersion": "1.0",
          "invocationSource": "DialogCodeHook",
          "userId": "ignw84y6seypre4xly5rimopuri2xwnd",
          "sessionAttributes": {},
          "bot": {
              "name": "OrderFlowers",
              "alias": null,
              "version": "$LATEST"
          },
          "outputDialogMode": "Text",
          "currentIntent": {
              "name": "OrderFlowers",
              "slots": {
                  "PickupTime": null,
                  "FlowerType": null,
                  "PickupDate": null
              },
              "confirmationStatus": "None"
          }
      }
      ```

      Untuk informasi selengkapnya, lihat [Format Peristiwa Masukan](lambda-input-response-format.md#using-lambda-input-event-format).

      Selain informasi yang dikirim klien, Amazon Lex juga menyertakan data tambahan berikut:
      + `messageVersion`- Saat ini Amazon Lex hanya mendukung versi 1.0.
      + `invocationSource`— Menunjukkan tujuan pemanggilan fungsi Lambda. Dalam hal ini, itu adalah untuk melakukan inisialisasi dan validasi data pengguna. Saat ini, Amazon Lex tahu bahwa pengguna belum menyediakan semua data slot untuk memenuhi maksud tersebut.
      + `currentIntent`informasi dengan semua nilai slot diatur ke null.

   1. Pada saat ini, semua nilai slot adalah nol. Tidak ada fungsi Lambda untuk memvalidasi. Fungsi Lambda mengembalikan respons berikut ke Amazon Lex:

      ```
      {
          "sessionAttributes": {},
          "dialogAction": {
              "type": "Delegate",
              "slots": {
                  "PickupTime": null,
                  "FlowerType": null,
                  "PickupDate": null
              }
          }
      }
      ```

      Untuk informasi tentang format respons, lihat[Format Respons](lambda-input-response-format.md#using-lambda-response-format).

      Perhatikan hal-hal berikut:
      + `dialogAction.type`— Dengan menetapkan nilai ini`Delegate`, fungsi Lambda mendelegasikan tanggung jawab untuk memutuskan tindakan selanjutnya ke Amazon Lex. 
**catatan**  
Jika fungsi Lambda mendeteksi apa pun dalam validasi data pengguna, fungsi ini menginstruksikan Amazon Lex apa yang harus dilakukan selanjutnya, seperti yang ditunjukkan pada beberapa langkah berikutnya.

   1. Menurut`dialogAction.type`, Amazon Lex memutuskan tindakan selanjutnya. Karena tidak ada slot yang diisi, ia memutuskan untuk memperoleh nilai untuk slot. `FlowerType` Ini memilih salah satu petunjuk elisitasi nilai (“Jenis bunga apa yang ingin Anda pesan?”) untuk slot ini dan mengirimkan respons berikut kembali ke klien:  
![\[\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/gs-1-details-10.png)

      Klien menampilkan pesan dalam respons.

1. Pengguna: mawar

   1. Klien mengirimkan [PostText](API_runtime_PostText.md) permintaan berikut ke Amazon Lex: 

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/ignw84y6seypre4xly5rimopuri2xwnd/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
          "inputText": "roses",
          "sessionAttributes": {}
      }
      ```

      Di badan permintaan, `inputText` menyediakan input pengguna. `sessionAttributes`Sisa-sisa kosong.

   1. Amazon Lex pertama kali menafsirkan `inputText` dalam konteks maksud saat ini. Layanan ingat bahwa mereka telah meminta pengguna tertentu untuk informasi tentang `FlowerType` slot. Ini memperbarui nilai slot dalam maksud saat ini dan memanggil fungsi Lambda dengan data peristiwa berikut:

      ```
      {
          "messageVersion": "1.0",
          "invocationSource": "DialogCodeHook",
          "userId": "ignw84y6seypre4xly5rimopuri2xwnd",
          "sessionAttributes": {},
          "bot": {
              "name": "OrderFlowers",
              "alias": null,
              "version": "$LATEST"
          },
          "outputDialogMode": "Text",
          "currentIntent": {
              "name": "OrderFlowers",
              "slots": {
                  "PickupTime": null,
                  "FlowerType": "roses",
                  "PickupDate": null
              },
              "confirmationStatus": "None"
          }
      }
      ```

      Perhatikan hal-hal berikut:
      + `invocationSource`— terus menjadi `DialogCodeHook` (kami hanya memvalidasi data pengguna). 
      + `currentIntent.slots`— Amazon Lex telah memperbarui `FlowerType` slot ke mawar.

   1. Menurut `invocationSource` nilai`DialogCodeHook`, fungsi Lambda melakukan validasi data pengguna. Ini mengenali `roses` sebagai nilai slot yang valid (dan ditetapkan `Price` sebagai atribut sesi) dan mengembalikan respons berikut ke Amazon Lex. 

      ```
      {
          "sessionAttributes": {
              "Price": 25
          },
          "dialogAction": {
              "type": "Delegate",
              "slots": {
                  "PickupTime": null,
                  "FlowerType": "roses",
                  "PickupDate": null
              }
          }
      }
      ```

      Perhatikan hal-hal berikut:
      + `sessionAttributes`— Fungsi Lambda telah menambahkan `Price` (mawar) sebagai atribut sesi.
      + `dialogAction.type`- diatur ke`Delegate`. Data pengguna valid sehingga fungsi Lambda mengarahkan Amazon Lex untuk memilih tindakan berikutnya.

       

   1. Menurut`dialogAction.type`, Amazon Lex memilih tindakan berikutnya. Amazon Lex tahu itu membutuhkan lebih banyak data slot sehingga memilih slot yang tidak terisi berikutnya (`PickupDate`) dengan prioritas tertinggi sesuai dengan konfigurasi maksud. Amazon Lex memilih salah satu pesan prompt elisitasi nilai — “Hari apa Anda ingin mawar diambil?” —untuk slot ini sesuai dengan konfigurasi maksud, dan kemudian mengirimkan respons berikut kembali ke klien:   
![\[\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/gs-1-details-20.png)

      Klien hanya menampilkan pesan dalam tanggapan - “Hari apa Anda ingin mawar diambil?.”

1. Pengguna: besok

   1. Klien mengirimkan [PostText](API_runtime_PostText.md) permintaan berikut ke Amazon Lex: 

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/ignw84y6seypre4xly5rimopuri2xwnd/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
          "inputText": "tomorrow",
          "sessionAttributes": {
              "Price": "25"
          }
      }
      ```

      Di badan permintaan, `inputText` berikan input pengguna dan klien meneruskan atribut sesi kembali ke layanan.

   1. Amazon Lex ingat konteksnya — bahwa itu memunculkan data untuk slot. `PickupDate` Dalam konteks ini, ia tahu `inputText` nilainya untuk `PickupDate` slot. Amazon Lex kemudian memanggil fungsi Lambda dengan mengirimkan acara berikut: 

      ```
      {
          "messageVersion": "1.0",
          "invocationSource": "DialogCodeHook",
          "userId": "ignw84y6seypre4xly5rimopuri2xwnd",
          "sessionAttributes": {
              "Price": "25"
          },
          "bot": {
              "name": "OrderFlowersCustomWithRespCard",
              "alias": null,
              "version": "$LATEST"
          },
          "outputDialogMode": "Text",
          "currentIntent": {
              "name": "OrderFlowers",
              "slots": {
                  "PickupTime": null,
                  "FlowerType": "roses",
                  "PickupDate": "2017-01-05"
              },
              "confirmationStatus": "None"
          }
      }
      ```

      Amazon Lex telah memperbarui `currentIntent.slots` dengan menetapkan `PickupDate` nilai. Perhatikan juga bahwa layanan melewati apa `sessionAttributes` adanya ke fungsi Lambda.

   1. Sesuai `invocationSource` nilai`DialogCodeHook`, fungsi Lambda melakukan validasi data pengguna. Ini mengakui nilai `PickupDate` slot valid dan mengembalikan respons berikut ke Amazon Lex: 

      ```
      {
          "sessionAttributes": {
              "Price": 25
          },
          "dialogAction": {
              "type": "Delegate",
              "slots": {
                  "PickupTime": null,
                  "FlowerType": "roses",
                  "PickupDate": "2017-01-05"
              }
          }
      }
      ```

      Perhatikan hal-hal berikut:
      + `sessionAttributes`- Tidak ada perubahan.
      + `dialogAction.type`- diatur ke`Delegate`. Data pengguna valid, dan fungsi Lambda mengarahkan Amazon Lex untuk memilih tindakan berikutnya.

   1. Menurut`dialogAction.type`, Amazon Lex memilih tindakan berikutnya. Amazon Lex tahu itu membutuhkan lebih banyak data slot sehingga memilih slot yang tidak terisi berikutnya (`PickupTime`) dengan prioritas tertinggi sesuai dengan konfigurasi maksud. Amazon Lex memilih salah satu pesan prompt (“Kirim mawar kapan pada 2017-01-05?”) untuk slot ini sesuai dengan konfigurasi maksud dan mengirimkan respons berikut kembali ke klien:   
![\[\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/gs-1-details-30.png)

      Klien menampilkan pesan dalam tanggapan - “Kirimkan mawar pada jam berapa pada 2017-01-05?”

1. Pengguna: 4 sore

   1. Klien mengirimkan [PostText](API_runtime_PostText.md) permintaan berikut ke Amazon Lex: 

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/ignw84y6seypre4xly5rimopuri2xwnd/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
          "inputText": "4 pm",
          "sessionAttributes": {
              "Price": "25"
          }
      }
      ```

      Di badan permintaan, `inputText` berikan masukan pengguna. Klien melewati `sessionAttributes` permintaan.

   1. Amazon Lex memahami konteksnya. Ia mengerti bahwa itu memunculkan data untuk slot. `PickupTime` Dalam konteks ini, ia tahu bahwa `inputText` nilainya adalah untuk `PickupTime` slot. Amazon Lex kemudian memanggil fungsi Lambda dengan mengirimkan acara berikut: 

      ```
      {
          "messageVersion": "1.0",
          "invocationSource": "DialogCodeHook",
          "userId": "ignw84y6seypre4xly5rimopuri2xwnd",
          "sessionAttributes": {
              "Price": "25"
          },
          "bot": {
              "name": "OrderFlowersCustomWithRespCard",
              "alias": null,
              "version": "$LATEST"
          },
          "outputDialogMode": "Text",
          "currentIntent": {
              "name": "OrderFlowers",
              "slots": {
                  "PickupTime": "16:00",
                  "FlowerType": "roses",
                  "PickupDate": "2017-01-05"
              },
              "confirmationStatus": "None"
          }
      }
      ```

      Amazon Lex telah memperbarui `currentIntent.slots` dengan menetapkan `PickupTime` nilai.

   1. Menurut `invocationSource` nilai`DialogCodeHook`, fungsi Lambda melakukan validasi data pengguna. Ini mengakui nilai `PickupDate` slot valid dan mengembalikan respons berikut ke Amazon Lex. 

      ```
      {
          "sessionAttributes": {
              "Price": 25
          },
          "dialogAction": {
              "type": "Delegate",
              "slots": {
                  "PickupTime": "16:00",
                  "FlowerType": "roses",
                  "PickupDate": "2017-01-05"
              }
          }
      }
      ```

      Perhatikan hal-hal berikut:
      + `sessionAttributes`— Tidak ada perubahan atribut sesi.
      + `dialogAction.type`- diatur ke`Delegate`. Data pengguna valid sehingga fungsi Lambda mengarahkan Amazon Lex untuk memilih tindakan berikutnya.

   1. Saat ini Amazon Lex tahu ia memiliki semua data slot. Maksud ini dikonfigurasi dengan prompt konfirmasi. Oleh karena itu, Amazon Lex mengirimkan respons berikut kepada pengguna yang meminta konfirmasi sebelum memenuhi maksud:   
![\[\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/gs-1-details-45.png)

      Klien hanya menampilkan pesan dalam respons dan menunggu respons pengguna.

1. Pengguna: Ya

   1. Klien mengirimkan [PostText](API_runtime_PostText.md) permintaan berikut ke Amazon Lex: 

      ```
      POST /bot/OrderFlowers/alias/$LATEST/user/ignw84y6seypre4xly5rimopuri2xwnd/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
          "inputText": "yes",
          "sessionAttributes": {
              "Price": "25"
          }
      }
      ```

   1. Amazon Lex menafsirkan `inputText` dalam konteks mengkonfirmasikan maksud saat ini. Amazon Lex memahami bahwa pengguna ingin melanjutkan pesanan. Kali ini Amazon Lex memanggil fungsi Lambda untuk memenuhi maksud dengan mengirimkan peristiwa berikut, yang menyetel ke jika `invocationSource` dikirimkan `FulfillmentCodeHook` ke fungsi Lambda. Amazon Lex juga menetapkan `confirmationStatus` untuk`Confirmed`.

      ```
      {
          "messageVersion": "1.0",
          "invocationSource": "FulfillmentCodeHook",
          "userId": "ignw84y6seypre4xly5rimopuri2xwnd",
          "sessionAttributes": {
              "Price": "25"
          },
          "bot": {
              "name": "OrderFlowersCustomWithRespCard",
              "alias": null,
              "version": "$LATEST"
          },
          "outputDialogMode": "Text",
          "currentIntent": {
              "name": "OrderFlowers",
              "slots": {
                  "PickupTime": "16:00",
                  "FlowerType": "roses",
                  "PickupDate": "2017-01-05"
              },
              "confirmationStatus": "Confirmed"
          }
      }
      ```

      Perhatikan hal-hal berikut:
      + `invocationSource`— Kali ini Amazon Lex menetapkan nilai ini`FulfillmentCodeHook`, mengarahkan fungsi Lambda untuk memenuhi maksud.
      + `confirmationStatus`- diatur ke`Confirmed`.

   1. Kali ini, fungsi Lambda memenuhi `OrderFlowers` intent, dan mengembalikan respons berikut:

      ```
      {
          "sessionAttributes": {
              "Price": "25"
          },
          "dialogAction": {
              "type": "Close",
              "fulfillmentState": "Fulfilled",
              "message": {
                  "contentType": "PlainText",
                  "content": "Thanks, your order for roses has been placed and will be ready for pickup by 16:00 on 2017-01-05"
              }
          }
      }
      ```

      Perhatikan hal-hal berikut: 
      + Menetapkan `dialogAction.type` — Fungsi Lambda menetapkan nilai ini`Close`, mengarahkan Amazon Lex agar tidak mengharapkan respons pengguna. 
      + `dialogAction.fulfillmentState`— diatur ke Fulled dan termasuk yang sesuai `message` untuk disampaikan kepada pengguna.

   1. Amazon Lex mengulas `fulfillmentState` dan mengirimkan tanggapan berikut kembali ke klien. 

      Amazon Lex kemudian mengembalikan yang berikut ini ke klien:  
![\[\]](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/gs-1-details-48.png)

      Perhatikan bahwa:
      + `dialogState`— Amazon Lex menetapkan nilai ini ke`fulfilled`.
      + `message`— adalah pesan yang sama dengan fungsi Lambda yang disediakan.

      Klien menampilkan pesan.

1. Sekarang uji bot lagi. Untuk membuat konteks (pengguna) baru, pilih tautan **Hapus** di jendela pengujian. Sekarang berikan data slot yang tidak valid untuk maksud tersebut. `OrderFlowers` Kali ini fungsi Lambda melakukan validasi data, mengatur ulang nilai data slot yang tidak valid ke null, dan meminta Amazon Lex untuk meminta pengguna untuk data yang valid. Misalnya, coba yang berikut ini:
   + Melati sebagai jenis bunga (bukan salah satu jenis bunga yang didukung).
   + Kemarin sebagai hari ketika Anda ingin mengambil bunga.
   + Setelah melakukan pemesanan, masukkan jenis bunga lain alih-alih menjawab “ya” untuk mengonfirmasi pesanan. Sebagai tanggapan, fungsi Lambda memperbarui atribut `Price` dalam sesi, menjaga total pesanan bunga berjalan.

   Fungsi Lambda juga melakukan aktivitas pemenuhan. 

**Langkah Selanjutnya**  
[Langkah 6: Perbarui Konfigurasi Intent untuk Menambahkan Ucapan (Konsol)](gs-bp-utterance.md)