次の方法で共有


SimpleDialog class

単純なクロージャに基づくカスタム ダイアログを作成できます。 これは、動的な会話フローが必要な場合や、ウォーターフォールの使用にあまり適していない状況がある場合に便利です。 留意すべき点は次のとおりです。

  • ダイアログ クロージャは、テストが必要になる可能性がある 2 つの異なるコンテキストで呼び出すことができます。 ユーザーがダイアログにメッセージを送信すると、予期したとおりに呼び出されますが、クロージャから別のプロンプトまたはダイアログを呼び出すと、プロンプト/ダイアログの結果で 2 回目に呼び出されます。 通常、この 2 番目のケースをテストするには、args.resumed プロパティの存在を確認します。 簡単にできる無限ループに身を乗り出さないようにすることが重要です。
  • ウォーターフォールとは異なり、ダイアログは自動的に終了しません。 session.endDialog()を呼び出すまで、アクティブなダイアログ 残ります。
Extends

コンストラクター

SimpleDialog((session: Session, args?: any | IDialogResult<any>) => void)

単純なクロージャに基づいて新しいカスタム ダイアログを作成します。

メソッド

addDialogTrigger(ActionSet, string)

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

begin<T>(Session, T)

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

beginDialogAction(string, string, IBeginDialogActionOptions)

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

cancelAction(string, TextOrMessageType, ICancelActionOptions)

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

clone(ActionSet)

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

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

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 ハンドラーを提供することで、トリガーされるダイアログの起動方法をカスタマイズできます。

コンストラクターの詳細

SimpleDialog((session: Session, args?: any | IDialogResult<any>) => void)

単純なクロージャに基づいて新しいカスタム ダイアログを作成します。

new SimpleDialog(handler: (session: Session, args?: any | IDialogResult<any>) => void)

パラメーター

handler

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

ダイアログの関数クロージャ。

メソッドの詳細

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

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

戻り値

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

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

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

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

戻り値