SimpleDialog class
Memungkinkan pembuatan dialog kustom yang didasarkan pada penutupan sederhana. Ini berguna untuk kasus di mana Anda menginginkan alur percakapan dinamis atau Anda memiliki situasi yang tidak memetakan dengan sangat baik untuk menggunakan air terjun. Hal-hal yang perlu diingat:
- Penutupan dialog Anda dapat dipanggil dalam dua konteks berbeda yang berpotensi perlu Anda uji. Ini akan dipanggil seperti yang diharapkan ketika pengguna mengirim pesan dialog Anda tetapi jika Anda memanggil permintaan atau dialog lain dari penutupan Anda, itu akan dipanggil untuk kedua kalinya dengan hasil dari perintah/dialog. Anda biasanya dapat menguji kasus kedua ini dengan memeriksa keberadaan properti
args.resumed. Penting untuk menghindari diri Anda ke dalam perulangan tak terbatas yang dapat mudah dilakukan. - Tidak seperti air terjun yang tidak akan diakhiri secara otomatis. Ini akan tetap menjadi dialog aktif sampai Anda memanggil session.endDialog().
- Memperluas
Konstruktor
| Simple |
Membuat dialog kustom baru berdasarkan penutupan sederhana. |
Metode
| add |
Dipanggil sekali untuk setiap dialog dalam pustaka untuk memberi dialog kesempatan untuk menambahkan |
| begin<T>(Session, T) | Dipanggil ketika sesi dialog baru sedang dimulai. |
| begin |
Mengikat tindakan ke dialog yang akan memulai dialog lain kapan saja dipicu. Dialog baru akan didorong ke tumpukan sehingga tidak secara otomatis mengakhiri tugas saat ini. Tugas saat ini akan dilanjutkan setelah dialog baru berakhir. Perintah bawaan akan secara otomatis meminta kembali pengguna setelah ini terjadi tetapi perilaku tersebut dapat dinonaktifkan dengan mengatur bendera promptAfterAction |
| cancel |
Mengikat tindakan ke dialog yang akan membatalkan dialog kapan saja dipicu. Ketika dibatalkan, induk dialog akan dilanjutkan dengan dilanjutkan kode yang menunjukkan bahwa dibatalkan. |
| clone(Action |
Mengembalikan klon dari ActionSet yang ada. |
| custom |
Mengikat tindakan kustom ke dialog yang akan memanggil handler onSelectAction saat dipicu. |
| dialog |
Dipanggil ketika dialog akar sedang terganggu oleh dialog lain. Ini memberikan dialog yang sedang terganggu kesempatan untuk menjalankan logika kustom sebelum dihapus dari tumpukan. Dialog itu sendiri bertanggung jawab untuk menghapus tumpukan dialog dan memulai dialog baru. |
| dialog |
Dialog anak telah berakhir dan dialog saat ini sedang dilanjutkan. |
| end |
Mengikat tindakan yang akan mengakhiri percakapan dengan pengguna saat dipicu. |
| find |
Dipanggil selama Library.findRoutes() memanggil setiap dialog pada tumpukan untuk menentukan apakah salah satu tindakan dialog dipicu oleh ucapan pengguna. |
| recognize(IRecognize |
Mengurai ucapan pengguna dan menetapkan skor dari 0,0 - 1,0 yang menunjukkan seberapa yakin dialognya adalah bahwa ia memahami ucapan pengguna. Metode ini selalu dipanggil untuk dialog aktif pada tumpukan. Skor 1.0 akan menunjukkan kecocokan yang sempurna dan mengakhiri pengenalan lebih lanjut.
Ketika skor kurang dari 1,0, setiap dialog pada tumpukan akan memiliki metode Jika ada tindakan dengan skor yang lebih tinggi, maka dialog tindakan akan dipanggil alih-alih metode dialog replyReceived(). Dialog akan tetap berada di tumpukan dan dapat dilanjutkan pada titik tertentu jika tindakan memanggil dialog baru sehingga dialog harus bersiap untuk panggilan tak terduga ke dialogresumed() . |
| reload |
Mengikat tindakan ke dialog yang akan menyebabkan dialog dimuat ulang kapan saja dipicu. Ini berguna untuk mengimplementasikan logika yang menangani ucapan pengguna seperti "startover". |
| reply |
Memproses pesan yang diterima dari pengguna. Dipanggil oleh sistem dialog. |
| select |
Memilih rute yang memiliki skor keyakinan tertinggi untuk ucapan tersebut. |
| trigger |
Mengikat tindakan ke dialog yang akan membuatnya menjadi dialog aktif kapan saja dipicu. Perilaku default adalah mengganggu dialog yang ada dengan menghapus tumpukan dan memulai dialog di akar tumpukan. Dialog yang terganggu dapat mencegat gangguan ini dengan menambahkan kustom onInterrupted handler ke opsi tindakan pemicunya. Selain itu, Anda dapat menyesuaikan cara dialog yang dipicu dimulai dengan menyediakan kustom onSelectAction handler ke opsi tindakan pemicu Anda. |
Detail Konstruktor
SimpleDialog((session: Session, args?: any | IDialogResult<any>) => void)
Membuat dialog kustom baru berdasarkan penutupan sederhana.
new SimpleDialog(handler: (session: Session, args?: any | IDialogResult<any>) => void)
Parameter
- handler
-
(session: Session, args?: any | IDialogResult<any>) => void
Penutupan fungsi untuk dialog Anda.
Detail Metode
addDialogTrigger(ActionSet, string)
Dipanggil sekali untuk setiap dialog dalam pustaka untuk memberi dialog kesempatan untuk menambahkan triggerAction() ke kumpulan tindakan global pustaka. Pemicu ini dipetakan ke beginDialogAction() yang memulai dialog saat kondisi pemicu terpenuhi.
function addDialogTrigger(actions: ActionSet, dialogId: string)
Parameter
- actions
- ActionSet
Pustaka set tindakan global.
- dialogId
-
string
ID dialog yang sepenuhnya memenuhi syarat untuk dipicu.
begin<T>(Session, T)
Dipanggil ketika sesi dialog baru sedang dimulai.
function begin<T>(session: Session, args?: T)
Parameter
- session
- Session
Objek sesi untuk percakapan saat ini.
- args
-
T
Argumen (Opsional) yang diteruskan ke dialog oleh induknya.
beginDialogAction(string, string, IBeginDialogActionOptions)
Mengikat tindakan ke dialog yang akan memulai dialog lain kapan saja dipicu. Dialog baru akan didorong ke tumpukan sehingga tidak secara otomatis mengakhiri tugas saat ini. Tugas saat ini akan dilanjutkan setelah dialog baru berakhir. Perintah bawaan akan secara otomatis meminta kembali pengguna setelah ini terjadi tetapi perilaku tersebut dapat dinonaktifkan dengan mengatur bendera promptAfterAction
function beginDialogAction(name: string, id: string, options?: IBeginDialogActionOptions)
Parameter
- name
-
string
Nama unik untuk menetapkan tindakan.
- id
-
string
ID dialog untuk memulai.
- options
- IBeginDialogActionOptions
(Opsional) opsi yang digunakan untuk mengonfigurasi tindakan. Jika cocok ditentukan, tindakan akan mendengarkan pengguna untuk mengucapkan kata atau frasa yang memicu tindakan, jika tidak, tindakan perlu terikat ke tombol menggunakan CardAction.dialogAction() untuk memicu tindakan. Anda juga dapat menggunakan dialogArg untuk meneruskan param tambahan ke dialog yang sedang dimulai.
Mengembalikan
cancelAction(string, TextOrMessageType, ICancelActionOptions)
Mengikat tindakan ke dialog yang akan membatalkan dialog kapan saja dipicu. Ketika dibatalkan, induk dialog akan dilanjutkan dengan dilanjutkan kode yang menunjukkan bahwa dibatalkan.
function cancelAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)
Parameter
- name
-
string
Nama unik untuk menetapkan tindakan.
(Opsional) pesan untuk mengirim pengguna sebelum membatalkan dialog.
- options
- ICancelActionOptions
(Opsional) opsi yang digunakan untuk mengonfigurasi tindakan. Jika cocok ditentukan, tindakan akan mendengarkan pengguna untuk mengucapkan kata atau frasa yang memicu tindakan, jika tidak, tindakan perlu terikat ke tombol menggunakan CardAction.dialogAction() untuk memicu tindakan.
Mengembalikan
clone(ActionSet)
Mengembalikan klon dari ActionSet yang ada.
function clone(copyTo?: ActionSet)
Parameter
- copyTo
- ActionSet
Instans (Opsional) untuk menyalin objek saat ini. Jika kehilangan instans baru akan dibuat.
Mengembalikan
customAction(IDialogActionOptions)
Mengikat tindakan kustom ke dialog yang akan memanggil handler onSelectAction saat dipicu.
function customAction(options: IDialogActionOptions)
Parameter
- options
- IDialogActionOptions
Opsi yang digunakan untuk mengonfigurasi tindakan. Jika cocok ditentukan, tindakan akan mendengarkan pengguna untuk mengucapkan kata atau frasa yang memicu tindakan. Logika pencocokan kustom dapat disediakan menggunakan onFindAction.
Mengembalikan
dialogInterrupted(Session, string, any)
Dipanggil ketika dialog akar sedang terganggu oleh dialog lain. Ini memberikan dialog yang sedang terganggu kesempatan untuk menjalankan logika kustom sebelum dihapus dari tumpukan. Dialog itu sendiri bertanggung jawab untuk menghapus tumpukan dialog dan memulai dialog baru.
function dialogInterrupted(session: Session, dialogId: string, dialogArgs: any)
Parameter
- session
- Session
Objek sesi untuk percakapan saat ini.
- dialogId
-
string
ID dialog yang harus dimulai.
- dialogArgs
-
any
Argumen yang harus diteruskan ke dialog baru.
dialogResumed<T>(Session, IDialogResult<T>)
Dialog anak telah berakhir dan dialog saat ini sedang dilanjutkan.
function dialogResumed<T>(session: Session, result: IDialogResult<T>)
Parameter
- session
- Session
Objek sesi untuk percakapan saat ini.
- result
Hasil yang dikembalikan oleh dialog turunan.
endConversationAction(string, TextOrMessageType, ICancelActionOptions)
Mengikat tindakan yang akan mengakhiri percakapan dengan pengguna saat dipicu.
function endConversationAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)
Parameter
- name
-
string
Nama unik untuk menetapkan tindakan.
(Opsional) pesan untuk mengirim pengguna sebelum mengakhiri percakapan.
- options
- ICancelActionOptions
(Opsional) opsi yang digunakan untuk mengonfigurasi tindakan. Jika cocok ditentukan, tindakan akan mendengarkan pengguna untuk mengucapkan kata atau frasa yang memicu tindakan, jika tidak, tindakan perlu terikat ke tombol menggunakan CardAction.dialogAction() untuk memicu tindakan.
Mengembalikan
findActionRoutes(IRecognizeDialogContext, (err: Error, results: IRouteResult[]) => void)
Dipanggil selama Library.findRoutes() memanggil setiap dialog pada tumpukan untuk menentukan apakah salah satu tindakan dialog dipicu oleh ucapan pengguna.
function findActionRoutes(context: IRecognizeDialogContext, callback: (err: Error, results: IRouteResult[]) => void)
Parameter
- context
- IRecognizeDialogContext
Konteks pesan masuk serta dialogdata
- callback
-
(err: Error, results: IRouteResult[]) => void
Berfungsi untuk memanggil dengan rute kandidat teratas.
recognize(IRecognizeDialogContext, (err: Error, result: IRecognizeResult) => void)
Mengurai ucapan pengguna dan menetapkan skor dari 0,0 - 1,0 yang menunjukkan seberapa yakin dialognya adalah bahwa ia memahami ucapan pengguna. Metode ini selalu dipanggil untuk dialog aktif pada tumpukan. Skor 1.0 akan menunjukkan kecocokan yang sempurna dan mengakhiri pengenalan lebih lanjut.
Ketika skor kurang dari 1,0, setiap dialog pada tumpukan akan memiliki metode
Jika ada tindakan dengan skor yang lebih tinggi, maka dialog tindakan akan dipanggil alih-alih metode dialog replyReceived(). Dialog akan tetap berada di tumpukan dan dapat dilanjutkan pada titik tertentu jika tindakan memanggil dialog baru sehingga dialog harus bersiap untuk panggilan tak terduga ke dialogresumed() .
function recognize(context: IRecognizeDialogContext, callback: (err: Error, result: IRecognizeResult) => void)
Parameter
- context
- IRecognizeDialogContext
Konteks permintaan.
- callback
-
(err: Error, result: IRecognizeResult) => void
Berfungsi untuk memanggil dengan hasil pengenalan.
reloadAction(string, TextOrMessageType, IBeginDialogActionOptions)
Mengikat tindakan ke dialog yang akan menyebabkan dialog dimuat ulang kapan saja dipicu. Ini berguna untuk mengimplementasikan logika yang menangani ucapan pengguna seperti "startover".
function reloadAction(name: string, msg?: TextOrMessageType, options?: IBeginDialogActionOptions)
Parameter
- name
-
string
Nama unik untuk menetapkan tindakan.
(Opsional) pesan untuk mengirim pengguna sebelum memuat ulang dialog.
- options
- IBeginDialogActionOptions
(Opsional) opsi yang digunakan untuk mengonfigurasi tindakan. Jika cocok ditentukan, tindakan akan mendengarkan pengguna untuk mengucapkan kata atau frasa yang memicu tindakan, jika tidak, tindakan perlu terikat ke tombol menggunakan CardAction.dialogAction() untuk memicu tindakan. Anda juga dapat menggunakan dialogArg untuk meneruskan param tambahan ke dialog saat dimuat ulang.
Mengembalikan
replyReceived(Session)
Memproses pesan yang diterima dari pengguna. Dipanggil oleh sistem dialog.
function replyReceived(session: Session)
Parameter
- session
- Session
Objek sesi untuk percakapan saat ini.
selectActionRoute(Session, IRouteResult)
Memilih rute yang memiliki skor keyakinan tertinggi untuk ucapan tersebut.
function selectActionRoute(session: Session, route: IRouteResult)
Parameter
- session
- Session
Objek sesi untuk percakapan saat ini.
- route
- IRouteResult
Hasil yang dikembalikan dari panggilan ke findActionRoutes().
triggerAction(ITriggerActionOptions)
Mengikat tindakan ke dialog yang akan membuatnya menjadi dialog aktif kapan saja dipicu. Perilaku default adalah mengganggu dialog yang ada dengan menghapus tumpukan dan memulai dialog di akar tumpukan. Dialog yang terganggu dapat mencegat gangguan ini dengan menambahkan kustom onInterrupted handler ke opsi tindakan pemicunya. Selain itu, Anda dapat menyesuaikan cara dialog yang dipicu dimulai dengan menyediakan kustom onSelectAction handler ke opsi tindakan pemicu Anda.
function triggerAction(options: ITriggerActionOptions)
Parameter
- options
- ITriggerActionOptions
Opsi yang digunakan untuk mengonfigurasi tindakan.