Bagikan melalui


Pustaka dialog

BERLAKU UNTUK: SDK v4

Dialog adalah konsep terpusat dalam SDK, menyediakan cara untuk mengelola percakapan yang berjalan lama dengan pengguna. Dialog melakukan tugas yang dapat mewakili bagian dari percakapan atau sebuah percakapan utuh. Ini bisa meliputi hanya satu giliran atau banyak, dan bisa berlangsung dalam jangka waktu yang pendek atau lama.

Artikel ini menjelaskan kelas inti dan fitur pustaka dialog.

  • Anda harus terbiasa dengan cara kerja bot (termasuk apa itu giliran) dan mengelola keadaan.
  • Setiap dialog mewakili tugas percakapan yang dapat berjalan hingga selesai dan mengembalikan informasi yang dikumpulkan.
  • Setiap dialog mewakili unit dasar alur kontrol: dapat dimulai, dilanjutkan, dan berakhir; jeda dan lanjutkan; atau dibatalkan.
  • Dialog mirip dengan metode atau fungsi dalam bahasa pemrograman. Anda dapat meneruskan argumen atau parameter saat memulai dialog, dan dialog nantinya dapat menghasilkan nilai pengembalian saat berakhir.

Ujung

Jika Anda baru mengembangkan bot dengan Bot Framework atau menciptakan pengalaman percakapan baru, mulailah dengan Bot Framework Composer. Untuk bot SDK-first yang sudah ada dan tidak dibuat di Composer, pertimbangkan mengekspos bot Anda sebagai skill serta menggunakan Composer untuk pengembangan bot yang akan datang.

Keadaan dialog

Dialog dapat menerapkan percakapan multi-giliran , dan dengan demikian, mereka mengandalkan status bertahan di seluruh giliran. Tanpa status dalam dialog, bot Anda tidak akan tahu di mana bot tersebut berada dalam percakapan atau informasi apa yang telah dikumpulkannya.

Untuk mempertahankan tempat dialog dalam percakapan, status dialog harus diambil dan disimpan di memori setiap kali. Ini ditangani melalui aksesor properti status dialog yang ditentukan pada status percakapan bot. Status dialog ini mengelola informasi untuk semua dialog aktif, dan turunan dialog aktif. Ini memungkinkan bot untuk melanjutkan dari tempat terakhir ditinggalkan dan menangani berbagai model percakapan.

Pada saat runtime, atribut status dialog menyertakan informasi tentang di mana dialog berada dalam proses logikanya, termasuk informasi yang dikumpulkan secara internal dalam bentuk objek instans dialog . Sekali lagi, ini perlu dibaca ke dalam bot dan disimpan ke memori setiap giliran.

Infrastruktur untuk dialog

Seiring dengan berbagai jenis dialog, kelas berikut terlibat dalam desain dan kontrol percakapan. Meskipun Anda biasanya tidak perlu berinteraksi dengan kelas-kelas ini secara langsung, menyadarinya dan tujuannya berguna saat merancang dialog untuk bot.

Kelas Deskripsi
kumpulan Dialog Mendefinisikan kumpulan dialog yang dapat saling merujuk dan bekerja sama.
konteks Dialog Berisi informasi tentang semua dialog aktif.
instans Dialog Berisi informasi tentang satu dialog aktif.
hasil giliran Dialog Berisi informasi status dari dialog yang aktif atau belum lama ini aktif. Jika dialog aktif berakhir, maka ini akan berisi nilai pengembaliannya.

Jenis dialog

Pustaka dialog menyediakan beberapa jenis dialog untuk membuat percakapan bot Anda lebih mudah dikelola. Beberapa jenis ini dijelaskan secara lebih rinci nanti di artikel ini.

Jenis Deskripsi
Dialog Kelas dasar untuk semua dialog.
dialog kontainer Kelas dasar untuk semua dialog kontainer , seperti dialog komponen dan dialog adaptif. Ini mempertahankan kumpulan dialog dalam dan memungkinkan Anda memperlakukan kumpulan dialog sebagai unit.
dialog komponen Jenis dialog kontainer tujuan umum yang merangkum sekumpulan dialog, memungkinkan penggunaan kembali set secara keseluruhan. Saat dialog komponen dimulai, dialog dimulai dengan dialog yang ditunjuk dalam koleksinya. Ketika proses dalam selesai, dialog komponen berakhir.
dialog air terjun Menentukan urutan langkah-langkah, memungkinkan bot Anda untuk memandu pengguna melalui proses linier. Ini biasanya dirancang untuk bekerja dalam konteks dialog komponen.
kotak dialog prompt Mintalah input kepada pengguna dan kembalikan hasilnya. Perintah akan diulang hingga mendapatkan input yang valid atau dibatalkan. Mereka dirancang untuk bekerja dengan dialog air terjun.
dialog adaptif Jenis dialog kontainer yang digunakan oleh Composer untuk menyediakan alur percakapan yang lebih alami. Tidak dimaksudkan untuk digunakan langsung dalam bot SDK-first ini.
dialog aksi Jenis dialog yang mendukung implementasi tindakan di Composer. Tidak dimaksudkan untuk digunakan langsung dalam bot SDK-first ini.
kotak dialog masukan Jenis dialog yang mendukung implementasi tindakan input di Composer. Tidak dimaksudkan untuk digunakan langsung dalam bot SDK-first ini.
dialog keterampilan Mengotomatisasi pengelolaan satu atau lebih bot keterampilan dari pengguna keterampilan. Composer secara langsung mendukung keterampilan sebagai tindakan.
Dialog QnA Maker Mengotomatiskan akses ke pangkalan pengetahuan QnA Maker. Dialog ini dirancang untuk juga berfungsi sebagai tindakan dalam Composer.

Penting

Dialog adaptif pertama kali ditambahkan di C# SDK versi 4.9. Dialog adaptif mendukung Bot Framework Composer dan tidak dimaksudkan untuk digunakan secara langsung dalam bot yang berfokus pada SDK.

Pola dialog

Ada dua pola utama untuk memulai dan mengelola dialog dari bot.

  1. Sebaiknya gunakan Bot Framework Composer untuk menulis dialog percakapan, untuk mendapatkan manfaat dari kemampuan percakapan yang lebih alami dan mengalir bebas. Untuk lebih banyak informasi, lihat Pengenalan Bot Framework Composer. Bot tersebut masih dapat diperluas dengan kode jika diperlukan.
  2. Kembangkan bot Anda dalam salah satu bahasa SDK dan gunakan metode ekstensi run dari dialog induk . Untuk informasi tentang menggunakan metode run dengan dialog komponen, lihat tentang dialog komponen dan dialog waterfall serta cara menerapkan alur percakapan berurutan.

Tumpukan dialog

Konteks dialog berisi informasi tentang semua dialog yang aktif dan mencakupsusunan dialog , yang berfungsi sebagai susunan panggilan untuk semua dialog yang aktif. Setiap dialog kontainer memiliki sekumpulan dialog dalam yang dikontrolnya, sehingga setiap dialog kontainer aktif memperkenalkan konteks dialog dalam dan tumpukan dialog sebagai bagian dari statusnya.

Meskipun Anda tidak akan mengakses tumpukan secara langsung, memahami bahwa tumpukan tersebut ada beserta fungsinya akan membantu Anda memahami cara kerja berbagai aspek dari pustaka dialog.

Dialog kontainer

Dialog kontainer dapat menjadi bagian dari kumpulan dialog yang lebih besar. Setiap kontainer memiliki kumpulan dialog dalam yang juga dikelola.

  • Setiap set dialog menciptakan lingkup untuk menyelesaikan ID dialog.

  • SDK saat ini mengimplementasikan dua jenis dialog kontainer: dialog komponen dan dialog adaptif.

    Struktur konseptual keduanya cukup berbeda. Namun, bot Composer dapat menggunakan keduanya.

ID Dialog

Saat Anda menambahkan dialog ke kumpulan dialog, Anda menetapkan ID unik dalam set tersebut. Dialog dalam satu set saling merujuk satu sama lain melalui ID mereka.

Ketika sebuah dialog mereferensikan dialog lain pada waktu proses, hal itu dilakukan menggunakan ID dialog. Konteks dialog mencoba mengatasi ID berdasarkan dialog lain dalam kumpulan dialog langsung. Jika tidak ada kecocokan, ia mencari kecocokan dalam kumpulan dialog kontainer atau luar, dan sebagainya. Jika tidak ada kecocokan yang ditemukan, pengecualian atau kesalahan akan dihasilkan.

Dialog komponen

Dialog komponen menggunakan model urutan untuk percakapan, dan setiap dialog dalam kontainer bertanggung jawab untuk memanggil dialog lain dalam kontainer. Ketika tumpukan dialog dalam dialog komponen kosong, komponen berakhir.

Pertimbangkan untuk menggunakan dialog komponen dan dialog air terjun jika bot Anda memiliki alur kontrol yang relatif sederhana yang tidak memerlukan alur percakapan yang lebih dinamis.

Tentang dialog komponen dan dialog waterfall menjelaskan dialog komponen, dialog waterfall, dan dialog prompt secara lebih rinci.

Dialog lainnya

Dialog QnA Maker dan dialog keterampilan dapat digunakan sebagai dialog mandiri atau sebagai bagian dari kumpulan dialog dalam wadah.

Dialog dari QnA Maker

Nota

Azure AI QnA Maker akan dihentikan pada 31 Maret 2025. Mulai 1 Oktober 2022, Anda tidak akan dapat membuat sumber daya QnA Maker baru atau pangkalan pengetahuan. Versi kemampuan pertanyaan dan jawaban yang lebih baru sekarang tersedia sebagai bagian dari Bahasa Azure AI.

Jawaban atas pertanyaan kustom, fitur Bahasa Azure AI, adalah versi terbaru dari layanan QnA Maker. Untuk informasi selengkapnya tentang dukungan tanya jawab di Bot Framework SDK, lihat Pemahaman bahasa alami.

Dialog QnA Maker mengakses pangkalan pengetahuan QnA Maker dan mendukung perintah tindak lanjut QnA Maker dan fitur pembelajaran aktif.

  • Permintaan tindak lanjut, juga dikenal sebagai permintaan multi-tahap, memungkinkan basis pengetahuan untuk meminta informasi lebih lanjut kepada pengguna sebelum menjawab pertanyaan mereka.
  • Saran pembelajaran aktif memungkinkan pangkalan pengetahuan meningkat dari waktu ke waktu. Dialog QnA Maker mendukung umpan balik eksplisit untuk fitur pembelajaran aktif.

Untuk informasi selengkapnya, lihat:

Dialog keterampilan

Dialog keterampilan mengakses dan mengelola satu atau beberapa keterampilan. Dialog keterampilan memposting aktivitas dari bot induk ke bot keterampilan dan mengembalikan respons keterampilan kepada pengguna.

Untuk informasi selengkapnya, lihat:

Langkah berikutnya