バーチャルアシスタントとスキル
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で作成されます。
@ tommyJimmy87に感謝します。 依存性注入の実装に関連する更新があり次第、ご連絡いたします。
こんにちは@ tommyJimmy87 、ボットに依存性注入を組み込んだこの問題を解決するPR#3559を作成しました。
あなたがとても親切なら、これらの再現手順に従って、このブランチを使用して変更を検証できますか?
npm install
を実行して、依存関係をインストールしますnpm run build
を実行して、ソリューションをコンパイルしますnpm pack
を実行してtgzを作成します仮想アシスタントで作成されたtgzファイルを使用しpackage.json次のように:
「ボットソリューション」:「ボットソリューションTGZへのパス」
仮想アシスタントを多言語で展開する
QnAMakerDialog
シナリオを再現します最後になりましたが、前述のように、PRには次の変更が含まれています。
inversifyjs
ライブラリ)の実装とTypeScriptのスキル私たちはあなたの答えに気を配ります😊。
こんにちは@ Batta32 、
あなたのサポートに感謝します、私があなたのブランチから統合した新しいボットソリューションライブラリで問題が解決されたようです:)いつリリースするかについて大まかな見積もりはありますか?
こんにちは@ Batta32 、ユニットテストを実行しようとするとエラーが発生することに気づいていました: TypeError: Reflect.hasOwnMetadata is not a function
。
これは、inversifyを使用するようにテストを移行しなかったためですか?
ありがとう@ tommyJimmy87! これを確認し、更新があり次第、折り返しご連絡いたします😊。
こんにちは@ Batta32 、このインポートをテストベースのjsファイルに追加してこの問題を解決しました: require('reflect-metadata');
こんにちは@ tommyJimmy87-ユニットテストに関連してあなたが言及した問題を再現できませんでした。
私たちは質問を思いついた:
これが私たちの環境です:
feature/southworks/dependency-injection-implementation
バーチャルアシスタントとスキルの問題を再現するために、次の手順を実行しました。
npm install
を実行して、依存関係をインストールしますnpm run build
を実行して、ソリューションをコンパイルしますnpm pack
を実行して、 .tgz
を作成します.tgz
を使用します。npm install
を実行して、依存関係をインストールしますnpm run build
を実行して、ソリューションをコンパイルしますnpm run test
を実行して、ソリューションをコンパイルしますこんにちは@ tommyJimmy87 -PR#3559に提案された変更を追加しました。
単体テストに関連して言及した問題を回避するために、Virtual Assistant&Skillボットを更新して次のインポートテストファイルを追加しました: require('reflect-metadata');
特にBotTestBaseとSkillTestBase 。
これらの手順をフォローアップして、仮想アシスタントとスキルの変更をテストできます。
ありがとう、
ディエゴ。
こんにちは@ Batta32と@ DiegoCardozo94 、
一般的な質問が1つありますが、まだリリースされていなくても、プロジェクトでこのブランチを使用しているので、ここで質問します。
私たちのシナリオでは、唯一のチャネルとしてMS Teamsがありますが、TeamsActivityHandlerはVAでのみ使用され、スキルのサンプルでは使用されていないことがわかります。 おそらく間違ってTeamsActivityHandlerのスキルも拡張していたため、具体的に1つの問題が発生しました。基本的に、スキルのDefaultActivityHandler
cancel
後にendOfConversation
メソッドが呼び出されることはありません。 。 しかし、スキル内で「通常の」ActivityHandler拡張機能に切り替える必要があるかもしれません。 私を助けてくれませんか、それともこれについてフィードバックをください。
ありがとう
こんにちは@ tommyJimmy87 、 TeamsActivityHandler
はActivityHandler
から派生しており、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を送信するかわからない。
最も参考になるコメント
こんにちは@ Batta32 、
あなたのサポートに感謝します、私があなたのブランチから統合した新しいボットソリューションライブラリで問題が解決されたようです:)いつリリースするかについて大まかな見積もりはありますか?