

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.

# Rincian Alur Informasi
<a name="book-trip-detail-flow"></a>

Dalam latihan ini, Anda terlibat dalam percakapan dengan BookTrip bot Amazon Lex menggunakan klien jendela uji yang disediakan di konsol Amazon Lex. Bagian ini menjelaskan hal berikut: 
+ Aliran data antara klien dan Amazon Lex.

   

  Bagian ini mengasumsikan bahwa klien mengirimkan permintaan ke Amazon Lex menggunakan API `PostText` runtime dan menampilkan detail permintaan dan respons yang sesuai. Untuk informasi selengkapnya tentang API `PostText` runtime, lihat[PostText](API_runtime_PostText.md).
**catatan**  
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).

   
+ Aliran data antara Amazon Lex dan fungsi Lambda. Untuk informasi selengkapnya, lihat [Peristiwa Input Fungsi Lambda dan Format Respons](lambda-input-response-format.md).

**Topics**
+ [Aliran Data: Pesan Hotel Intent](#data-flow-book-hotel)
+ [Aliran Data: Pesan Niat Mobil](#data-flow-book-car)

## Aliran Data: Pesan Hotel Intent
<a name="data-flow-book-hotel"></a>

Bagian ini menjelaskan apa yang terjadi setelah setiap input pengguna.

1. Pengguna: “pesan hotel”

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

      ```
      POST /bot/{{BookTrip}}/alias/{{$LATEST}}/user/{{wch89kjqcpkds8seny7dly5x3otq68j3}}/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
         "inputText":"book a hotel",
         "sessionAttributes":{}
      }
      ```

      URI permintaan dan badan memberikan informasi ke Amazon Lex:
      + Request URI — Menyediakan nama bot (BookTrip), bot alias ($ LATEST) dan nama pengguna. Trailing `text` menunjukkan bahwa itu adalah permintaan `PostText` API (dan bukan`PostContent`).
      + Request body - Termasuk input pengguna (`inputText`) dan kosong`sessionAttributes`. Awalnya, ini adalah objek kosong dan fungsi Lambda pertama menetapkan atribut sesi.

      

   1. Dari`inputText`, Amazon Lex mendeteksi intent ()BookHotel. Maksud ini dikonfigurasi dengan fungsi Lambda sebagai hook kode untuk inisialisasi/validasi data pengguna. Oleh karena itu, Amazon Lex memanggil fungsi Lambda tersebut dengan meneruskan informasi berikut sebagai parameter peristiwa ([Format Peristiwa Masukan](lambda-input-response-format.md#using-lambda-input-event-format)lihat):

      ```
      {
         "messageVersion":"1.0",
         "invocationSource":"DialogCodeHook",
         "userId":"wch89kjqcpkds8seny7dly5x3otq68j3",
         "sessionAttributes":{
         },
         "bot":{
            "name":"BookTrip",
            "alias":null,
            "version":"$LATEST"
         },
         "outputDialogMode":"Text",
         "currentIntent":{
            "name":"BookHotel",
            "slots":{
               "RoomType":null,
               "CheckInDate":null,
               "Nights":null,
               "Location":null
            },
            "confirmationStatus":"None"
         }
      }
      ```

      Selain informasi yang dikirim oleh 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, ini adalah untuk melakukan inisialisasi dan validasi data pengguna (saat ini Amazon Lex tahu bahwa pengguna belum menyediakan semua data slot untuk memenuhi maksud).
      + `currentIntent`— Semua nilai slot diatur ke nol.

   1. Pada saat ini, semua nilai slot adalah nol. Tidak ada fungsi Lambda untuk memvalidasi. Fungsi Lambda mengembalikan respons berikut ke Amazon Lex. Untuk informasi tentang format respons, lihat[Format Respons](lambda-input-response-format.md#using-lambda-response-format). 

      ```
      {
         "sessionAttributes":{
            "currentReservation":"{\"ReservationType\":\"Hotel\",\"Location\":null,\"RoomType\":null,\"CheckInDate\":null,\"Nights\":null}"
         },
         "dialogAction":{
            "type":"Delegate",
            "slots":{
               "RoomType":null,
               "CheckInDate":null,
               "Nights":null,
               "Location":null
            }
         }
      }
      ```
**catatan**  
`currentReservation`— Fungsi Lambda mencakup atribut sesi ini. Nilainya adalah salinan informasi slot saat ini dan jenis reservasi.   
Hanya fungsi Lambda dan klien yang dapat memperbarui atribut sesi ini. Amazon Lex hanya meneruskan nilai-nilai ini.
`dialogAction.type`— Dengan menetapkan nilai ini`Delegate`, fungsi Lambda mendelegasikan tanggung jawab untuk tindakan selanjutnya ke Amazon Lex.   
Jika fungsi Lambda mendeteksi apa pun dalam validasi data pengguna, fungsi ini menginstruksikan Amazon Lex apa yang harus dilakukan selanjutnya.

   1. Sesuai dengan itu`dialogAction.type`, Amazon Lex memutuskan tindakan selanjutnya — mendapatkan data dari pengguna untuk slot. `Location` Ini memilih salah satu pesan prompt (“Kota apa yang akan Anda tinggali?”) untuk slot ini, sesuai dengan konfigurasi maksud, dan kemudian mengirimkan respons berikut kepada pengguna:   
![Respons JSON yang berisi status dialog, nama maksud, pesan, kartu respons, atribut sesi, slot yang akan diperoleh, dan slot.](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/book-hotel-10.png)

      Atribut sesi diteruskan ke klien.

      Klien membaca tanggapan dan kemudian menampilkan pesan: “Kota apa yang akan Anda tinggali?”

1. Pengguna: “Moskow”

   1. Klien mengirimkan `PostText` permintaan berikut ke Amazon Lex (jeda baris ditambahkan untuk keterbacaan):

      ```
      POST /bot/{{BookTrip}}/alias/{{$LATEST}}/user/{{wch89kjqcpkds8seny7dly5x3otq68j3}}/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
         "inputText":"Moscow",
         "sessionAttributes":{
             "currentReservation":"{\"ReservationType\":\"Hotel\",
                                    \"Location\":null,
                                    \"RoomType\":null,
                                    \"CheckInDate\":null,
                                    \"Nights\":null}"
         }
      }
      ```

      Selain itu`inputText`, klien menyertakan atribut `currentReservation` sesi yang sama yang diterimanya. 

   1. Amazon Lex pertama-tama menafsirkan `inputText` dalam konteks maksud saat ini (layanan mengingat bahwa ia telah meminta pengguna tertentu untuk informasi tentang `Location` slot). Ini memperbarui nilai slot untuk maksud saat ini dan memanggil fungsi Lambda menggunakan peristiwa berikut:

      ```
      {
          "messageVersion": "1.0",
          "invocationSource": "DialogCodeHook",
          "userId": "wch89kjqcpkds8seny7dly5x3otq68j3",
          "sessionAttributes": {
              "currentReservation": "{\"ReservationType\":\"Hotel\",\"Location\":null,\"RoomType\":null,\"CheckInDate\":null,\"Nights\":null}"
          },
          "bot": {
              "name": "BookTrip",
              "alias": null,
              "version": "$LATEST"
          },
          "outputDialogMode": "Text",
          "currentIntent": {
              "name": "BookHotel",
              "slots": {
                  "RoomType": null,
                  "CheckInDate": null,
                  "Nights": null,
                  "Location": "Moscow"
              },
              "confirmationStatus": "None"
          }
      }
      ```
**catatan**  
`invocationSource`terus menjadi`DialogCodeHook`. Pada langkah ini, kami hanya memvalidasi data pengguna.
Amazon Lex baru saja meneruskan atribut session ke fungsi Lambda.
Untuk`currentIntent.slots`, Amazon Lex telah memperbarui `Location` slot ke`Moscow`.

   1. Fungsi Lambda melakukan validasi data pengguna dan menentukan lokasi yang `Moscow` tidak valid. 
**catatan**  
Fungsi Lambda dalam latihan ini memiliki daftar sederhana kota yang valid dan tidak `Moscow` ada dalam daftar. Dalam aplikasi produksi, Anda mungkin menggunakan database back-end untuk mendapatkan informasi ini. 

      Ini mengatur ulang nilai slot kembali ke nol dan mengarahkan Amazon Lex untuk meminta pengguna lagi untuk nilai lain dengan mengirimkan respons berikut:

      ```
      {
          "sessionAttributes": {
              "currentReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Moscow\",\"RoomType\":null,\"CheckInDate\":null,\"Nights\":null}"
          },
          "dialogAction": {
              "type": "ElicitSlot",
              "intentName": "BookHotel",
              "slots": {
                  "RoomType": null,
                  "CheckInDate": null,
                  "Nights": null,
                  "Location": null
              },
              "slotToElicit": "Location",
              "message": {
                  "contentType": "PlainText",
                  "content": "We currently do not support Moscow as a valid destination.  Can you try a different city?"
              }
          }
      }
      ```
**catatan**  
`currentIntent.slots.Location`disetel ulang ke null.
`dialogAction.type`diatur ke`ElicitSlot`, yang mengarahkan Amazon Lex untuk meminta pengguna lagi dengan memberikan yang berikut:   
`dialogAction.slotToElicit`— slot untuk mendapatkan data dari pengguna.
`dialogAction.message`— a `message` untuk disampaikan kepada pengguna.

   1. Amazon Lex memperhatikan `dialogAction.type` dan meneruskan informasi ke klien dalam tanggapan berikut:  
![Respons JSON yang berisi status dialog, nama maksud, pesan, kartu respons, atribut sesi, slot yang akan diperoleh, dan slot.](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/book-hotel-20.png)

      Klien hanya menampilkan pesan: “Saat ini kami tidak mendukung Moskow sebagai tujuan yang valid. Bisakah kamu mencoba kota yang berbeda?”

1. Pengguna: “Chicago”

   1. Klien mengirimkan `PostText` permintaan berikut ke Amazon Lex:

      ```
      POST /bot/{{BookTrip}}/alias/{{$LATEST}}/user/{{wch89kjqcpkds8seny7dly5x3otq68j3}}/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
         "inputText":"Chicago",
         "sessionAttributes":{
             "currentReservation":"{\"ReservationType\":\"Hotel\",
                                    \"Location\":\"Moscow\",
                                    \"RoomType\":null,
                                    \"CheckInDate\":null,
                                    \"Nights\":null}"
         }
      }
      ```

      

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

      ```
      {
          "messageVersion": "1.0",
          "invocationSource": "DialogCodeHook",
          "userId": "wch89kjqcpkds8seny7dly5x3otq68j3",
          "sessionAttributes": {
              "currentReservation": "{\"ReservationType\":\"Hotel\",\"Location\":Moscow,\"RoomType\":null,\"CheckInDate\":null,\"Nights\":null}"
          },
          "bot": {
              "name": "BookTrip",
              "alias": null,
              "version": "$LATEST"
          },
          "outputDialogMode": "Text",
          "currentIntent": {
              "name": "BookHotel",
              "slots": {
                  "RoomType": null,
                  "CheckInDate": null,
                  "Nights": null,
                  "Location": "Chicago"
              },
              "confirmationStatus": "None"
          }
      }
      ```

      Amazon Lex memperbarui `currentIntent.slots` dengan mengatur `Location` slot ke`Chicago`. 

   1. Menurut `invocationSource` nilai`DialogCodeHook`, fungsi Lambda melakukan validasi data pengguna. Ini mengenali `Chicago` sebagai nilai slot yang valid, memperbarui atribut sesi yang sesuai, dan kemudian mengembalikan respons berikut ke Amazon Lex. 

      ```
      {
          "sessionAttributes": {
              "currentReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Chicago\",\"RoomType\":null,\"CheckInDate\":null,\"Nights\":null}"
          },
          "dialogAction": {
              "type": "Delegate",
              "slots": {
                  "RoomType": null,
                  "CheckInDate": null,
                  "Nights": null,
                  "Location": "Chicago"
              }
          }
      }
      ```
**catatan**  
`currentReservation`— Fungsi Lambda memperbarui atribut sesi ini dengan menyetel ke. `Location` `Chicago` 
`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 bahwa ia membutuhkan lebih banyak data slot dan memilih slot yang tidak terisi berikutnya (`CheckInDate`) dengan prioritas tertinggi sesuai dengan konfigurasi maksud. Ini memilih salah satu pesan prompt (“Hari apa yang ingin Anda periksa?”) untuk slot ini sesuai dengan konfigurasi maksud dan kemudian mengirimkan respons berikut kembali ke klien:   
![Respons JSON yang berisi status dialog, nama maksud, pesan, kartu respons, atribut sesi, slot yang akan diperoleh, dan slot. Slot lokasi sekarang diisi sebagai Chicago.](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/book-hotel-30.png)

      Klien menampilkan pesan: “Hari apa Anda ingin check-in?” 

   

1. Interaksi pengguna berlanjut—pengguna menyediakan data, fungsi Lambda memvalidasi data, dan kemudian mendelegasikan tindakan berikutnya ke Amazon Lex. Akhirnya pengguna menyediakan semua data slot, fungsi Lambda memvalidasi semua input pengguna, dan kemudian Amazon Lex mengenali bahwa ia memiliki semua data slot. 
**catatan**  
Dalam latihan ini, setelah pengguna menyediakan semua data slot, fungsi Lambda menghitung harga reservasi hotel dan mengembalikannya sebagai atribut sesi lain (). `currentReservationPrice` 

   Pada titik ini, intent siap dipenuhi, tetapi BookHotel intent dikonfigurasi dengan prompt konfirmasi yang memerlukan konfirmasi pengguna sebelum Amazon Lex dapat memenuhi intent. Oleh karena itu, Amazon Lex mengirimkan pesan berikut kepada klien yang meminta konfirmasi sebelum memesan hotel:  
![Respons JSON yang berisi status dialog, nama maksud, pesan, kartu respons, atribut sesi, slot yang akan diperoleh, dan slot. Semua slot sekarang terisi.](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/book-hotel-40.png)

   Klien menampilkan pesan: “Oke, saya minta Anda turun selama 5 malam di Chicago mulai 2016-12-18. Haruskah saya memesan reservasi?”

1. Pengguna: “ya”

   1. Klien mengirimkan `PostText` permintaan berikut ke Amazon Lex: 

      ```
      POST /bot/{{BookTrip}}/alias/{{$LATEST}}/user/{{wch89kjqcpkds8seny7dly5x3otq68j3}}/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
         "inputText":"Yes",
         "sessionAttributes":{
             "currentReservation":"{\"ReservationType\":\"Hotel\",
                                    \"Location\":\"Chicago\",
                                    \"RoomType\":\"queen\",
                                    \"CheckInDate\":\"2016-12-18\",
                                    \"Nights\":\"5\"}",
            "currentReservationPrice":"1195"
         }
      }
      ```

   1. Amazon Lex menafsirkan `inputText` dalam konteks mengonfirmasi maksud saat ini. Amazon Lex memahami bahwa pengguna ingin melanjutkan reservasi. Kali ini Amazon Lex memanggil fungsi Lambda untuk memenuhi maksud dengan mengirimkan acara berikut. Dengan mengatur `invocationSource` ke `FulfillmentCodeHook` dalam acara tersebut, ia mengirim ke fungsi Lambda. Amazon Lex juga menetapkan `confirmationStatus` untuk`Confirmed`.

      ```
      {
          "messageVersion": "1.0",
          "invocationSource": "FulfillmentCodeHook",
          "userId": "wch89kjqcpkds8seny7dly5x3otq68j3",
          "sessionAttributes": {
              "currentReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Chicago\",\"RoomType\":\"queen\",\"CheckInDate\":\"2016-12-18\",\"Nights\":\"5\"}",
              "currentReservationPrice": "956"
          },
          "bot": {
              "name": "BookTrip",
              "alias": null,
              "version": "$LATEST"
          },
          "outputDialogMode": "Text",
          "currentIntent": {
              "name": "BookHotel",
              "slots": {
                  "RoomType": "queen",
                  "CheckInDate": "2016-12-18",
                  "Nights": "5",
                  "Location": "Chicago"
              },
              "confirmationStatus": "Confirmed"
          }
      }
      ```
**catatan**  
`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 BookHotel intent, Amazon Lex menyelesaikan reservasi, dan kemudian mengembalikan respons berikut: 

      ```
      {
          "sessionAttributes": {
              "lastConfirmedReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Chicago\",\"RoomType\":\"queen\",\"CheckInDate\":\"2016-12-18\",\"Nights\":\"5\"}"
          },
          "dialogAction": {
              "type": "Close",
              "fulfillmentState": "Fulfilled",
              "message": {
                  "contentType": "PlainText",
                  "content": "Thanks, I have placed your reservation.   Please let me know if you would like to book a car rental, or another hotel."
              }
          }
      }
      ```
**catatan**  
 `lastConfirmedReservation`— Adalah atribut sesi baru yang ditambahkan fungsi Lambda (bukan`currentReservation`,`currentReservationPrice`). 
`dialogAction.type`— Fungsi Lambda menetapkan nilai ini`Close`, menunjukkan bahwa Amazon Lex tidak mengharapkan respons pengguna. 
`dialogAction.fulfillmentState`— Diatur ke `Fulfilled` dan termasuk yang sesuai `message` untuk disampaikan kepada pengguna.

      

      

   1. Amazon Lex mengulas `fulfillmentState` dan mengirimkan tanggapan berikut kepada klien:  
![Respons JSON yang berisi status dialog, nama maksud, pesan, kartu respons, atribut sesi, slot yang akan diperoleh, dan slot. Semua slot diisi dan kolom reservasi terakhir yang dikonfirmasi di bawah atribut sesi sekarang diisi.](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/book-hotel-60.png)
**catatan**  
`dialogState`— Amazon Lex menetapkan nilai ini ke`Fulfilled`.
`message`— Adalah pesan yang sama dengan fungsi Lambda yang disediakan.

       Klien menampilkan pesan.

## Aliran Data: Pesan Niat Mobil
<a name="data-flow-book-car"></a>

 BookTrip Bot dalam latihan ini mendukung dua maksud (BookHotel dan BookCar). Setelah memesan hotel, pengguna dapat melanjutkan percakapan untuk memesan mobil. Selama sesi belum habis waktu, dalam setiap permintaan berikutnya klien terus mengirim atribut sesi (dalam contoh ini,`lastConfirmedReservation`). Fungsi Lambda dapat menggunakan informasi ini untuk menginisialisasi data slot untuk maksud tersebut. BookCar Ini menunjukkan bagaimana Anda dapat menggunakan atribut sesi dalam berbagi data lintas maksud. 

Khususnya, saat pengguna memilih BookCar intent, fungsi Lambda menggunakan informasi yang relevan dalam atribut session untuk mengisi slot (PickUpDate, ReturnDate, dan) untuk intent. PickUpCity BookCar 

**catatan**  
Konsol Amazon Lex menyediakan tautan **Hapus** yang dapat Anda gunakan untuk menghapus atribut sesi sebelumnya. 

Ikuti langkah-langkah dalam prosedur ini untuk melanjutkan percakapan.

1. Pengguna: “juga pesan mobil”

   1. Klien mengirimkan `PostText` permintaan berikut ke Amazon Lex.

      ```
      POST /bot/{{BookTrip}}/alias/{{$LATEST}}/user/{{wch89kjqcpkds8seny7dly5x3otq68j3}}/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
         "inputText":"also book a car",
         "sessionAttributes":{
             "lastConfirmedReservation":""{\"ReservationType\":\"Hotel\",
                                           \"Location\":\"Chicago\",
                                           \"RoomType\":\"queen\",
                                           \"CheckInDate\":\"2016-12-18\",
                                           \"Nights\":\"5\"}"
         }
      }
      ```

      Klien menyertakan atribut `lastConfirmedReservation` sesi.

   1. Amazon Lex mendeteksi intent (BookCar) dari file. `inputText` Maksud ini juga dikonfigurasi untuk memanggil fungsi Lambda untuk melakukan inisialisasi dan validasi data pengguna. Amazon Lex memanggil fungsi Lambda dengan acara berikut:

      ```
      {
          "messageVersion": "1.0",
          "invocationSource": "DialogCodeHook",
          "userId": "wch89kjqcpkds8seny7dly5x3otq68j3",
          "sessionAttributes": {
              "lastConfirmedReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Chicago\",\"RoomType\":\"queen\",\"CheckInDate\":\"2016-12-18\",\"Nights\":\"5\"}"
          },
          "bot": {
              "name": "BookTrip",
              "alias": null,
              "version": "$LATEST"
          },
          "outputDialogMode": "Text",
          "currentIntent": {
              "name": "BookCar",
              "slots": {
                  "PickUpDate": null,
                  "ReturnDate": null,
                  "DriverAge": null,
                  "CarType": null,
                  "PickUpCity": null
              },
              "confirmationStatus": "None"
          }
      }
      ```
**catatan**  
 `messageVersion`- Saat ini Amazon Lex hanya mendukung versi 1.0.
`invocationSource`— Menunjukkan tujuan pemanggilan adalah untuk melakukan inisialisasi dan validasi data pengguna.
`currentIntent`— Ini termasuk nama niat dan slot. Pada saat ini, semua nilai slot adalah nol.

      

   1. Fungsi Lambda memperhatikan semua nilai slot null tanpa memvalidasi apa pun. Namun, ia menggunakan atribut sesi untuk menginisialisasi beberapa nilai slot (`PickUpDate`,`ReturnDate`, dan`PickUpCity`), dan kemudian mengembalikan respons berikut:

      ```
      {
          "sessionAttributes": {
              "lastConfirmedReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Chicago\",\"RoomType\":\"queen\",\"CheckInDate\":\"2016-12-18\",\"Nights\":\"5\"}",
              "currentReservation": "{\"ReservationType\":\"Car\",\"PickUpCity\":null,\"PickUpDate\":null,\"ReturnDate\":null,\"CarType\":null}",
              "confirmationContext": "AutoPopulate"
          },
          "dialogAction": {
              "type": "ConfirmIntent",
              "intentName": "BookCar",
              "slots": {
                  "PickUpCity": "Chicago",
                  "PickUpDate": "2016-12-18",
                  "ReturnDate": "2016-12-22",
                  "CarType": null,
                  "DriverAge": null
              },
              "message": {
                  "contentType": "PlainText",
                  "content": "Is this car rental for your 5 night stay in Chicago on 2016-12-18?"
              }
          }
      }
      ```
**catatan**  
Selain itu`lastConfirmedReservation`, fungsi Lambda mencakup lebih banyak atribut sesi (`currentReservation`dan`confirmationContext`). 
`dialogAction.type`disetel ke`ConfirmIntent`, yang memberi tahu Amazon Lex bahwa jawaban ya, tidak diharapkan dari pengguna (ConfirmationContext disetel AutoPopulate ke, fungsi Lambda mengetahui yes/no bahwa balasan pengguna adalah untuk mendapatkan konfirmasi pengguna tentang inisialisasi fungsi Lambda yang dilakukan (data slot yang diisi otomatis).   
   
Fungsi Lambda juga menyertakan dalam respons pesan informatif untuk Amazon `dialogAction.message` Lex untuk kembali ke klien.  
Istilah `ConfirmIntent` (nilai`dialogAction.type`) tidak terkait dengan maksud bot apa pun. Dalam contoh, fungsi Lambda menggunakan istilah ini untuk mengarahkan Amazon Lex untuk mendapatkan yes/no balasan dari pengguna.

   1. Menurut`dialogAction.type`, Amazon Lex mengembalikan respons berikut ke klien:   
![Respons JSON yang berisi status dialog, nama maksud, pesan, kartu respons, atribut sesi, slot yang akan diperoleh, dan slot.](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/book-car-10.png)

      Klien menampilkan pesan: “Apakah sewa mobil ini untuk masa inap 5 malam Anda di Chicago pada 2016-12-18?”

1. Pengguna: “ya”

   1. Klien mengirimkan `PostText` permintaan berikut ke Amazon Lex. 

      ```
      POST /bot/{{BookTrip}}/alias/{{$LATEST}}/user/{{wch89kjqcpkds8seny7dly5x3otq68j3}}/text
      "Content-Type":"application/json"
      "Content-Encoding":"amz-1.0"
      
      {
         "inputText":"yes",
         "sessionAttributes":{
            "confirmationContext":"AutoPopulate",
            "currentReservation":"{\"ReservationType\":\"Car\",
                                   \"PickUpCity\":null,
                                   \"PickUpDate\":null,
                                   \"ReturnDate\":null,
                                   \"CarType\":null}",
            "lastConfirmedReservation":"{\"ReservationType\":\"Hotel\",
                                         \"Location\":\"Chicago\",
                                         \"RoomType\":\"queen\",
                                         \"CheckInDate\":\"2016-12-18\",
                                         \"Nights\":\"5\"}"
         }
      }
      ```

   1. Amazon Lex membaca `inputText` dan mengetahui konteksnya (meminta pengguna untuk mengonfirmasi populasi mobil). Amazon Lex memanggil fungsi Lambda dengan mengirimkan acara berikut:

      ```
      {
          "messageVersion": "1.0",
          "invocationSource": "DialogCodeHook",
          "userId": "wch89kjqcpkds8seny7dly5x3otq68j3",
          "sessionAttributes": {
              "confirmationContext": "AutoPopulate",
              "currentReservation": "{\"ReservationType\":\"Car\",\"PickUpCity\":null,\"PickUpDate\":null,\"ReturnDate\":null,\"CarType\":null}",
              "lastConfirmedReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Chicago\",\"RoomType\":\"queen\",\"CheckInDate\":\"2016-12-18\",\"Nights\":\"5\"}"
          },
          "bot": {
              "name": "BookTrip",
              "alias": null,
              "version": "$LATEST"
          },
          "outputDialogMode": "Text",
          "currentIntent": {
              "name": "BookCar",
              "slots": {
                  "PickUpDate": "2016-12-18",
                  "ReturnDate": "2016-12-22",
                  "DriverAge": null,
                  "CarType": null,
                  "PickUpCity": "Chicago"
              },
              "confirmationStatus": "Confirmed"
          }
      }
      ```

      Karena pengguna menjawab Ya, Amazon Lex menetapkan `confirmationStatus` ke`Confirmed`. 

      

   1. Dari`confirmationStatus`, fungsi Lambda tahu bahwa nilai prepopulated sudah benar. Fungsi Lambda melakukan hal berikut:
      + Memperbarui atribut `currentReservation` sesi ke nilai slot yang telah diisi sebelumnya.
      + Mengatur `dialogAction.type` ke `ElicitSlot`
      + Menetapkan `slotToElicit` nilai ke`DriverAge`. 

      Tanggapan berikut dikirim:

      ```
      {
          "sessionAttributes": {
              "currentReservation": "{\"ReservationType\":\"Car\",\"PickUpCity\":\"Chicago\",\"PickUpDate\":\"2016-12-18\",\"ReturnDate\":\"2016-12-22\",\"CarType\":null}",
              "lastConfirmedReservation": "{\"ReservationType\":\"Hotel\",\"Location\":\"Chicago\",\"RoomType\":\"queen\",\"CheckInDate\":\"2016-12-18\",\"Nights\":\"5\"}"
          },
          "dialogAction": {
              "type": "ElicitSlot",
              "intentName": "BookCar",
              "slots": {
                  "PickUpDate": "2016-12-18",
                  "ReturnDate": "2016-12-22",
                  "DriverAge": null,
                  "CarType": null,
                  "PickUpCity": "Chicago"
              },
              "slotToElicit": "DriverAge",
              "message": {
                  "contentType": "PlainText",
                  "content": "How old is the driver of this car rental?"
              }
          }
      }
      ```

   1. Amazon Lex mengembalikan tanggapan berikut:  
![Respons JSON menunjukkan niat untuk memesan mobil dan pesan memunculkan slot untuk slot Driver Age.](http://docs.aws.amazon.com/id_id/lex/latest/dg/images/book-car-20.png)

      Klien menampilkan pesan “Berapa umur pengemudi rental mobil ini?” dan percakapan berlanjut.