Bagikan melalui


DialogSet class

Sekumpulan dialog terkait yang semuanya dapat saling memanggil.

Keterangan

Konstruktor untuk kumpulan dialog harus diteruskan properti status yang akan digunakan untuk mempertahankan tumpukan dialog untuk set:

const { ConversationState, MemoryStorage, ActivityTypes } = require('botbuilder');
const { DialogSet, Dialog, DialogTurnStatus } = require('botbuilder-dialogs');

const convoState = new ConversationState(new MemoryStorage());
const dialogState = convoState.createProperty('dialogState');
const dialogs = new DialogSet(dialogState);

Bot dapat menambahkan dialog atau perintah ke set menggunakan metode add():

class GreetingDialog extends Dialog {
    async beginDialog(dc, options) {
        await dc.context.sendActivity(`Hi! I'm a bot.`);
        return await dc.endDialog();
    }
}

dialogs.add(new GreetingDialog('greeting'));

Untuk berinteraksi dengan dialog set, Anda dapat memanggil createContext() dengan TurnContextsaat ini. Itu akan membuat DialogContext yang dapat digunakan untuk memulai atau melanjutkan eksekusi dialog set:

// Create DialogContext for the current turn
const dc = await dialogs.createContext(turnContext);

// Try to continue executing an active multi-turn dialog
const result = await dc.continueDialog();

// Send greeting if no other dialogs active
if (result.status == DialogTurnStatus.empty && dc.context.activity.type == ActivityTypes.Message) {
    await dc.beginDialog('greeting');
}

Konstruktor

DialogSet(StatePropertyAccessor<DialogState>)

Membuat instans DialogSet baru.

Properti

telemetryClient

Atur klien telemetri untuk kumpulan dialog ini dan terapkan ke semua dialog saat ini. Atur klien telemetri untuk kumpulan dialog ini dan terapkan ke semua dialog saat ini. Dialog mendatang yang ditambahkan ke set juga akan mewarisi klien ini.

Metode

add<T>(T)

Menambahkan dialog atau perintah baru ke set.

createContext(TurnContext)

Membuat konteks dialog yang dapat digunakan untuk bekerja dengan dialog dalam set.

find(string)

Menemukan dialog yang sebelumnya ditambahkan ke set menggunakan add().

getDialogs()

Mendapatkan Dialog set.

getVersion()

Mengembalikan hash 32-bit dari semua nilai Dialog.version dalam set.

Detail Konstruktor

DialogSet(StatePropertyAccessor<DialogState>)

Membuat instans DialogSet baru.

new DialogSet(dialogState?: StatePropertyAccessor<DialogState>)

Parameter

dialogState

StatePropertyAccessor<DialogState>

Properti status (Opsional) yang digunakan untuk mempertahankan tumpukan dialog set.

Keterangan

Jika properti dialogState tidak diteruskan, panggilan ke createContext() akan mengembalikan kesalahan. Anda harus membuat DialogContext untuk set secara manual dan meneruskan objek status Anda sendiri untuk mempertahankan tumpukan dialog set:

const dc = new DialogContext(dialogs, turnContext, state);

Detail Properti

telemetryClient

Atur klien telemetri untuk kumpulan dialog ini dan terapkan ke semua dialog saat ini. Atur klien telemetri untuk kumpulan dialog ini dan terapkan ke semua dialog saat ini. Dialog mendatang yang ditambahkan ke set juga akan mewarisi klien ini.

BotTelemetryClient telemetryClient

Nilai Properti

BotTelemetryClient

BotTelemetryClient digunakan untuk pengelogan.

Detail Metode

add<T>(T)

Menambahkan dialog atau perintah baru ke set.

function add<T>(dialog: T): this

Parameter

dialog

T

Dialog atau perintah untuk ditambahkan. Jika telemetriClient ada di kumpulan dialog, telemetri akan ditambahkan ke setiap dialog.

Mengembalikan

this

Dialog yang diatur setelah operasi selesai.

Keterangan

Jika Dialog.id yang ditambahkan sudah ada dalam set, id dialog akan diperbarui untuk menyertakan akhiran yang membuatnya unik. Jadi menambahkan 2 dialog bernama "duplikat" ke set akan menghasilkan yang pertama memiliki id "duplikat" dan yang kedua memiliki id "duplikat2".

createContext(TurnContext)

Membuat konteks dialog yang dapat digunakan untuk bekerja dengan dialog dalam set.

function createContext(context: TurnContext): Promise<DialogContext>

Parameter

context

TurnContext

Konteks untuk pergantian percakapan saat ini dengan pengguna.

Mengembalikan

Promise<DialogContext>

Janji yang mewakili operasi asinkron.

find(string)

Menemukan dialog yang sebelumnya ditambahkan ke set menggunakan add().

function find(dialogId: string): Dialog | undefined

Parameter

dialogId

string

ID dialog atau perintah untuk mencari.

Mengembalikan

Dialog | undefined

Dialog jika ditemukan; jika tidak ditentukan.

Keterangan

Contoh ini menemukan dialog bernama "salam":

const dialog = dialogs.find('greeting');

getDialogs()

Mendapatkan Dialog set.

function getDialogs(): Dialog[]

Mengembalikan

Dialog[]

Array Dialog.

getVersion()

Mengembalikan hash 32-bit dari semua nilai Dialog.version dalam set.

function getVersion(): string

Mengembalikan

string

Versi yang akan berubah ketika salah satu versi dialog turunan berubah.

Keterangan

Hash ini bertahan pada penyimpanan status dan digunakan untuk mendeteksi perubahan pada kumpulan dialog.