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 TurnContext
corrente. 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
Dialog |
Crea una nuova istanza di DialogSet. |
Proprietà
telemetry |
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. |
create |
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(). |
get |
Ottiene i dialoghi del set. |
get |
Restituisce un hash a 32 bit di tutti i valori |
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()
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.