Botframework-solutions: QnAMakerDialogは異なる言語用に作成されていません

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

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

バーチャルアシスタントとスキル

これは何語ですか?

Typescript

何が起こるのですか?

QnAMakerDialogが特定の言語(例:DE)で作成されると、言語を変更したり、別のユーザーが別の言語(例:EN)を使用したりしても、常にその言語が解決されます。

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

ユーザー1 :ボットに発話を送信します(DE);
ボット:ボットは発話をQnAインテントとして解決し、ダイアログのIDとしてknowledgebaseIdを使用して新しいQnADialogを作成します。

`` private registerQnADialog(knowledgebaseId: string, cognitiveModels: ICognitiveModelSet, locale: string): void { const qnaEndpoint: QnAMakerEndpoint | undefined = cognitiveModels.qnaConfiguration.get(knowledgebaseId); if (qnaEndpoint == undefined){ throw new Error( IDのQnAMakerナレッジベース構成が見つかりませんでした:$ {knowledgebaseId} .`);
}

    if (this.dialogs.find(knowledgebaseId) == undefined) {
        const qnaDialog: QnAMakerDialog = new QnAMakerDialog(
            qnaEndpoint.knowledgeBaseId,
            qnaEndpoint.endpointKey,
            // The following line is a workaround until the method getQnAClient of QnAMakerDialog is fixed
            // as per issue https://github.com/microsoft/botbuilder-js/issues/1885
            new URL(qnaEndpoint.host).hostname.split('.')[0],
            this.templateEngine.generateActivityForLocale('UnsupportedMessage', locale) as Activity,
            // Before, instead of 'undefined' a '0.3' value was used in the following line
            undefined,
            this.templateEngine.generateActivityForLocale('QnaMakerAdaptiveLearningCardTitle', locale).text,
            this.templateEngine.generateActivityForLocale('QnaMakerNoMatchText', locale).text
        );

        qnaDialog.id = knowledgebaseId;

        this.addDialog(qnaDialog);
    }
}

`` `

ボット:ユーザー1のロケール(DE)でユーザー1にQnA回答を送信します
ユーザー2 :ボットに発話を送信します(EN);
ボット:ボットは発話をQnAインテント(ユーザー1が送信したものと同じ)として解決します。同じknowledgebaseIdを持つ1つのダイアログがすでに存在するため、新しいQnaMakerDialogは作成されません。
ボット:ボットは(ユーザー1の反復から追加された)QnAダイアログを再度開始し、最初のユーザーのナレッジベース(DE)から回答を取得します。
ボット:ユーザー1のロケールでユーザー2にメッセージを送信します。

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

別のQnAMakerDialogは、適切な言語と適切なナレッジベースIDで作成されます。

Bot Services Kobuk bug customer-replied-to customer-reported in-progress

最も参考になるコメント

こんにちは@ Batta32

あなたのサポートに感謝します、私があなたのブランチから統合した新しいボットソリューションライブラリで問題が解決されたようです:)いつリリースするかについて大まかな見積もりはありますか?

全てのコメント22件

@ tommyJimmy87に感謝します。 依存性注入の実装に関連する更新があり次第、ご連絡いたします。

こんにちは@ tommyJimmy87 、ボットに依存性注入を組み込んだこの問題を解決するPR#3559を作成しました。

あなたがとても親切なら、これらの再現手順に従って、このブランチを使用して変更を検証できますか?

  1. ボットソリューションライブラリに移動します
  2. npm installを実行して、依存関係をインストールします
  3. npm run buildを実行して、ソリューションをコンパイルします
  4. npm packを実行してtgzを作成します
  5. バーチャルアシスタントのサンプルに移動し
  6. 仮想アシスタントで作成されたtgzファイルを使用しpackage.json次のように:

    「ボットソリューション」:「ボットソリューションTGZへのパス」

  7. 仮想アシスタントを多言語で展開する

  8. 手順に従って、言及しQnAMakerDialogシナリオを再現します

最後になりましたが、前述のように、PRには次の変更が含まれています。

  1. バーチャルアシスタントでの依存性注入( inversifyjsライブラリ)の実装とTypeScriptのスキル
  2. テンプレートを更新する

私たちはあなたの答えに気を配ります😊。

こんにちは@ Batta32

あなたのサポートに感謝します、私があなたのブランチから統合した新しいボットソリューションライブラリで問題が解決されたようです:)いつリリースするかについて大まかな見積もりはありますか?

こんにちは@ Batta32 、ユニットテストを実行しようとするとエラーが発生することに気づいていました: TypeError: Reflect.hasOwnMetadata is not a function
これは、inversifyを使用するようにテストを移行しなかったためですか?

ありがとう@ tommyJimmy87! これを確認し、更新があり次第、折り返しご連絡いたします😊。

こんにちは@ Batta32 、このインポートをテストベースのjsファイルに追加してこの問題を解決しました: require('reflect-metadata');

こんにちは@ tommyJimmy87-ユニットテストに関連してあなたが言及した問題を再現できませんでした。

私たちは質問を思いついた:

  1. これらの変更を検証するためにブランチを使用していますか?
  2. どのコンポーネントに問題がありますか?
  3. 実行した再現手順を共有できますか?

これが私たちの環境です

  • このブランチを使用しています: feature/southworks/dependency-injection-implementation
  • TypeScriptバーチャルアシスタントのサンプル
  • TypeScriptスキルサンプル

バーチャルアシスタントとスキルの問題を再現するために、次の手順を実行しました。

  1. ボットソリューションライブラリに移動します
  2. npm installを実行して、依存関係をインストールします
  3. npm run buildを実行して、ソリューションをコンパイルします
  4. npm packを実行して、 .tgzを作成します
  5. バーチャルアシスタントのサンプルに移動し
  6. 次のように、Virtual Assistant package.jsonで作成された.tgzを使用します。
  7. 「ボットソリューション」:「「」
  8. npm installを実行して、依存関係をインストールします
  9. npm run buildを実行して、ソリューションをコンパイルします
  10. npm run testを実行して、ソリューションをコンパイルします
  11. テストの実行を確認します

image

image

こんにちは@ tommyJimmy87 -PR#3559に提案された変更を追加しました。

単体テストに関連して言及した問題を回避するために、Virtual Assistant&Skillボットを更新して次のインポートテストファイルを追加しました: require('reflect-metadata');特にBotTestBaseSkillTestBase

これらの手順をフォローアップして、仮想アシスタントとスキルの変更をテストできます。

ありがとう、
ディエゴ。

こんにちは@ Batta32@ DiegoCardozo94

一般的な質問が1つありますが、まだリリースされていなくても、プロジェクトでこのブランチを使用しているので、ここで質問します。

私たちのシナリオでは、唯一のチャネルとしてMS Teamsがありますが、TeamsActivityHandlerはVAでのみ使用され、スキルのサンプルでは使用されていないことがわかります。 おそらく間違ってTeamsActivityHandlerのスキルも拡張していたため、具体的に1つの問題が発生しました。基本的に、スキルのDefaultActivityHandler cancel後にendOfConversationメソッドが呼び出されることはありません。 。 しかし、スキル内で「通常の」ActivityHandler拡張機能に切り替える必要があるかもしれません。 私を助けてくれませんか、それともこれについてフィードバックをください。

ありがとう

こんにちは@ tommyJimmy87TeamsActivityHandlerActivityHandlerから派生しており、MicrosoftTeams固有のイベントとインタラクションのサポートが追加されています。

仮想アシスタントは、スキルに接続された仮想アシスタントのスキーマでMicrosoft Teamsチャネルと対話するものであるため、仮想アシスタントのDefaultActivityHandler、スキルTeamsActivityHandlerから拡張する必要があります。あなたがサンプルで見ることができるように、その言及されたスキーマで。

テンプレート/サンプルの仮想アシスタントのDefaultActivityHandlerは、チームのシナリオをすぐに使用できるようにするTeamsActivityHandlerを実装しています。

次のドキュメントを調査しました。これらのドキュメントも確認できます。

これがあなたに役立つかどうか私たちに知らせてください😊。

この問題は30日間開いており、アクティビティがないため、古くなっています。 古いラベルやコメントを削除しないと、5日で閉鎖されます

@ Batta32これはまだリリースされていませんよね?

こんにちは@ tommyJimmy87-新しいパッケージをリリースする計画を最終決定しています。 更新があり次第、こちらからご連絡いたします😊。

@ Batta32更新はありますか?

こんにちは@cwhitten、この問題はすでに@peterinnesmsftの要求された変更で更新されてPR#3559で固定されています。

PRがマージされるとすぐに、変更はnextブランチに表示されます。

#3559のステータスはどうなっていますか? @ Batta32

それに関する最後の更新は9月11日でした

ありがとう

こんにちは@ tonyanziano 、PR#3559は、@ peterinnesmsftの要求された変更を含めて、レビューおよびマージする準備ができています。

PRがマージされるとすぐに、変更はnextブランチに表示されます。

この問題は30日間開いており、アクティビティがないため、古くなっています。 古いラベルやコメントを削除しないと、5日で閉鎖されます

@ joshgummersall #3752のステータスは何ですか? いつそれを統合する予定ですか?

他の誰かがそれをレビューして承認できるとすぐに!

@joshgummersall

このチケットを閉じることができるようにPRをマージするために働くことができますか?

@ virtual-josh、もう1つのPRレビューを待っています。 すでに1人のレビューアによって承認されています。 2回目のレビューのために誰にpingを送信するかわからない。

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