Terapkan penangan dan dialog aktivitas

Selesai

Logika untuk memproses aktivitas dapat diimplementasikan dalam berbagai cara. Bot Framework SDK menyediakan kelas yang dapat membantu Anda membuat bot yang mengelola percakapan menggunakan:

  • Penangan aktivitas: Metode peristiwa yang dapat Anda timpa untuk menangani berbagai jenis aktivitas.
  • Dialog: Pola yang lebih kompleks untuk menangani percakapan multi-giliran yang stateful.

Penangan aktivitas

Untuk bot sederhana dengan interaksi singkat tanpa status, Anda dapat menggunakan Pengendali Aktivitas untuk menerapkan model percakapan berbasis peristiwa di mana peristiwa dipicu oleh aktivitas seperti pengguna yang bergabung dalam percakapan atau pesan yang diterima. Saat aktivitas terjadi di saluran, Layanan Kerangka Bot akan memanggil fungsi Aktivitas Proses adaptor bot, dengan meneruskan detail aktivitas. Adaptor membuat konteks giliran untuk aktivitas dan meneruskannya ke penangan giliran bot, yang memanggil pengendali aktivitas khusus peristiwa individual.

A bot uses activity handlers to handle turns in a conversation

Kelas dasar ActivityHandler menyertakan metode peristiwa untuk berbagai jenis aktivitas umum, termasuk:

  • Pesan diterima
  • Anggota bergabung dalam percakapan
  • Anggota meninggalkan percakapan
  • Reaksi pesan diterima
  • Bot terpasang
  • Lainnya...

Anda dapat mengganti penangan aktivitas apa pun yang ingin Anda terapkan logika kustomnya.

Konteks giliran

Aktivitas terjadi dalam konteks giliran, yang mewakili pertukaran dua arah tunggal antara pengguna dan bot. Activity handler methods include a parameter for the konteks giliran, which you can use to access relevant information. Misalnya, pengendali aktivitas untuk aktivitas yang diterima pesan menyertakan teks pesan.

Informasi Selengkapnya

Untuk informasi selengkapnya tentang penangan aktivitas, lihat dokumentasi Bot Framework SDK.

Dialog

Untuk alur percakapan yang lebih kompleks di mana Anda perlu menyimpan status di antara giliran untuk mengaktifkan percakapan multi-giliran, Anda dapat menerapkan dialog. Pustaka dialog Bot Framework SDK menyediakan beberapa kelas dialog yang dapat Anda gabungkan untuk menerapkan alur percakapan yang diperlukan untuk bot Anda.

Ada dua pola umum untuk menggunakan dialog untuk membuat percakapan bot:

Dialog komponen

Dialog komponen adalah dialog yang dapat berisi dialog lain, yang ditentukan dalam kumpulan dialog. Seringkali, dialog awal dalam dialog komponen adalah dialog waterfall, yang mendefinisikan serangkaian langkah berurutan untuk memandu percakapan. Biasanya setiap langkah menjadi dialog prompt sehingga alur percakapan terdiri dari pengumpulan data masukan dari pengguna secara berurutan. Setiap langkah harus diselesaikan sebelum meneruskan output ke langkah berikutnya

Misalnya, bot pemesanan pizza dapat didefinisikan sebagai dialog air terjun di mana pengguna diminta untuk memilih ukuran pizza, lalu topping, dan akhirnya diminta untuk pembayaran.

A component dialog contains a waterfall dialog for ordering a pizza

Dialog adaptif

Dialog adaptif adalah jenis lain dari dialog penampung di mana alurnya lebih fleksibel, memungkinkan interupsi, pembatalan, dan peralihan konteks pada titik mana pun dalam percakapan. Dalam gaya percakapan ini, bot memulai dialog root, yang berisi alur tindakan (yang dapat mencakup cabang dan loop), dan pemicu yang dapat diprakarsai oleh tindakan atau oleh pengenal. Pengenal menganalisis masukan bahasa alami (biasanya menggunakan layanan Pemahaman Bahasa) dan mendeteksi niat, yang dapat dipetakan ke pemicu yang mengubah alur percakapan - sering kali dengan memulai dialog anak baru, yang berisi tindakan, pemicu, dan pengenal mereka sendiri.

Misalnya, bot pemesanan pizza mungkin dimulai dengan dialog root yang hanya menyambut pengguna. Saat pengguna memasukkan pesan yang menunjukkan bahwa mereka ingin memesan pizza, pengenal mendeteksi niat ini dan menggunakan pemicu untuk memulai dialog lain yang berisi alur tindakan yang diperlukan untuk mengumpulkan informasi tentang pesanan pizza. Kapan saja selama dialog pemesanan pizza, pengguna mungkin memasukkan pesan yang menunjukkan bahwa mereka ingin melakukan sesuatu yang lain (misalnya, membatalkan pesanan), dan pengenal untuk dialog pemesanan pizza (atau dialog induknya) dapat digunakan untuk memicu perubahan yang tepat dalam alur percakapan.

An adaptive dialog for ordering a pizza

Catatan

Menggunakan dialog menawarkan fleksibilitas yang lebih besar daripada yang dimungkinkan dengan bot yang murni berdasarkan pengendali aktivitas, tetapi bisa lebih rumit untuk diprogram. Meskipun Anda dapat menggunakan Bot Framework SDK untuk menerapkan dialog dalam kode, Anda mungkin ingin mempertimbangkan untuk menggunakan Komposer Framework Bot untuk membuat bot dengan dialog yang rumit, dengan memanfaatkan antarmuka desain visualnya.