Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Rincian Alur Informasi

Mode fokus
Rincian Alur Informasi - Amazon Lex V1

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 sebagai gantinya.

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

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 sebagai gantinya.

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

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:

Alur Data: Pesan Hotel Intent

Bagian ini menjelaskan apa yang terjadi setelah setiap input pengguna.

  1. Pengguna: “pesan hotel”

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

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

    2. DariinputText, 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 Masukanlihat):

      { "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.

    3. 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, 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 meneruskan nilai-nilai ini.

      • dialogAction.type— Dengan menetapkan nilai iniDelegate, 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.

    4. Sesuai dengan itudialogAction.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.

      Atribut sesi diteruskan ke klien.

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

  2. 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 ituinputText, klien menyertakan atribut currentReservation sesi yang sama yang diterimanya.

    2. 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
      • invocationSourceterus menjadiDialogCodeHook. Pada langkah ini, kami hanya memvalidasi data pengguna.

      • Amazon Lex baru saja meneruskan atribut session ke fungsi Lambda.

      • UntukcurrentIntent.slots, Amazon Lex telah memperbarui Location slot keMoscow.

    3. Fungsi Lambda melakukan validasi data pengguna dan menentukan bahwa itu Moscow adalah lokasi 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 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.Locationdisetel 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— a message untuk disampaikan kepada pengguna.

    4. 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.

      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 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}" } }

    2. 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 keChicago.

    3. Menurut invocationSource nilaiDialogCodeHook, 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 keDelegate. Data pengguna valid, dan fungsi Lambda mengarahkan Amazon Lex untuk memilih tindakan berikutnya.

       

    4. MenurutdialogAction.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.

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

  4. 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.

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

  5. 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" } }
    2. 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 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 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 (bukancurrentReservation,currentReservationPrice).

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

      • dialogAction.fulfillmentState— Diatur ke Fulfilled dan termasuk yang sesuai message untuk disampaikan kepada pengguna.

    4. 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.
      catatan
      • dialogState— Amazon Lex menetapkan nilai iniFulfilled.

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

      Klien menampilkan pesan.

Aliran Data: Pesan Niat Mobil

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.

    2. 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.

    3. Fungsi Lambda memperhatikan semua nilai slot null tanpa memvalidasi apa pun. Namun, ia menggunakan atribut sesi untuk menginisialisasi beberapa nilai slot (PickUpDate,ReturnDate, danPickUpCity), 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 itulastConfirmedReservation, fungsi Lambda mencakup lebih banyak atribut sesi (currentReservationdanconfirmationContext).

      • dialogAction.typedisetel keConfirmIntent, yang memberi tahu Amazon Lex bahwa jawaban ya, tidak diharapkan dari pengguna (ConfirmationContext disetel AutoPopulate ke, fungsi Lambda tahu bahwa balasan pengguna ya/tidak 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.

        catatan

        Istilah ConfirmIntent (nilaidialogAction.type) tidak terkait dengan maksud bot apa pun. Dalam contoh, fungsi Lambda menggunakan istilah ini untuk mengarahkan Amazon Lex untuk mendapatkan balasan ya/tidak dari pengguna.

    4. MenurutdialogAction.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.

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

  2. 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\"}" } }
    2. 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 keConfirmed.

    3. DariconfirmationStatus, fungsi Lambda tahu bahwa nilai yang sudah terisi 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 keDriverAge.

      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 tanggapan berikut:

      Respons JSON menunjukkan niat untuk memesan mobil dan pesan memunculkan slot untuk slot Driver Age.

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

Di halaman ini

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.