Rincian Alur Informasi - Amazon Lex V1

Jika Anda menggunakan Amazon Lex V2, lihat panduan Amazon Lex V2 sebagai gantinya.

 

Jika Anda menggunakan Amazon Lex V1, kami sarankan untuk meningkatkan bot Anda ke Amazon Lex V2. Kami tidak lagi menambahkan fitur baru ke V1 dan sangat menyarankan menggunakan V2 untuk semua bot baru.

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

Rincian Alur Informasi

Dalam latihan ini, Anda terlibat dalam percakapan dengan BookTrip bot Amazon Lex menggunakan klien jendela pengujian yang disediakan di konsol Amazon Lex. Bagian ini menjelaskan hal-hal berikut:

Aliran Data: Pesan Maksud Hotel

Bagian ini menjelaskan apa yang terjadi setelah setiap input pengguna.

  1. User: “book a hotel”

    1. Klien (konsol) mengirimkanPostText 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:

      • Permintaan URI - Menyediakan nama bot (BookTrip), alias bot ($ TERBARU) dan nama pengguna. Trailingtext menunjukkan bahwa itu adalah permintaanPostText API (dan bukanPostContent).

      • Permintaan tubuh - Termasuk input pengguna (inputText) dan kosongsessionAttributes. Awalnya, ini adalah objek kosong dan fungsi Lambda pertama menetapkan atribut sesi.

    2. DariinputText, Amazon Lex mendeteksi maksud (BookHotel). Maksud ini dikonfigurasi dengan fungsi Lambda sebagai pengait kode untuk inisialisasi/validasi data pengguna. Oleh karena itu, Amazon Lex memanggil fungsi Lambda tersebut dengan meneruskan informasi berikut sebagai parameter peristiwa (lihatFormat Peristiwa Masukan):

      { "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, itu adalah untuk melakukan inisialisasi data pengguna dan validasi (saat ini Amazon Lex tahu bahwa pengguna belum menyediakan semua data slot untuk memenuhi maksud).

      • currentIntent- Semua nilai slot diatur ke null.

    3. Pada saat ini, semua nilai slot yang nol. Tidak ada fungsi Lambda untuk memvalidasi. Fungsi Lambda mengembalikan respons berikut ke Amazon Lex. Untuk informasi selengkapnya tentang respons, lihatFormat Respons.

      { "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 melewati nilai-nilai ini.

      • dialogAction.type- Dengan menetapkan nilai iniDelegate, fungsi Lambda mendelegasikan tanggung jawab untuk tindakan berikutnya ke Amazon Lex.

        Jika fungsi Lambda mendeteksi sesuatu dalam validasi data pengguna, itu menginstruksikan Amazon Lex apa yang harus dilakukan selanjutnya.

    4. SesuaidialogAction.type, Amazon Lex memutuskan kursus berikutnya tindakan-mendapatkan data dari pengguna untukLocation slot. 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:

      Respon JSON yang berisi status dialog, nama maksud, pesan, kartu respons, atribut sesi, slot untuk mendapatkan, dan slot.

      Atribut sesi diteruskan ke klien.

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

  2. Pengguna: “Moscow”

    1. Klien mengirimkanPostText 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}" } }

      SelaininputText, klien menyertakan atributcurrentReservation sesi yang sama yang diterima.

    2. Amazon Lex pertama menafsirkaninputText dalam konteks maksud saat ini (layanan ingat bahwa ia telah meminta pengguna tertentu untuk informasi tentangLocation slot). Ini memperbarui nilai slot untuk maksud saat ini dan memanggil fungsi Lambda menggunakan acara 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
      • invocationSourceterus menjadiDialogCodeHook. Pada langkah ini, kita hanya memvalidasi data pengguna.

      • Amazon Lex hanya meneruskan atribut session ke fungsi Lambda.

      • UntukcurrentIntent.slots, Amazon Lex telah memperbaruiLocation slot untukMoscow.

    3. Fungsi Lambda melakukan validasi data pengguna dan menentukan lokasiMoscow yang tidak valid.

      catatan

      Fungsi Lambda dalam latihan ini memiliki daftar sederhana kota yang valid dan tidakMoscow ada dalam daftar. Dalam aplikasi produksi, Anda mungkin menggunakan database back-end untuk mendapatkan informasi ini.

      Ini me-reset nilai slot kembali ke null 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.Locationdiatur ulang ke null.

      • dialogAction.typediatur keElicitSlot, yang mengarahkan Amazon Lex untuk meminta pengguna lagi dengan memberikan yang berikut:

        • dialogAction.slotToElicit- Slot untuk mendapatkan data dari pengguna.

        • dialogAction.message- amessage untuk menyampaikan kepada pengguna.

    4. Amazon Lex memperhatikandialogAction.type dan meneruskan informasi kepada klien dalam respons berikut:

      Respon JSON yang berisi status dialog, nama maksud, pesan, kartu respons, atribut sesi, slot untuk mendapatkan, dan slot.

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

  3. Pengguna: “Chicago”

    1. Klien mengirimkanPostText 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}" } }

    2. Amazon Lex tahu konteksnya, bahwa itu memunculkan data untukLocation slot. Dalam konteks ini, ia tahuinputText nilai adalah untukLocation 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 diperbaruicurrentIntent.slots dengan menetapkanLocation slot untukChicago.

    3. MenurutinvocationSource nilaiDialogCodeHook, fungsi Lambda melakukan validasi data pengguna. Ini mengakuiChicago 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 menyetelLocation toChicago.

      • dialogAction.type- Diatur keDelegate. Data pengguna valid, dan fungsi Lambda mengarahkan Amazon Lex untuk memilih tindakan berikutnya.

       

    4. MenurutdialogAction.type, Amazon Lex memilih tindakan selanjutnya. 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 Anda ingin check-in?”) untuk slot ini sesuai dengan konfigurasi maksud dan kemudian mengirimkan respons berikut kembali ke klien:

      Respon JSON yang berisi status dialog, nama maksud, pesan, kartu respons, atribut sesi, slot untuk mendapatkan, dan slot. Lokasi Slot sekarang diisi sebagai Chicago.

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

  4. Interaksi pengguna terus berlanjut—pengguna menyediakan data, fungsi Lambda memvalidasi data, dan kemudian mendelegasikan tindakan selanjutnya ke Amazon Lex. Akhirnya pengguna menyediakan semua data slot, fungsi Lambda memvalidasi semua input pengguna, dan kemudian Amazon Lex mengakui itu 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 lainnya (currentReservationPrice).

    Pada titik ini, intent siap untuk dipenuhi, tetapi BookHotel intent dikonfigurasi dengan prompt konfirmasi yang memerlukan konfirmasi pengguna sebelum Amazon Lex dapat memenuhi maksud. Oleh karena itu, Amazon Lex mengirimkan pesan berikut kepada klien yang meminta konfirmasi sebelum memesan hotel:

    Respon JSON yang berisi status dialog, nama maksud, pesan, kartu respons, atribut sesi, slot untuk mendapatkan, dan slot. Semua slot sekarang diisi.

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

  5. Pengguna: “ya”

    1. Klien mengirimkanPostText 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" } }
    2. Amazon Lex menafsirkaninputText dalam konteks mengkonfirmasikan 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 mengaturinvocationSource keFulfillmentCodeHook dalam acara tersebut, ia mengirimkan ke fungsi Lambda. Amazon Lex juga menetapkanconfirmationStatus untukConfirmed.

      { "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 iniFulfillmentCodeHook, mengarahkan fungsi Lambda untuk memenuhi maksud.

      • confirmationStatus- Diatur keConfirmed.

    3. Kali ini, fungsi Lambda memenuhi BookHotel maksud, 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 (bukancurrentReservation,currentReservationPrice).

      • dialogAction.type- Fungsi Lambda menetapkan nilai iniClose, menunjukkan bahwa Amazon Lex tidak mengharapkan respons pengguna.

      • dialogAction.fulfillmentState- Diatur keFulfilled dan termasuk yang sesuaimessage untuk menyampaikan kepada pengguna.

    4. Amazon Lex meninjaufulfillmentState dan mengirimkan respons berikut kepada klien:

      Respon JSON yang berisi status dialog, nama maksud, pesan, kartu respons, atribut sesi, slot untuk mendapatkan, dan slot. Semua slot diisi dan kolom reservasi dikonfirmasi terakhir di bawah atribut sesi sekarang diisi.
      catatan
      • dialogState- Amazon Lex menetapkan nilai ini keFulfilled.

      • message— Apakah pesan yang sama dengan fungsi Lambda yang disediakan.

      Klien menampilkan pesan.

Aliran Data: Maksud Mobil Buku

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 BookCar maksud tersebut. Ini menunjukkan bagaimana Anda dapat menggunakan atribut sesi dalam berbagi data lintas-maksud.

Secara khusus, saat pengguna memilih BookCar maksud, fungsi Lambda menggunakan informasi yang relevan dalam atribut sesi untuk mengisi ulang slot (PickUpDate, ReturnDate, dan PickUpCity) untuk BookCar maksud tersebut.

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 memesan mobil”

    1. Klien mengirimkanPostText 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 termasuk atributlastConfirmedReservation session.

    2. Amazon Lex mendeteksi intent (BookCar) dariinputText. Maksud ini juga dikonfigurasi untuk memanggil fungsi Lambda untuk melakukan inisialisasi dan validasi data pengguna. Amazon Lex memanggil fungsi Lambda dengan peristiwa 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 maksud dan slot. Pada saat ini, semua nilai slot yang nol.

    3. Fungsi Lambda pemberitahuan semua nilai slot null dengan apa-apa untuk memvalidasi. Namun, ia menggunakan atribut sesi untuk menginisialisasi beberapa nilai slot (PickUpDate,ReturnDate, andPickUpCity), dan kemudian mengembalikan respon 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 itulastConfirmedReservation, fungsi Lambda mencakup lebih banyak atribut sesi (currentReservationdanconfirmationContext).

      • dialogAction.typediatur keConfirmIntent, yang menginformasikan Amazon Lex bahwa jawaban ya, tidak ada yang diharapkan dari pengguna (confirmationContext diatur ke AutoPopulate, fungsi Lambda tahu bahwa ya/tidak ada balasan pengguna adalah untuk mendapatkan konfirmasi pengguna dari inisialisasi fungsi Lambda yang dilakukan (data slot yang diisi auto).

         

        Fungsi Lambda juga menyertakan dalam respons pesan informatif didialogAction.message Amazon Lex untuk kembali ke klien.

        catatan

        IstilahConfirmIntent (value of thedialogAction.type) tidak terkait dengan maksud bot apa pun. Dalam contoh, fungsi Lambda menggunakan istilah ini untuk mengarahkan Amazon Lex untuk mendapatkan jawaban yes/no dari pengguna.

    4. MenurutdialogAction.type, Amazon Lex mengembalikan respon berikut kepada klien:

      Respon JSON yang berisi status dialog, nama maksud, pesan, kartu respons, atribut sesi, slot untuk mendapatkan, dan slot.

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

  2. Pengguna: “ya”

    1. Klien mengirimkanPostText 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\"}" } }
    2. Amazon Lex membacainputText dan tahu konteksnya (meminta pengguna untuk mengkonfirmasi populasi auto). Amazon Lex memanggil fungsi Lambda dengan mengirimkan peristiwa 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 menetapkanconfirmationStatus untukConfirmed.

    3. DariconfirmationStatus, fungsi Lambda tahu bahwa nilai prepopulated benar. Fungsi Lambda melakukan hal-hal berikut:

      • Memperbarui atributcurrentReservation sesi ke nilai slot yang telah dihuni sebelumnya.

      • MenetapkandialogAction.type keElicitSlot

      • MenetapkanslotToElicit nilai untukDriverAge.

      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?" } } }
    4. Amazon Lex mengembalikan respons berikut:

      respon JSON menunjukkan maksud untuk memesan mobil dan pesan elicitng slot untuk Slot Umur Pengemudi.

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