次の方法で共有


WaterfallDialog class

ウォーターフォールに基づくカスタム ダイアログを作成できます。

Extends

コンストラクター

WaterfallDialog(IDialogWaterfallStep | IDialogWaterfallStep[])

新しいウォーターフォール ダイアログを作成します。

メソッド

addDialogTrigger(ActionSet, string)

ライブラリ内のダイアログごとに 1 回呼び出され、ダイアログに triggerAction() をライブラリ グローバル アクション セットに追加できます。 これらのトリガーは、トリガー条件が満たされたときにダイアログを開始する beginDialogAction() にマップされます。

begin<T>(Session, T)

新しいダイアログ セッションが開始されるときに呼び出されます。

beginDialogAction(string, string, IBeginDialogActionOptions)

トリガーされるたびに別のダイアログを開始するアクションをダイアログにバインドします。 新しいダイアログはスタックにプッシュされるため、現在のタスクは自動的に終了しません。 現在のタスクは、新しいダイアログが終了すると続行されます。 組み込みプロンプトは、これが発生するとユーザーに自動的に再プロンプトを表示しますが、組み込みプロンプトを呼び出すときに promptAfterAction フラグを設定することで、その動作を無効にすることができます。

cancelAction(string, TextOrMessageType, ICancelActionOptions)

ダイアログがトリガーされるたびにダイアログを取り消すアクションをダイアログにバインドします。 取り消されると、ダイアログの親は、キャンセルされたことを示す 再開 コード 再開されます。

clone(ActionSet)

既存の ActionSet の複製を返します。

createHandler(IDialogWaterfallStep[])

ウォーターフォールを駆動できる関数を作成します。 関数が呼び出されるたびに、ウォーターフォールの次のステップを呼び出すことによってウォーターフォールが進みます。 この関数は、session.dialogData を使用してウォーターフォールの現在のステップを保持します。 ウォーターフォールを前方に移動するには、ハンドラーに渡される args パラメーターに args.resumed = builder.ResumeReason.completedが必要です。 ウォーターフォールの終わりに達すると、渡された引数を返 session.endDialogWithResult(args) 自動的に呼び出されます。 args パラメーターに resumed フィールドがない場合、ウォーターフォールは最初のステップの呼び出しから始めるだけです。

customAction(IDialogActionOptions)

トリガーされたときに渡された onSelectAction ハンドラー 呼び出すカスタム アクションをダイアログにバインドします。

dialogInterrupted(Session, string, any)

ルート ダイアログが別のダイアログによって中断されているときに呼び出されます。 これにより、中断されているダイアログは、スタックから削除される前にカスタム ロジックを実行できます。 ダイアログ自体は、ダイアログ スタックをクリアし、新しいダイアログを開始する役割を担います。

dialogResumed<T>(Session, IDialogResult<T>)

子ダイアログが終了し、現在のダイアログが再開されています。

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

トリガーされたときにユーザーとの会話を終了するアクションをバインドします。

findActionRoutes(IRecognizeDialogContext, (err: Error, results: IRouteResult[]) => void)

Library.findRoutes() スタック上の各ダイアログの呼び出し中に呼び出され、ダイアログ アクションのいずれかがユーザーの発話によってトリガーされるかどうかを判断します。

onBeforeStep((session: Session, step: number, args: any, next: (step: number, args: any) => void) => void)

ウォーターフォールのすべてのステップの前に呼び出されるハンドラーを登録します。 関数 next() ハンドラーは、チェーン内の次のハンドラーまたはウォーターフォール ステップ自体を実行します。 このハンドラーを使用すると、開発者はステップをスキップし、次の手順に渡される引数を処理できます。 複数のハンドラーを登録でき、登録されているハンドラーはチェーン内の他のハンドラーの前に実行されます。

recognize(IRecognizeDialogContext, (err: Error, result: IRecognizeResult) => void)

ユーザーの発話を解析し、0.0 から 1.0 のスコアを割り当てます。これは、ダイアログがユーザーの発話を理解したかどうかの確信度を示します。 このメソッドは、スタック上のアクティブなダイアログに対して常に呼び出されます。 スコア 1.0 は完全一致を示し、それ以上の認識を終了します。 スコアが 1.0 未満の場合、スタック上のすべてのダイアログには、recognizeAction() メソッドが呼び出され、ダイアログにバインドされた名前付きアクションがユーザーの発話とより適切に一致するかどうかを確認します。 ボット レベルで登録されたグローバル アクションも評価されます。 ダイアログのスコアが高い場合、バインドされたアクションは、recognize() 呼び出しから返された結果オブジェクトと共に replyReceived() メソッド ダイアログが呼び出されます。 これにより、ダイアログは認識フェーズ中に収集された追加のデータを、処理のために replyReceived() メソッドに渡すことができます。

スコアが高いアクションがある場合、ダイアログの replyReceived() メソッドの代わりにアクションが呼び出されます。 ダイアログはスタックに残り、アクションが新しいダイアログを呼び出した場合に再開される可能性があるため、ダイアログは dialogResumed()への予期しない呼び出し 準備する必要があります。

reloadAction(string, TextOrMessageType, IBeginDialogActionOptions)

ダイアログがトリガーされるたびにダイアログが再読み込みされるアクションをダイアログにバインドします。 これは、"やり直し" のようなユーザーの発話を処理するロジックを実装する場合に便利です。

replyReceived(Session)

ユーザーから受信したメッセージを処理します。 ダイアログ システムによって呼び出されます。

selectActionRoute(Session, IRouteResult)

発話の信頼度スコアが最も高かったルートを選択します。

triggerAction(ITriggerActionOptions)

アクションをダイアログにバインドします。このアクションは、トリガーされるたびにアクティブなダイアログになります。 既定の動作では、スタックをクリアし、スタックのルートでダイアログを開始することで、既存のダイアログを相互運用します。 中断中のダイアログでは、トリガー アクション オプションに onInterrupted ハンドラーのカスタム を追加することで、この中断をインターセプトできます。 さらに、トリガー アクション オプションにカスタム onSelectAction ハンドラーを提供することで、トリガーされるダイアログの起動方法をカスタマイズできます。

コンストラクターの詳細

WaterfallDialog(IDialogWaterfallStep | IDialogWaterfallStep[])

新しいウォーターフォール ダイアログを作成します。

new WaterfallDialog(steps: IDialogWaterfallStep | IDialogWaterfallStep[])

パラメーター

steps

IDialogWaterfallStep | IDialogWaterfallStep[]

順番に呼び出す必要がある関数のシーケンス。

メソッドの詳細

addDialogTrigger(ActionSet, string)

ライブラリ内のダイアログごとに 1 回呼び出され、ダイアログに triggerAction() をライブラリ グローバル アクション セットに追加できます。 これらのトリガーは、トリガー条件が満たされたときにダイアログを開始する beginDialogAction() にマップされます。

function addDialogTrigger(actions: ActionSet, dialogId: string)

パラメーター

actions
ActionSet

ライブラリ グローバル アクション セット。

dialogId

string

トリガーするダイアログの完全修飾 ID。

begin<T>(Session, T)

新しいダイアログ セッションが開始されるときに呼び出されます。

function begin<T>(session: Session, args?: T)

パラメーター

session
Session

現在の会話のセッション オブジェクト。

args

T

(省略可能) その親によってダイアログに渡される引数。

beginDialogAction(string, string, IBeginDialogActionOptions)

トリガーされるたびに別のダイアログを開始するアクションをダイアログにバインドします。 新しいダイアログはスタックにプッシュされるため、現在のタスクは自動的に終了しません。 現在のタスクは、新しいダイアログが終了すると続行されます。 組み込みプロンプトは、これが発生するとユーザーに自動的に再プロンプトを表示しますが、組み込みプロンプトを呼び出すときに promptAfterAction フラグを設定することで、その動作を無効にすることができます。

function beginDialogAction(name: string, id: string, options?: IBeginDialogActionOptions)

パラメーター

name

string

アクションを割り当てる一意の名前。

id

string

開始するダイアログの ID。

options
IBeginDialogActionOptions

(省略可能) アクションの構成に使用されるオプション。 一致する が指定されている場合、アクションはユーザーがアクションをトリガーする単語または語句を読み上げるのをリッスンします。それ以外の場合は、アクションをトリガーする CardAction.dialogAction() を使用して、アクションをボタンにバインドする必要があります。 dialogArgs を使用して、開始するダイアログに追加のパラメーターを渡すこともできます。

戻り値

cancelAction(string, TextOrMessageType, ICancelActionOptions)

ダイアログがトリガーされるたびにダイアログを取り消すアクションをダイアログにバインドします。 取り消されると、ダイアログの親は、キャンセルされたことを示す 再開 コード 再開されます。

function cancelAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)

パラメーター

name

string

アクションを割り当てる一意の名前。

msg
TextOrMessageType

(省略可能) ダイアログをキャンセルする前にユーザーを送信するメッセージ。

options
ICancelActionOptions

(省略可能) アクションの構成に使用されるオプション。 一致する が指定されている場合、アクションはユーザーがアクションをトリガーする単語または語句を読み上げるのをリッスンします。それ以外の場合は、アクションをトリガーする CardAction.dialogAction() を使用して、アクションをボタンにバインドする必要があります。

戻り値

clone(ActionSet)

既存の ActionSet の複製を返します。

function clone(copyTo?: ActionSet)

パラメーター

copyTo
ActionSet

(省略可能) 現在のオブジェクトのコピー先のインスタンス。 見つからない場合は、新しいインスタンスが作成されます。

戻り値

createHandler(IDialogWaterfallStep[])

ウォーターフォールを駆動できる関数を作成します。 関数が呼び出されるたびに、ウォーターフォールの次のステップを呼び出すことによってウォーターフォールが進みます。 この関数は、session.dialogData を使用してウォーターフォールの現在のステップを保持します。 ウォーターフォールを前方に移動するには、ハンドラーに渡される args パラメーターに args.resumed = builder.ResumeReason.completedが必要です。 ウォーターフォールの終わりに達すると、渡された引数を返 session.endDialogWithResult(args) 自動的に呼び出されます。 args パラメーターに resumed フィールドがない場合、ウォーターフォールは最初のステップの呼び出しから始めるだけです。

static function createHandler(steps: IDialogWaterfallStep[])

パラメーター

steps

IDialogWaterfallStep[]

実行するウォーターフォール ステップ。

戻り値

(session: Session, args?: any) => void

customAction(IDialogActionOptions)

トリガーされたときに渡された onSelectAction ハンドラー 呼び出すカスタム アクションをダイアログにバインドします。

function customAction(options: IDialogActionOptions)

パラメーター

options
IDialogActionOptions

アクションの構成に使用するオプション。 一致する が指定されている場合、アクションはユーザーがアクションをトリガーする単語または語句を読み上げるのをリッスンします。 カスタム 照合ロジックは、onFindActionを使用して提供できます。

戻り値

dialogInterrupted(Session, string, any)

ルート ダイアログが別のダイアログによって中断されているときに呼び出されます。 これにより、中断されているダイアログは、スタックから削除される前にカスタム ロジックを実行できます。 ダイアログ自体は、ダイアログ スタックをクリアし、新しいダイアログを開始する役割を担います。

function dialogInterrupted(session: Session, dialogId: string, dialogArgs: any)

パラメーター

session
Session

現在の会話のセッション オブジェクト。

dialogId

string

開始する必要があるダイアログの ID。

dialogArgs

any

新しいダイアログに渡す引数。

dialogResumed<T>(Session, IDialogResult<T>)

子ダイアログが終了し、現在のダイアログが再開されています。

function dialogResumed<T>(session: Session, result: IDialogResult<T>)

パラメーター

session
Session

現在の会話のセッション オブジェクト。

result

IDialogResult<T>

子ダイアログによって返される結果。

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

トリガーされたときにユーザーとの会話を終了するアクションをバインドします。

function endConversationAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)

パラメーター

name

string

アクションを割り当てる一意の名前。

msg
TextOrMessageType

(省略可能) 会話を終了する前にユーザーを送信するメッセージ。

options
ICancelActionOptions

(省略可能) アクションの構成に使用されるオプション。 一致する が指定されている場合、アクションはユーザーがアクションをトリガーする単語または語句を読み上げるのをリッスンします。それ以外の場合は、アクションをトリガーする CardAction.dialogAction() を使用して、アクションをボタンにバインドする必要があります。

戻り値

findActionRoutes(IRecognizeDialogContext, (err: Error, results: IRouteResult[]) => void)

Library.findRoutes() スタック上の各ダイアログの呼び出し中に呼び出され、ダイアログ アクションのいずれかがユーザーの発話によってトリガーされるかどうかを判断します。

function findActionRoutes(context: IRecognizeDialogContext, callback: (err: Error, results: IRouteResult[]) => void)

パラメーター

context
IRecognizeDialogContext

受信メッセージのコンテキストと、評価されたダイアログの dialogData

callback

(err: Error, results: IRouteResult[]) => void

上位候補ルートを使用して呼び出す関数。

onBeforeStep((session: Session, step: number, args: any, next: (step: number, args: any) => void) => void)

ウォーターフォールのすべてのステップの前に呼び出されるハンドラーを登録します。 関数 next() ハンドラーは、チェーン内の次のハンドラーまたはウォーターフォール ステップ自体を実行します。 このハンドラーを使用すると、開発者はステップをスキップし、次の手順に渡される引数を処理できます。 複数のハンドラーを登録でき、登録されているハンドラーはチェーン内の他のハンドラーの前に実行されます。

function onBeforeStep(handler: (session: Session, step: number, args: any, next: (step: number, args: any) => void) => void)

パラメーター

handler

(session: Session, step: number, args: any, next: (step: number, args: any) => void) => void

各ウォーターフォール ステップ間で呼び出す関数。

戻り値

recognize(IRecognizeDialogContext, (err: Error, result: IRecognizeResult) => void)

ユーザーの発話を解析し、0.0 から 1.0 のスコアを割り当てます。これは、ダイアログがユーザーの発話を理解したかどうかの確信度を示します。 このメソッドは、スタック上のアクティブなダイアログに対して常に呼び出されます。 スコア 1.0 は完全一致を示し、それ以上の認識を終了します。 スコアが 1.0 未満の場合、スタック上のすべてのダイアログには、recognizeAction() メソッドが呼び出され、ダイアログにバインドされた名前付きアクションがユーザーの発話とより適切に一致するかどうかを確認します。 ボット レベルで登録されたグローバル アクションも評価されます。 ダイアログのスコアが高い場合、バインドされたアクションは、recognize() 呼び出しから返された結果オブジェクトと共に replyReceived() メソッド ダイアログが呼び出されます。 これにより、ダイアログは認識フェーズ中に収集された追加のデータを、処理のために replyReceived() メソッドに渡すことができます。

スコアが高いアクションがある場合、ダイアログの replyReceived() メソッドの代わりにアクションが呼び出されます。 ダイアログはスタックに残り、アクションが新しいダイアログを呼び出した場合に再開される可能性があるため、ダイアログは dialogResumed()への予期しない呼び出し 準備する必要があります。

function recognize(context: IRecognizeDialogContext, callback: (err: Error, result: IRecognizeResult) => void)

パラメーター

context
IRecognizeDialogContext

要求のコンテキスト。

callback

(err: Error, result: IRecognizeResult) => void

認識結果を使用して呼び出す関数。

reloadAction(string, TextOrMessageType, IBeginDialogActionOptions)

ダイアログがトリガーされるたびにダイアログが再読み込みされるアクションをダイアログにバインドします。 これは、"やり直し" のようなユーザーの発話を処理するロジックを実装する場合に便利です。

function reloadAction(name: string, msg?: TextOrMessageType, options?: IBeginDialogActionOptions)

パラメーター

name

string

アクションを割り当てる一意の名前。

msg
TextOrMessageType

(省略可能) ダイアログを再読み込みする前にユーザーを送信するメッセージ。

options
IBeginDialogActionOptions

(省略可能) アクションの構成に使用されるオプション。 一致する が指定されている場合、アクションはユーザーがアクションをトリガーする単語または語句を読み上げるのをリッスンします。それ以外の場合は、アクションをトリガーする CardAction.dialogAction() を使用して、アクションをボタンにバインドする必要があります。 dialogArgs を使用して、再読み込み時に追加のパラメーターをダイアログに渡すこともできます。

戻り値

replyReceived(Session)

ユーザーから受信したメッセージを処理します。 ダイアログ システムによって呼び出されます。

function replyReceived(session: Session)

パラメーター

session
Session

現在の会話のセッション オブジェクト。

selectActionRoute(Session, IRouteResult)

発話の信頼度スコアが最も高かったルートを選択します。

function selectActionRoute(session: Session, route: IRouteResult)

パラメーター

session
Session

現在の会話のセッション オブジェクト。

route
IRouteResult

findActionRoutes()の呼び出しから返された結果。

triggerAction(ITriggerActionOptions)

アクションをダイアログにバインドします。このアクションは、トリガーされるたびにアクティブなダイアログになります。 既定の動作では、スタックをクリアし、スタックのルートでダイアログを開始することで、既存のダイアログを相互運用します。 中断中のダイアログでは、トリガー アクション オプションに onInterrupted ハンドラーのカスタム を追加することで、この中断をインターセプトできます。 さらに、トリガー アクション オプションにカスタム onSelectAction ハンドラーを提供することで、トリガーされるダイアログの起動方法をカスタマイズできます。

function triggerAction(options: ITriggerActionOptions)

パラメーター

options
ITriggerActionOptions

アクションの構成に使用されるオプション。

戻り値