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');
}
コンストラクター
Dialog |
新しい DialogSet インスタンスを作成します。 |
プロパティ
telemetry |
このダイアログ セットのテレメトリ クライアントを設定し、現在のすべてのダイアログに適用します。 このダイアログ セットのテレメトリ クライアントを設定し、現在のすべてのダイアログに適用します。 セットに追加された今後のダイアログも、このクライアントを継承します。 |
メソッド
add<T>(T) | 新しいダイアログまたはプロンプトをセットに追加します。 |
create |
セット内のダイアログを操作するために使用できるダイアログ コンテキストを作成します。 |
find(string) | add() を使用して、以前にセットに追加されたダイアログを検索します。 |
get |
セットのダイアログを取得します。 |
get |
セット内のすべての値の 32 ビット ハッシュを |
コンストラクターの詳細
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()
getVersion()
セット内のすべての値の 32 ビット ハッシュを Dialog.version
返します。
function getVersion(): string
戻り値
string
子ダイアログのバージョンが変更されたときに変更されるバージョン。
注釈
このハッシュは状態ストレージに永続化され、ダイアログ セットへの変更を検出するために使用されます。