DialogSet class

Set correlato di dialoghi che possono chiamare tra loro.

Commenti

Il costruttore per il set di dialoghi deve essere passato a una proprietà di stato che verrà usata per rendere persistente lo stack di dialoghi per il 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);

Il bot può aggiungere dialoghi o richieste al set usando il metodo 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'));

Per interagire con i set di dialoghi, è possibile chiamare createContext() con il TurnContextcorrente. Verrà creata una DialogContext che può essere usata per avviare o continuare l'esecuzione dei dialoghi dei 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');
}

Costruttori

DialogSet(StatePropertyAccessor<DialogState>)

Crea una nuova istanza di DialogSet.

Proprietà

telemetryClient

Impostare il client di telemetria per questo set di dialoghi e applicarlo a tutti i dialoghi correnti. Impostare il client di telemetria per questo set di dialoghi e applicarlo a tutti i dialoghi correnti. Anche le finestre di dialogo future aggiunte al set erediteranno questo client.

Metodi

add<T>(T)

Aggiunge al set una nuova finestra di dialogo o una nuova richiesta.

createContext(TurnContext)

Crea un contesto di dialogo che può essere usato per lavorare con i dialoghi nel set.

find(string)

Trova una finestra di dialogo aggiunta in precedenza al set usando add().

getDialogs()

Ottiene i dialoghi del set.

getVersion()

Restituisce un hash a 32 bit di tutti i valori Dialog.version nel set.

Dettagli costruttore

DialogSet(StatePropertyAccessor<DialogState>)

Crea una nuova istanza di DialogSet.

new DialogSet(dialogState?: StatePropertyAccessor<DialogState>)

Parametri

dialogState

StatePropertyAccessor<DialogState>

(Facoltativo) proprietà di stato usata per rendere persistente lo stack di dialoghi set.

Commenti

Se la proprietà dialogState non viene passata, le chiamate a createContext() restituiranno un errore. Sarà necessario creare un DialogContext per il set manualmente e passare il proprio oggetto di stato per rendere persistente lo stack di dialoghi set:

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

Dettagli proprietà

telemetryClient

Impostare il client di telemetria per questo set di dialoghi e applicarlo a tutti i dialoghi correnti. Impostare il client di telemetria per questo set di dialoghi e applicarlo a tutti i dialoghi correnti. Anche le finestre di dialogo future aggiunte al set erediteranno questo client.

BotTelemetryClient telemetryClient

Valore della proprietà

BotTelemetryClient

BotTelemetryClient da usare per la registrazione.

Dettagli metodo

add<T>(T)

Aggiunge al set una nuova finestra di dialogo o una nuova richiesta.

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

Parametri

dialog

T

Finestra di dialogo o richiesta di aggiunta. Se un oggetto telemetryClient è presente nel set di dialoghi, verrà aggiunto a ogni finestra di dialogo.

Restituisce

this

Finestra di dialogo impostata al termine dell'operazione.

Commenti

Se il Dialog.id aggiunto esiste già nel set, l'ID dei dialoghi verrà aggiornato in modo da includere un suffisso che lo rende univoco. L'aggiunta di 2 dialoghi denominati "duplicate" al set comporta quindi la presenza di un ID "duplicato" e del secondo con ID "duplicate2".

createContext(TurnContext)

Crea un contesto di dialogo che può essere usato per lavorare con i dialoghi nel set.

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

Parametri

context

TurnContext

Contesto per il turno di conversazione corrente con l'utente.

Restituisce

Promise<DialogContext>

Promessa che rappresenta l'operazione asincrona.

find(string)

Trova una finestra di dialogo aggiunta in precedenza al set usando add().

function find(dialogId: string): Dialog | undefined

Parametri

dialogId

string

ID della finestra di dialogo o richiesta di ricerca.

Restituisce

Dialog | undefined

Finestra di dialogo se trovata; in caso contrario non definito.

Commenti

In questo esempio viene trovata una finestra di dialogo denominata "greeting":

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

getDialogs()

Ottiene i dialoghi del set.

function getDialogs(): Dialog[]

Restituisce

Dialog[]

Matrice di Dialog.

getVersion()

Restituisce un hash a 32 bit di tutti i valori Dialog.version nel set.

function getVersion(): string

Restituisce

string

Versione che cambierà quando viene modificata una delle versioni delle finestre di dialogo figlio.

Commenti

Questo hash viene salvato in modo permanente nell'archiviazione dello stato e usato per rilevare le modifiche apportate a un set di dialoghi.