Bagikan melalui


ComponentDialog class

Kelas dasar untuk dialog yang berisi dialog anak lainnya.

Memperluas

Keterangan

Dialog komponen memungkinkan Anda memecah logika bot Anda menjadi komponen yang dapat ditambahkan sebagai dialog ke ComponentDialog lain atau DialogSet. Komponen juga dapat diekspor sebagai bagian dari paket simpul dan digunakan dalam bot lain.

Untuk menentukan komponen baru mendapatkan kelas dari ComponentDialog dan menambahkan dialog anak Anda dalam konstruktor kelas:

const { ComponentDialog, WaterfallDialog, TextPrompt, NumberPrompt } = require('botbuilder-dialogs');

class FillProfileDialog extends ComponentDialog {
    constructor(dialogId) {
        super(dialogId);

        // Add control flow dialogs
        this.addDialog(new WaterfallDialog('start', [
            async (step) => {
                // Ask user their name
                return await step.prompt('namePrompt', `What's your name?`);
            },
            async (step) => {
                // Remember the users answer
                step.values['name'] = step.result;

                // Ask user their age.
                return await step.prompt('agePrompt', `Hi ${step.values['name']}. How old are you?`);
            },
            async (step) => {
                // Remember the users answer
                step.values['age'] = step.result;

                // End the component and return the completed profile.
                return await step.endDialog(step.values);
            }
        ]));

        // Add prompts
        this.addDialog(new TextPrompt('namePrompt'));
        this.addDialog(new NumberPrompt('agePrompt'))
    }
}
module.exports.FillProfileDialog = FillProfileDialog;

Anda kemudian dapat menambahkan instans baru komponen Anda ke DialogSet lain atau ComponentDialog:

const dialogs = new DialogSet(dialogState);
dialogs.add(new FillProfileDialog('fillProfile'));

Konstruktor

ComponentDialog(string)

Membuat instans baru kelas Dialog .

Properti

id

ID unik dialog. Mengatur ID unik dialog.

telemetryClient

Atur klien telemetri, dan terapkan juga ke semua dialog anak. Dialog mendatang yang ditambahkan ke komponen juga akan mewarisi klien ini. Dapatkan klien telemetri saat ini.

Properti yang Diwariskan

dialogs

Kumpulan dialog kontainer.

EndOfTurn

Mendapatkan hasil akhir giliran default.

Metode

addDialog(Dialog)

Menambahkan Dialog anak atau meminta ke komponen DialogSet internal.

beginDialog(DialogContext, O)

Dipanggil saat dialog dimulai dan didorong ke tumpukan dialog induk. Secara default, ini memanggil metode Dialog.BeginDialogAsync(DialogContext, objek, CancellationToken) dari dialog awal dialog komponen, seperti yang didefinisikan oleh InitialDialogId. Ambil alih metode ini dalam kelas turunan untuk mengimplementasikan logika interupsi.

continueDialog(DialogContext)

Dipanggil ketika dialog dilanjutkan, di mana dialog tersebut adalah dialog aktif dan pengguna membalas denganAktivitas baru. Jika metode ini tidak ditimpa, dialog akan otomatis berakhir saat pengguna membalas.

createChildContext(DialogContext)

Membuat konteks dialog dalam

endDialog(TurnContext, DialogInstance, DialogReason)

Dipanggil saat dialog berakhir.

repromptDialog(TurnContext, DialogInstance)

Dipanggil ketika dialog harus meminta kembali input kepada pengguna.

resumeDialog(DialogContext, DialogReason, any)

Dipanggil ketika dialog turunan pada tumpukan dialog induk menyelesaikan giliran ini, mengembalikan kontrol ke komponen dialog ini.

Metode yang Diwarisi

configure(Record<string, unknown>)

Metode fasih untuk mengonfigurasi objek.

findDialog(string)

Menemukan dialog anak yang sebelumnya ditambahkan ke kontainer.

getConverter(string)
getVersion()

String yang dikodekan yang digunakan untuk membantu dalam deteksi perubahan bot pada penyebaran ulang.

onDialogEvent(DialogContext, DialogEvent)

Dipanggil ketika peristiwa telah dinaikkan, menggunakan DialogContext.emitEvent(), dengan dialog saat ini atau dialog yang dimulai dialog saat ini.

Detail Konstruktor

ComponentDialog(string)

Membuat instans baru kelas Dialog .

new ComponentDialog(dialogId?: string)

Parameter

dialogId

string

Fakultatif. ID unik dialog.

Detail Properti

id

ID unik dialog. Mengatur ID unik dialog.

string id

Nilai Properti

string

Id untuk dialog.

Keterangan

Ini akan dibuat secara otomatis jika tidak ditentukan.

telemetryClient

Atur klien telemetri, dan terapkan juga ke semua dialog anak. Dialog mendatang yang ditambahkan ke komponen juga akan mewarisi klien ini. Dapatkan klien telemetri saat ini.

BotTelemetryClient telemetryClient

Nilai Properti

BotTelemetryClient

BotTelemetryClient digunakan untuk pengelogan.

Detail Properti yang Diwariskan

dialogs

Kumpulan dialog kontainer.

dialogs: DialogSet

Nilai Properti

Diwariskan Dari DialogContainer.dialog

EndOfTurn

Mendapatkan hasil akhir giliran default.

static EndOfTurn: DialogTurnResult

Nilai Properti

Keterangan

Hasil ini menunjukkan bahwa dialog (atau langkah logis dalam dialog) telah menyelesaikan pemrosesan untuk giliran saat ini, masih aktif, dan menunggu lebih banyak input.

Diwariskan Dari dialog.EndOfTurn

Detail Metode

addDialog(Dialog)

Menambahkan Dialog anak atau meminta ke komponen DialogSet internal.

function addDialog(dialog: Dialog): this

Parameter

dialog
Dialog

Dialog turunan atau permintaan untuk ditambahkan.

Mengembalikan

this

ComponentDialog setelah operasi selesai.

Keterangan

Dialog.id anak pertama yang ditambahkan ke komponen akan ditetapkan ke properti initialDialogId.

beginDialog(DialogContext, O)

Dipanggil saat dialog dimulai dan didorong ke tumpukan dialog induk. Secara default, ini memanggil metode Dialog.BeginDialogAsync(DialogContext, objek, CancellationToken) dari dialog awal dialog komponen, seperti yang didefinisikan oleh InitialDialogId. Ambil alih metode ini dalam kelas turunan untuk mengimplementasikan logika interupsi.

function beginDialog(outerDC: DialogContext, options?: O): Promise<DialogTurnResult>

Parameter

outerDC
DialogContext

Induk DialogContext untuk pergantian percakapan saat ini.

options

O

Informasi awal opsional untuk diteruskan ke dialog.

Mengembalikan

Promise<DialogTurnResult>

Janji yang mewakili operasi asinkron.

Keterangan

Jika tugas berhasil, hasilnya menunjukkan apakah dialog masih aktif setelah giliran diproses oleh dialog.

continueDialog(DialogContext)

Dipanggil ketika dialog dilanjutkan, di mana dialog tersebut adalah dialog aktif dan pengguna membalas denganAktivitas baru. Jika metode ini tidak ditimpa, dialog akan otomatis berakhir saat pengguna membalas.

function continueDialog(outerDC: DialogContext): Promise<DialogTurnResult>

Parameter

outerDC
DialogContext

Induk DialogContext untuk pergantian percakapan saat ini.

Mengembalikan

Promise<DialogTurnResult>

Janji yang mewakili operasi asinkron.

Keterangan

Jika tugas berhasil, hasilnya menunjukkan apakah dialog masih aktif setelah giliran diproses oleh dialog. Hasilnya mungkin juga berisi nilai pengembalian.

createChildContext(DialogContext)

Membuat konteks dialog dalam

function createChildContext(outerDC: DialogContext): DialogContext

Parameter

outerDC
DialogContext

konteks dialog luar

Mengembalikan

Konteks Dialog yang dibuat.

endDialog(TurnContext, DialogInstance, DialogReason)

Dipanggil saat dialog berakhir.

function endDialog(context: TurnContext, instance: DialogInstance, reason: DialogReason): Promise<void>

Parameter

context

TurnContext

Objek TurnContext untuk giliran ini.

instance
DialogInstance

Informasi status yang terkait dengan instans komponen ini Dialog pada tumpukan dialog induknya.

reason
DialogReason

Alasan mengapa Dialog berakhir.

Mengembalikan

Promise<void>

Janji yang mewakili operasi asinkron.

Keterangan

Ketika metode ini dipanggil dari konteks dialog induk, komponen Dialog membatalkan semua dialog pada tumpukan dialog dalamnya sebelum berakhir.

repromptDialog(TurnContext, DialogInstance)

Dipanggil ketika dialog harus meminta kembali input kepada pengguna.

function repromptDialog(context: TurnContext, instance: DialogInstance): Promise<void>

Parameter

context

TurnContext

Objek TurnContext untuk giliran ini.

instance
DialogInstance

Informasi status untuk dialog ini.

Mengembalikan

Promise<void>

Janji yang mewakili operasi asinkron.

resumeDialog(DialogContext, DialogReason, any)

Dipanggil ketika dialog turunan pada tumpukan dialog induk menyelesaikan giliran ini, mengembalikan kontrol ke komponen dialog ini.

function resumeDialog(outerDC: DialogContext, _reason: DialogReason, _result?: any): Promise<DialogTurnResult>

Parameter

outerDC
DialogContext

Dialog Konteks untuk pergantian percakapan saat ini.

_reason
DialogReason

Alasan mengapa dialog dilanjutkan.

_result

any

Opsional, nilai yang dikembalikan dari dialog yang dipanggil. Jenis nilai yang dikembalikan tergantung pada dialog anak.

Mengembalikan

Promise<DialogTurnResult>

Janji yang mewakili operasi asinkron.

Keterangan

Jika tugas berhasil, hasilnya menunjukkan apakah dialog ini masih aktif setelah giliran dialog ini diproses. Umumnya, dialog anak dimulai dengan panggilan ke beginDialog(DialogContext, objek) dalam konteks induk. Namun, jika metode DialogContext.replaceDialog(string, objek) dipanggil, dialog turunan logis mungkin berbeda dari yang asli. Jika metode ini tidak ditimpa, dialog secara otomatis memanggil RepromptDialog(ITurnContext, DialogInstance) saat pengguna membalas.

Detail Metode yang Diwarisi

configure(Record<string, unknown>)

Metode fasih untuk mengonfigurasi objek.

function configure(config: Record<string, unknown>): this

Parameter

config

Record<string, unknown>

Pengaturan konfigurasi yang akan diterapkan.

Mengembalikan

this

yang dapat dikonfigurasi setelah operasi selesai.

Diwariskan DariConfigurable.configure

findDialog(string)

Menemukan dialog anak yang sebelumnya ditambahkan ke kontainer.

function findDialog(dialogId: string): Dialog | undefined

Parameter

dialogId

string

ID dialog untuk pencarian.

Mengembalikan

Dialog | undefined

Dialog jika ditemukan; jika tidak, null.

Diwariskan DariDialogContainer.findDialog

getConverter(string)

function getConverter(_property: string): Converter | ConverterFactory

Parameter

_property

string

Kunci konfigurasi pemilih bersyarah.

Mengembalikan

Pengonversi untuk konfigurasi pemilih.

Diwarisi DariConfigurable.getConverter

getVersion()

String yang dikodekan yang digunakan untuk membantu dalam deteksi perubahan bot pada penyebaran ulang.

function getVersion(): string

Mengembalikan

string

String unik yang seharusnya hanya berubah ketika dialog telah berubah dengan cara yang harus menghidupkan ulang dialog.

Keterangan

Ini default untuk mengembalikan dialog id tetapi dapat ditimpa untuk memberikan logika deteksi perubahan yang lebih tepat. Setiap dialog pada tumpukan yang memiliki perubahan versinya akan mengakibatkan peristiwa versionChanged akan dinaikkan. Jika kejadian ini tidak ditangani oleh bot, kesalahan akan dilemparkan yang mengakibatkan logika handler kesalahan bot dijalankan.

Mengembalikan string kosong akan menonaktifkan pelacakan versi untuk komponen bersama-sama.

Diwariskan Dari Dialog.getVersion

onDialogEvent(DialogContext, DialogEvent)

Dipanggil ketika peristiwa telah dinaikkan, menggunakan DialogContext.emitEvent(), dengan dialog saat ini atau dialog yang dimulai dialog saat ini.

function onDialogEvent(dc: DialogContext, e: DialogEvent): Promise<boolean>

Parameter

dc
DialogContext

Konteks dialog untuk pergantian percakapan saat ini.

e
DialogEvent

Peristiwa yang sedang dinaikkan.

Mengembalikan

Promise<boolean>

True jika peristiwa ditangani oleh dialog saat ini dan gelembung harus berhenti.

Diwarisi DariDialogContainer.onDialogEvent