Botframework-solutions: VAのサブダイアログからスキルを開始したときにユーザーがキャンセルすると、スキルを適切に終了できません

作成日 2020年06月01日  ·  16コメント  ·  ソース: microsoft/botframework-solutions

どのプロジェクトが影響を受けますか?

仮想アシスタント

これは何語ですか?

TypeScript

何が起こるのですか?

ダイアログを開始し、そのダイアログからスキルを開始すると、スタックに正しく登録されません。 ユーザーが「キャンセル」割り込みを使用すると、スキルは会話の終了を受信して​​リセットすることはありません。

この問題を再現するための手順は何ですか?

VAとスキルを作成します。 VAの「オンボーディングダイアログ」からスキ​​ルを開始します。割り込みを使用してスキルをキャンセルし、スキルが会話の終了を受信するかどうかを確認してください

何が起こると思っていましたか?

ログやエラー出力などを共有できますか?

サブダイアログで開始されたスキルからのダイアログスタック
[{id: 'MainDialog'、
状態:{オプション:{}、値:[オブジェクト]、stepIndex:1}}、
{id: 'TextPrompt'、状態:{オプション:[オブジェクト]、状態:{}}}、
{id: 'TransferDialog2'、
状態:{ダイアログ:[オブジェクト]}、
バージョン: '-43530585'}]

メインダイアログから開始するスキルのダイアログスタック
[{id: 'MainDialog'、
状態:{オプション:{}、値:[オブジェクト]、stepIndex:2}}、
{id: 'dlpskill'、状態:{}}]

スクリーンショットや追加のコンテキストはありますか?

Needs Triage Bug

最も参考になるコメント

全てのコメント16件

この問題を報告してくれた@ tomSauret847に感謝します! 更新があり次第、折り返しご連絡いたします😊。

こんにちは@ tomSauret847! この問題を再現しようとして失敗しました。

再現手順に関していくつか質問があります。

  • [email protected]を使用していますか?
  • VAのonboardingDialog中に発話を送信して、スキルをトリガーしていますか?
  • インテントをスキルに転送するためにVAを更新しましたか? もしそうなら、あなたはそれにどのような変更を加えましたか?
  • TransferDialog2とはどういう意味ですか? onboardingDialog同義語ですか?

VAのMainDialogのinterruptDialogメソッドに検証があり、現在のダイアログがスキルに属している場合にのみ別のスキルに切り替わることがわかりました。
onboardingDialogの場合、これはfalseを返すため、スキルサンプルの開始が中断されることはありません。

これが私たちの環境です:

問題を再現するために、次の手順を実行しました。

  1. バーチャルアシスタントとスキルを導入する
  2. バーチャルアシスタントをスキルに接続する
  3. ボットエミュレーターで両方のボットを実行します
  4. VAのonboardingDialogの間にスキルの発話を送信します
  5. onboardingDialogが終了しなかったため、スキルが初期化されませんでした

image

ありがとう!

現在、ボットが顧客の問題を解決できない場合にライブエージェントにエスカレーションできるスキルとしてライブエージェント転送が設定されています(TransferDialog2)。 顧客が正しいチャットキューに転送されることを確認するために、いくつかの検証を実行する必要があります。そのため、オンボーディングダイアログと同様のダイアログにそれを組み込みました。 transferDialogで次のコードを使用してagenttransferスキルを呼び出します。

    const identifiedSkill: IEnhancedBotFrameworkSkill | undefined = this.skillsConfig.skills.get('agenttransfer');
    if (identifiedSkill !== undefined) {
        await this.activeSkillProperty.set(sc.context, identifiedSkill);
        return sc.beginDialog('agenttransfer', skillDialogArgs);

VAはスキルを開始し、すべての顧客メッセージをスキルに転送しますが、顧客が「キャンセルダイアログ」割り込みをトリガーした場合、VAは会話の終了をスキルに送信せず、スキルをクリーンアップして終了できるようにします。 ステップを再現しましたが、再現のスキルをキャンセルしませんでした。 ここで私たちの問題は、使用済みのリソースをクリーンアップして閉じるスキルでEOCを受け取ることができることです。

TypeScriptVAを使用しています
TypeScriptスキル
リポジトリの「次の」ブランチに投稿された変更に基づいて両方を更新し、最新であることを確認しました
スキルはトリガーされ、適切に機能しています。顧客がすべてのアクティブなダイアログからキャンセルすることを選択した場合、スキルはEOCを受信しません。

すべての情報を提供してくれた@ tomSauret847に感謝します😊。
引き続き問題を再現し、更新があればお知らせします。

@ tomSauret847 、問題を正しく理解したことを確認したいと思います。

最後のコメントであなたが言ったことに基づいて、私たちは次のシナリオの再現に取り組みます:

  1. バーチャルアシスタントのサンプルを作成する
  2. スキルサンプルを作成する
  3. VAのonboardingDialog変更して、スキルサンプルを呼び出すようにします。 変更は共有スニペットに基づいて行います。
  4. スキルサンプルが開始されたらキャンセルを送信します
  5. スキルサンプルのキャンセルは失敗するはずです

これはあなたのワークフローがどのように理解されているかです。
image

ありがとう@VictorGrycukこれは私たちが実装しているシナリオの正しいワークフローです。 会話中にスキルを適切に機能させることはできますが、お客様がキャンセルしても、会話の終了を受け取らないため、スキルはリセットされません。

このページは役に立ちましたか?
0 / 5 - 0 評価