Mendesain dan mengontrol alur percakapan
BERLAKU UNTUK: SDK v4
Dalam aplikasi tradisional, antarmuka pengguna (UI) terdiri dari serangkaian layar, dan satu aplikasi atau situs web dapat menggunakan satu atau beberapa layar sesuai kebutuhan untuk bertukar informasi dengan pengguna. Sebagian besar aplikasi dimulai dengan layar utama tempat pengguna awalnya mendarat, dan layar tersebut menyediakan navigasi yang mengarah ke layar lain untuk berbagai fungsi seperti memulai pesanan baru, menelusuri produk, atau mencari bantuan.
Seperti aplikasi dan situs web, bot memiliki UI, tetapi terdiri dari pesan daripada layar. Pesan mungkin berisi tombol, teks, dan elemen lainnya, atau sepenuhnya berbasis ucapan.
Meskipun aplikasi atau situs web tradisional dapat meminta beberapa informasi di layar sekaligus, bot akan mengumpulkan jumlah informasi yang sama menggunakan beberapa pesan. Dengan cara ini, proses pengumpulan informasi dari pengguna adalah pengalaman aktif; salah satu tempat pengguna melakukan percakapan aktif dengan bot.
Bot yang dirancang dengan baik akan memiliki alur percakapan yang terasa alami. Bot harus dapat menangani percakapan inti dengan mulus dan dapat menangani gangguan atau beralih topik dengan anggun.
Alur percakapan prosedural
Percakapan dengan bot dapat berfokus pada tugas yang coba dicapai bot, yang disebut alur prosedural. Bot meminta serangkaian pertanyaan kepada pengguna untuk mengumpulkan semua informasi yang dibutuhkan sebelum memproses tugas.
Dalam alur percakapan prosedural, Anda menentukan urutan pertanyaan dan bot akan mengajukan pertanyaan sesuai urutan yang Anda tentukan. Anda dapat mengatur pertanyaan ke dalam grup logis untuk menjaga kode cMicrosoft Entralized sambil tetap fokus membimbing percakapan. Misalnya, Anda dapat merancang satu modul untuk berisi logika yang membantu pengguna menelusuri produk dan modul terpisah untuk berisi logika yang membantu pengguna membuat pesanan baru.
Anda dapat menyusun modul ini untuk mengalir dengan cara apa pun yang Anda suka, mulai dari bentuk bebas hingga berurutan. Bot Framework SDK menyediakan pustaka dialog yang memungkinkan Anda membangun alur percakapan apa pun yang dibutuhkan bot Anda. Pustaka menyertakan dialog air terjun untuk membuat urutan langkah-langkah dan meminta pertanyaan kepada pengguna. Untuk informasi selengkapnya, lihat Pustaka dialog.
Dalam aplikasi tradisional, semuanya dimulai dengan layar utama . Layar utama memanggil layar pesanan baru. Layar pesanan baru tetap terkendali hingga menutup atau memanggil layar lain, seperti layar pencarian produk. Jika layar pesanan baru ditutup, pengguna dikembalikan ke layar utama.
Dalam bot yang menggunakan dialog, semuanya dimulai dengan dialog akar. Dialog akar memanggil dialog urutan baru. Pada saat itu, dialog pesanan baru mengontrol percakapan dan tetap memegang kontrol hingga menutup atau memanggil dialog lain, seperti dialog pencarian produk. Jika dialog urutan baru ditutup, kontrol percakapan akan kembali ke dialog akar.
Untuk contoh cara menerapkan alur percakapan menggunakan pustaka dialog, lihat Menerapkan alur percakapan berurutan.
Menangani gangguan
Mungkin menggoda untuk mengasumsikan bahwa pengguna akan melakukan tugas prosedural satu per satu dengan cara yang rapi dan tertib. Misalnya, dalam alur percakapan prosedural menggunakan dialog, pengguna akan mulai pada dialog akar dan memanggil dialog pesanan baru. Dari dialog pesanan baru, mereka memanggil dialog pencarian produk. Kemudian, saat memilih salah satu hasil yang tercantum dalam dialog pencarian produk, mereka memanggil dialog pesanan baru. Setelah menyelesaikan pesanan, mereka tiba kembali di dialog root.
Meskipun akan sangat bagus jika pengguna selalu melakukan perjalanan seperti jalur linier dan logis, itu jarang terjadi. Orang tidak selalu berkomunikasi secara berurutan. Mereka cenderung sering berubah pikiran. Pertimbangkan contoh berikut:
Meskipun bot Anda mungkin berpusat pada prosedural, pengguna dapat memutuskan untuk melakukan sesuatu yang sama sekali berbeda atau mengajukan pertanyaan yang mungkin tidak terkait dengan topik saat ini. Dalam contoh di atas, pengguna mengajukan pertanyaan daripada memberikan respons ya/tidak yang diharapkan bot. Bagaimana bot Anda harus merespons?
- Bersikeras bahwa pengguna menjawab pertanyaan terlebih dahulu.
- Abaikan semua yang telah dilakukan pengguna sebelumnya, reset seluruh tumpukan dialog, dan mulai dari awal dengan mencoba menjawab pertanyaan pengguna.
- Coba jawab pertanyaan pengguna dan kemudian kembali ke pertanyaan ya/tidak itu dan coba lanjutkan dari sana.
Tidak ada jawaban yang tepat untuk pertanyaan ini, karena solusi terbaik akan bergantung pada spesifikasi skenario Anda dan bagaimana pengguna akan secara wajar mengharapkan bot untuk merespons. Lihat cara Menangani gangguan pengguna untuk bot yang dirancang untuk menangani beberapa jenis gangguan.
Kedaluwarsa percakapan
Terkadang berguna untuk memulai ulang percakapan dari awal. Misalnya, jika pengguna tidak merespons setelah jangka waktu tertentu. Metode yang berbeda untuk mengakhiri percakapan meliputi:
- Lacak terakhir kali pesan diterima dari pengguna, dan hapus status jika waktu lebih besar dari panjang yang telah dikonfigurasi sebelumnya setelah menerima pesan berikutnya dari pengguna.
- Gunakan fitur lapisan penyimpanan, seperti fitur time-to-live Cosmos DB, untuk menghapus status setelah durasi waktu yang telah dikonfigurasi sebelumnya.
Untuk informasi selengkapnya, lihat cara Kedaluwarsa percakapan.
Langkah berikutnya
Mengelola navigasi pengguna di seluruh dialog dan merancang alur percakapan dengan cara yang memungkinkan pengguna mencapai tujuan mereka (bahkan dengan cara yang tidak linier) adalah tantangan mendasar dari desain bot. Artikel navigasi bot Desain meninjau beberapa jebakan umum navigasi yang dirancang dengan buruk dan membahas strategi untuk menghindari perangkap tersebut.