DialogSet class

すべてのユーザーが相互に呼び出すことができるダイアログの関連セット。

注釈

ダイアログ セットのコンストラクターには、セットのダイアログ スタックを保持するために使用される state プロパティを渡す必要があります。

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);

ボットは、 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'));

セット ダイアログを操作するには、現在TurnContextの を使用して createContext() を呼び出すことができます。 セット ダイアログの実行を DialogContext 開始または続行するために使用できる が作成されます。

// 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');
}

コンストラクター

DialogSet(StatePropertyAccessor<DialogState>)

新しい DialogSet インスタンスを作成します。

プロパティ

telemetryClient

このダイアログ セットのテレメトリ クライアントを設定し、現在のすべてのダイアログに適用します。 このダイアログ セットのテレメトリ クライアントを設定し、現在のすべてのダイアログに適用します。 セットに追加された今後のダイアログも、このクライアントを継承します。

メソッド

add<T>(T)

新しいダイアログまたはプロンプトをセットに追加します。

createContext(TurnContext)

セット内のダイアログを操作するために使用できるダイアログ コンテキストを作成します。

find(string)

add() を使用して、以前にセットに追加されたダイアログを検索します。

getDialogs()

セットのダイアログを取得します。

getVersion()

セット内のすべての値の 32 ビット ハッシュを Dialog.version 返します。

コンストラクターの詳細

DialogSet(StatePropertyAccessor<DialogState>)

新しい DialogSet インスタンスを作成します。

new DialogSet(dialogState?: StatePropertyAccessor<DialogState>)

パラメーター

dialogState

StatePropertyAccessor<DialogState>

(省略可能) sets ダイアログ スタックを保持するために使用される state プロパティ。

注釈

プロパティが dialogState 渡されない場合、 createContext() を呼び出すとエラーが返されます。 セットの を手動で作成 DialogContext し、セット ダイアログ スタックを保持するために独自の状態オブジェクトを渡す必要があります。

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

プロパティの詳細

telemetryClient

このダイアログ セットのテレメトリ クライアントを設定し、現在のすべてのダイアログに適用します。 このダイアログ セットのテレメトリ クライアントを設定し、現在のすべてのダイアログに適用します。 セットに追加された今後のダイアログも、このクライアントを継承します。

BotTelemetryClient telemetryClient

プロパティ値

BotTelemetryClient

ログ記録に使用する BotTelemetryClient

メソッドの詳細

add<T>(T)

新しいダイアログまたはプロンプトをセットに追加します。

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

パラメーター

dialog

T

追加するダイアログまたはプロンプト。 ダイアログ セットに telemetryClient が存在する場合は、各ダイアログに追加されます。

戻り値

this

操作が完了した後のダイアログ セット。

注釈

追加されている が Dialog.id 既にセットに存在する場合は、ダイアログ ID が更新され、一意のサフィックスが含まれます。 そのため、セットに "duplicate" という名前の 2 つのダイアログを追加すると、最初のダイアログの ID が "duplicate" になり、2 番目のダイアログの ID が "duplicate2" になります。

createContext(TurnContext)

セット内のダイアログを操作するために使用できるダイアログ コンテキストを作成します。

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

パラメーター

context

TurnContext

ユーザーとの会話の現在のターンのコンテキスト。

戻り値

Promise<DialogContext>

非同期操作を表す promise。

find(string)

add() を使用して、以前にセットに追加されたダイアログを検索します。

function find(dialogId: string): Dialog | undefined

パラメーター

dialogId

string

検索するダイアログまたはプロンプトの ID。

戻り値

Dialog | undefined

見つかった場合のダイアログ。それ以外の場合は未定義です。

注釈

次の使用例は、"greeting" という名前のダイアログを検索します。

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

getDialogs()

セットのダイアログを取得します。

function getDialogs(): Dialog[]

戻り値

Dialog[]

Dialog の配列。

getVersion()

セット内のすべての値の 32 ビット ハッシュを Dialog.version 返します。

function getVersion(): string

戻り値

string

子ダイアログのバージョンが変更されたときに変更されるバージョン。

注釈

このハッシュは状態ストレージに永続化され、ダイアログ セットへの変更を検出するために使用されます。