Menambahkan kondisi ke percakapan cabang - Amazon Lex

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

Menambahkan kondisi ke percakapan cabang

Anda dapat menggunakan percabangan bersyarat untuk mengontrol jalur yang diambil pelanggan Anda melalui percakapan dengan bot Anda. Anda dapat melakukan cabang percakapan berdasarkan nilai slot, atribut sesi, isi mode input dan bidang transkrip masukan, atau respons dari Amazon Kendra.

Anda dapat menentukan hingga empat cabang. Setiap cabang memiliki kondisi yang harus dipenuhi agar Amazon Lex V2 mengikuti cabang tersebut. Jika tidak ada cabang yang memenuhi kondisinya, cabang default diikuti.

Saat Anda menentukan cabang, Anda menentukan tindakan yang harus diambil Amazon Lex V2 jika kondisi yang sesuai dengan cabang tersebut dievaluasi menjadi true. Anda dapat menentukan salah satu tindakan berikut:

  • Tanggapan yang dikirim ke pengguna.

  • Nilai slot untuk diterapkan ke slot.

  • nilai atribut sesi untuk sesi saat ini.

  • Langkah selanjutnya dalam percakapan. Untuk informasi selengkapnya, lihat Membuat jalur percakapan.


                Anda dapat memilih opsi yang berbeda untuk percabangan bersyarat.

Setiap cabang bersyarat memiliki ekspresi Boolean yang harus dipenuhi agar Amazon Lex V2 mengikuti cabang. Ada operator perbandingan dan Boolean, fungsi, dan operator kuantifier yang dapat Anda gunakan untuk kondisi Anda. Misalnya, kondisi berikut mengembalikan true jika {age} slot kurang dari 24.

{age} < 24

Kondisi berikut mengembalikan true jika {topping} slot multi-nilai berisi kata “nanas”.

{toppings} CONTAINS "pineapple"

Anda dapat menggabungkan beberapa operator perbandingan dengan operator Boolean untuk kondisi yang lebih kompleks. Misalnya, kondisi berikut mengembalikan true jika nilai slot {make} adalah “Honda” dan nilai slot {model} adalah “Civic”. Gunakan tanda kurung untuk mengatur urutan evaluasi.

({make} = "Honda") AND ({model} = "Civic")

Topik berikut memberikan detail tentang operator dan fungsi cabang kondisional.

catatan

Pada 17 Agustus 2022, Amazon Lex V2 merilis perubahan pada cara percakapan dikelola dengan pengguna. Perubahan ini memberi Anda kontrol lebih besar atas jalur yang diambil pengguna melalui percakapan. Untuk informasi selengkapnya, lihat Memahami manajemen alur percakapan. Bot yang dibuat sebelum 17 Agustus 2022 tidak mendukung pesan kait kode dialog, mengatur nilai, mengonfigurasi langkah selanjutnya, dan menambahkan kondisi.

Operator perbandingan

Amazon Lex V2 mendukung operator perbandingan berikut untuk kondisi:

  • Sama dengan (=)

  • Tidak sama (! =)

  • Kurang dari (<)

  • Kurang dari atau sama (<=)

  • Lebih besar dari (>)

  • Lebih besar dari atau sama dengan (> =)

Saat menggunakan operator perbandingan, ia menggunakan aturan berikut.

  • Sisi kiri harus menjadi referensi. Misalnya, untuk referensi nilai slot, Anda gunakan{slotName}. Untuk referensi nilai atribut sesi, Anda gunakan[attribute]. Untuk mode input dan transkrip input, Anda menggunakan$.inputMode dan$.inputTranscript.

  • Sisi kanan harus konstan dan tipe yang sama dengan sisi kiri.

  • Setiap ekspresi referensi atribut yang belum ditetapkan diperlakukan sebagai tidak valid, dan tidak dievaluasi.

  • Bila Anda membandingkan slot multi-nilai, nilai yang digunakan adalah daftar dipisahkan koma dari semua nilai ditafsirkan.

Perbandingan didasarkan pada jenis slot referensi. Mereka diselesaikan sebagai berikut:

  • String - string dibandingkan berdasarkan representasi ASCII mereka. Perbandingannya tidak peka terhadap huruf besar-kecil.

  • Bilangan - slot berbasis nomor dikonversi dari representasi string ke angka dan kemudian dibandingkan.

  • Tanggal/Waktu - slot berbasis waktu dibandingkan berdasarkan deret waktu. Tanggal atau waktu sebelumnya dianggap lebih kecil. Untuk durasi, periode yang lebih pendek dianggap lebih kecil.

Operator Boolean

Amazon Lex V2 mendukung operator Boolean untuk menggabungkan operator perbandingan. Mereka membiarkan Anda membuat pernyataan yang serupa dengan yang berikut ini:

({number} >= 5) AND ({number} <= 10)

Anda dapat menggunakan berikut operator Boolean:

  • DAN (&&)

  • ATAU (||)

  • TIDAK (!)

operator Quantifier

operator Quantifier mengevaluasi unsur-unsur dari urutan dan menentukan apakah satu atau lebih elemen memenuhi kondisi.

  • CONTAINS - menentukan apakah nilai yang ditentukan terkandung dalam slot multi-nilai dan mengembalikan nilai true jika itu. Misalnya,{toppings} CONTAINS "pineapple" mengembalikan nilai true jika pengguna memesan nanas pada pizza mereka.

Fungsi

Fungsi harus diawali dengan stringfn.. Argumen untuk fungsi adalah referensi ke slot, atribut sesi, atau atribut permintaan. Amazon Lex V2 menyediakan dua fungsi untuk mendapatkan informasi dari nilai slot, sessionAttribute, atau requestAttribute.

  • fn.count () - menghitung jumlah nilai dalam slot multi-dihargai.

    Misalnya, jika slot{toppings} berisi nilai “pepperoni, nanas”,

    fn.COUNT({toppings})= 2.

  • fn.is_set () - nilai benar jika slot, atribut sesi, atau atribut permintaan diatur dalam sesi saat ini.

    Berdasarkan contoh sebelumnya:

    fn.IS_SET({toppings}) = "TRUE"

Contoh ekspresi kondisional

Berikut adalah beberapa contoh ekspresi kondisional.

Tipe nilai Kasus penggunaan Ekspresi kondisional
Slot khusus pizzaSizeNilai slot sama dengan besar {pizzaSize} = "large"
Slot khusus pizzaSizesama dengan besar atau sedang {pizzaSize} = "large"ATAU{pizzaSize} = "medium"
Slot khusus Ekspresi dengan() danAND/OR {pizzaType} = "pepperoni"ATAU{pizzaSize} = "medium" ATAU{pizzaSize} = "small"
Slot khusus (Slot Multi-Nilai) Periksa apakah salah satu topping adalah Onion {toppings} CONTAINS "Onion"
Slot khusus (Slot Multi-Nilai) Jumlah topping lebih dari 3 fn.COUNT({topping}) > 2
AMAZON.AlphaNumeric bookingIDadalah ABC123 {bookingID} = “ABC123”
AMAZON.Number nilai slot usia lebih besar dari 30 {age} > 30
AMAZON.Number nilai slot usia sama dengan 10 {age} = 10
AMAZON.Date dateOfBirthnilai slot sebelum 1990 {dateOfBirth} < "1990-10-01"
AMAZON.State destinationStateNilai slot sama dengan Washington {destinationState} = "washington"
AMAZON.Country destinationCountrynilai slot tidak Amerika Serikat {destinationCountry} != "united states"
AMAZON.FirstName firstNameNilai slot adalah John {firstName} = "John"
AMAZON.PhoneNumber phoneNumbernilai slot adalah 716767891932 {phoneNumer} = 716767891932
AMAZON.Percentage Periksa apakah nilai slot persentase lebih besar dari atau sama dengan 78 {percentage} >= 78
AMAZON.EmailAddress emailAddressnilai slot adalah userA@hmail.com {emailAddress} = “userA@hmail.com”
AMAZON.LastName lastNameNilai slot adalah Doe {lastName} = "Doe"
AMAZON.City Nilai slot kota sama dengan Seattle {city} = "Seattle"
AMAZON.Time Waktunya setelah jam 8 malam {time} > "20:00"
AMAZON.StreetName streetNamenilai slot adalah Boren Avenue {streetName} = "boren avenue"
AMAZON.Duration travelDurationNilai slot kurang dari 2 jam {travelDuration} < P2H
Mode input Mode input adalah ucapan $.inputMode = "Speech"
Transkrip input Transkrip masukan sama dengan “Saya ingin pizza besar” $.inputTranscript = "I want a large pizza"
atribut sesi periksa atribut customer_subscription_type [customer_subcription_type] = "yearly"
atribut permintaan periksa bendera retry_enabled ((retry_enabled)) = "TRUE"
Tanggapan Kendra Tanggapan Kendra berisi FAQ fn.IS_SET(((x-amz-lex:kendra-search-response-question_answer-question-1)))