ボットフレームワークv4ユーザーがプロンプトに応答するのをダイアログ内で待機する方法

マティックカヴァレリ

メインプロンプト内で、ユーザーに入力(ChoicePromptを求める子ダイアログを呼び出し、その結果を変数に保存して、その結果を処理したいと思います。

サンプルコードでは、実際に発生するのは、子ダイアログが起動されますが、メインダイアログのコードは、子ダイアログが終了する前(ユーザー入力の前)に続行されることです。

私が達成したいことのサンプルコード:

private async Task<DialogTurnResult> IntentCheckStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken)
{
    LuisResult = await InDocRecognizer.RecognizeAsync<InDocChatbotService>(stepContext.Context, cancellationToken);
    var topIntent = LuisResult.TopIntent().intent;
    if (LuisResult.TopIntent().score < 0.30)
    {
        topIntent = InDocChatbotService.Intent.None;
    }
    // if first and second option is close in score prompt user choice between them
    else if (LuisResult.Intents.ElementAt(0).Value.Score - LuisResult.Intents.ElementAt(1).Value.Score < 0.20)
    {
        var topIntent = await stepContext.BeginDialogAsync(nameof(ChooseIntentDialog), LuisResult, cancellationToken);
        // Code in this dialog continues before user gives input to child dialog "ChooseIntentDialog"
    }

    // DO MORE STUFF WITH VARIABLE topIntent
}        

私には回避策がありますが、それは醜く、コードスタイルにブレーキをかけます。私のやり方は、子ダイアログを返し、ChooseIntentDialogメインダイアログ内の別のウォーターフォールステップから処理することです。

そのウォーターフォールステップに複数の変数を運ぶ必要があり、それは完全に不要に思えるので、これは悪いことです。ウォーターフォールステップに子ダイアログを待機させて、別のウォーターフォールステップでそれを行うことなく結果を返すことができれば。

これは可能ですか?そして、そうでない場合、私のソリューションはコード的に非常に効率的ではないように思われるので、代替手段は何ですか。

ビロバートン

ウォーターフォールダイアログのステップの途中に戻ることはできません。あなたの場合はreturn await stepContext.BeginDialogAsync(nameof(ChooseIntentDialog)...)、その後に選択した値のバックを渡すreturn await stepContext.endDialogAsync(topIntent)選択がなされる必要がある場合、またはメインダイアログからは、ちょうど使用しreturn await stepContext.next(topIntent)、それがない場合、あなたはのトップ意思へのアクセスがありますstepContext.resultあなたの次のステップでは。// DO MORE STUFF WITH VARIABLE topIntent次のステップに進むだけです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

ボットフレームワーク:中断後にプロンプト応答が再プロンプトされるのを待っているウォーターフォールダイアログを停止するにはどうすればよいですか?

V4ボットフレームワークのダイアログの外で状態プロパティアクセサーを読み取る方法

ボットフレームワーク-ユーザーがウォーターフォールダイアログでヒーローカードアクションをクリックするのを待つ

Botframework V4:ユーザーが選択プロンプトボタンをクリックする代わりに応答を入力する

WaterfallStepダイアログからのアダプティブカード応答MSボットフレームワークv4

ボットフレームワークv4でActivityHandler.OnMessageActivityAsyncからウォーターフォールダイアログを開始する方法

ボットフレームワークv4でウェルカムメッセージとしてダイアログを設定する方法

ボットフレームワークv4。ウォーターフォールステップダイアログで他の場合に値を取得して次のステップに渡す方法は?

すべてのユーザーがグーグルスクリプトを介してプログラムでグーグルフォームに応答するまで待つ方法は?

ユーザーとボットの応答をボットフレームワークに保存する

ボットフレームワークv4の最初のダイアログの最初のステップをスキップして、最初のダイアログのウォーターフォールのステップを他のダイアログに呼び出します

ボットフレームワークダイアログでプロンプトから結果を取得する方法

PythonでMicrosoftボットフレームワークを使用してユーザーにプロアクティブな通知を送信する方法は?

ボットフレームワークv4のOnturnAsyncでタスク/フェッチに応答する方法

ウォーターフォールダイアログで添付ファイルを受け入れ、ボットフレームワークv4にローカルに保存する

ボットフレームワーク(v4)-カスタムプロンプト検証から状態を取得する方法

ボットフレームワークV4でのダイアログ継続の問題

別のダイアログでアクセスするためのユーザー情報を保存する方法-ボットフレームワークV3

ボットフレームワークがダイアログの状態を台無しにする

ユーザーがフラッターでボタンをクリックした後にアラートダイアログを表示する方法

IDログインページをスタートアップページとして作成し、ユーザーがすでにBlazor Serverにログインしている場合は、ユーザーをダッシュボードにリダイレクトする方法

R内の応答ヘッダーをプログラムでスクレイピングする

ボットフレームワークを使用してユーザーにファイルをアップロードする

PromptDialog.Choiceダイアログをループする(ボットフレームワーク)

ロボットフレームワークでマルチレベルのテストセットアップ/ティアダウンを設定する方法

ボットフレームワークがダイアログループでスタックしている

ボットフレームワークを使用してルートダイアログにポップする方法は?

Vaadin14アップロード-ユーザーがファイル選択ダイアログでキャンセルボタンをクリックしたときにイベントをキャッチする方法

ボットフレームワークバージョン4javascriptでcardImageインターフェースのtapプロパティを使用する方法

TOP 一覧

  1. 1

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  2. 2

    CSSのみを使用して三角形のアニメーションを作成する方法

  3. 3

    パンダは異なる名前の列に追加します

  4. 4

    PictureBoxで画像のブレンドを無効にする

  5. 5

    PyCharmリモートインタープリターはプロジェクトタブにサイトパッケージのコンテンツを表示しません

  6. 6

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  7. 7

    ドロップダウンリストで選択したアイテムのQComboBoxスタイル

  8. 8

    Python / SciPyのピーク検出アルゴリズム

  9. 9

    別のホストからTomcat Managerアプリにアクセスする

  10. 10

    Windows 10でのUSB入力デバイスの挿入/取り外しの検出

  11. 11

    useRefに反応してコンポーネントをスクロールして表示する

  12. 12

    ZScalerと証明書の問題により、Dockerを使用できません

  13. 13

    初期化時にextern / static変数のタイプを指定する必要があるのはなぜですか?

  14. 14

    goormIDEは、ターミナルがロードするデフォルトプロジェクトを変更します

  15. 15

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  16. 16

    java.lang.NoClassDefFoundError:com / sun / istack / tools / DefaultAuthenticator $ Receiver

  17. 17

    Flutterにファイルピッカープラグインを追加するにはどうすればよいですか?

  18. 18

    Paw でリクエストを実行すると、認証環境変数が置き換えられる

  19. 19

    Luaの文字列から特定の特殊文字を削除するにはどうすればよいですか?

  20. 20

    Chromeウェブアプリのウェブビューの高さの問題

  21. 21

    Material-UIでTextFieldエラーの色を条件付きでオーバーライドする方法

ホットタグ

アーカイブ