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 antara klien dan Amazon Lex.
Bagian ini mengasumsikan bahwa klien mengirimkan permintaan ke Amazon Lex menggunakan API
PostText
waktu proses dan menampilkan detail permintaan dan respons yang sesuai. Untuk informasi selengkapnya tentangPostText
runtime API, lihatPostText.catatan
Untuk contoh alur informasi antara klien dan Amazon Lex di mana klien menggunakan
PostContent
API, lihatLangkah 2a (Opsional): Tinjau Rincian Aliran Informasi Lisan (Konsol) . -
Aliran data antara Amazon Lex dan fungsi Lambda. Untuk informasi selengkapnya, lihat Lambda Fungsi Input Event dan Response Format.
Aliran Data: Pesan Maksud Hotel
Bagian ini menjelaskan apa yang terjadi setelah setiap input pengguna.
-
User: “book a hotel”
-
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. Trailing
text
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.
-
-
Dari
inputText
, 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.
-
-
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.
-
-
Sesuai
dialogAction.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:Atribut sesi diteruskan ke klien.
Klien membaca respons dan kemudian menampilkan pesan: “Kota apa yang akan Anda tinggali?”
-
-
Pengguna: “Moscow”
-
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
inputText
, klien menyertakan atributcurrentReservation
sesi yang sama yang diterima. -
Amazon Lex pertama menafsirkan
inputText
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
-
invocationSource
terus menjadiDialogCodeHook
. Pada langkah ini, kita hanya memvalidasi data pengguna. -
Amazon Lex hanya meneruskan atribut session ke fungsi Lambda.
-
Untuk
currentIntent.slots
, Amazon Lex telah memperbaruiLocation
slot untukMoscow
.
-
-
Fungsi Lambda melakukan validasi data pengguna dan menentukan lokasi
Moscow
yang 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 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.Location
diatur ulang ke null. -
dialogAction.type
diatur 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.
-
-
-
Amazon Lex memperhatikan
dialogAction.type
dan meneruskan informasi kepada klien dalam respons berikut:Klien hanya menampilkan pesan: “Saat ini kami tidak mendukung Moskow sebagai tujuan yang valid. Bisakah kamu mencoba kota yang berbeda?”
-
-
Pengguna: “Chicago”
-
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}" } } -
Amazon Lex tahu konteksnya, bahwa itu memunculkan data untuk
Location
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 diperbarui
currentIntent.slots
dengan menetapkanLocation
slot untukChicago
. -
Menurut
invocationSource
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.
-
-
Menurut
dialogAction.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:Klien menampilkan pesan: “Hari apa Anda ingin check-in?”
-
-
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:
Klien menampilkan pesan: “Oke, saya telah Anda turun untuk 5 malam di Chicago mulai 2016-12-18. Haruskah saya memesan reservasi?”
-
Pengguna: “ya”
-
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" } } -
Amazon Lex menafsirkan
inputText
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
.
-
-
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.
-
-
Amazon Lex meninjau
fulfillmentState
dan mengirimkan respons berikut kepada klien: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.
-
Pengguna: “juga memesan mobil”
-
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 termasuk atribut
lastConfirmedReservation
session. -
Amazon Lex mendeteksi intent (BookCar) dari
inputText
. 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.
-
-
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 itu
lastConfirmedReservation
, fungsi Lambda mencakup lebih banyak atribut sesi (currentReservation
danconfirmationContext
). -
dialogAction.type
diatur 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 di
dialogAction.message
Amazon Lex untuk kembali ke klien.catatan
Istilah
ConfirmIntent
(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.
-
-
Menurut
dialogAction.type
, Amazon Lex mengembalikan respon berikut kepada klien:Klien menampilkan pesan: “Apakah ini sewa mobil untuk Anda 5 malam menginap di Chicago pada 2016-12-18?”
-
-
Pengguna: “ya”
-
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\"}" } } -
Amazon Lex membaca
inputText
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 menetapkan
confirmationStatus
untukConfirmed
. -
Dari
confirmationStatus
, fungsi Lambda tahu bahwa nilai prepopulated benar. Fungsi Lambda melakukan hal-hal berikut:-
Memperbarui atribut
currentReservation
sesi ke nilai slot yang telah dihuni sebelumnya. -
Menetapkan
dialogAction.type
keElicitSlot
-
Menetapkan
slotToElicit
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?" } } }
-
-
Amazon Lex mengembalikan respons berikut:
Klien menampilkan pesan “Berapa umur pengemudi sewa mobil ini?” dan percakapan berlanjut.
-