Luis Intentメソッドが呼び出されるたびにいつでもカスタムメソッドを呼び出す方法を知っている人がいるかどうかを知りたいと思います。基本的には、BotがLuisDialogからデータを取得しているときに、ユーザーにローダーメッセージを追加しようとしています。LUISダイアログのすべてのインテントにヒットする一般的な方法はありますか?
1
A
答えて
2
メッセージをLuisDialogに転送するRootDialogがある場合は、RootDialogまたはLuisDialogのStartAsyncメソッドのいずれかに「ローダメッセージ」を表示できます。別のオプションは、LuisDialogのMessageReceivedをオーバーライドし、base.MessageReceivedを呼び出す前にローダーメッセージを送信することです。
[Serializable]
public class RootDialog : IDialog<object>
{
public Task StartAsync(IDialogContext context)
{
context.Wait(MessageReceivedAsync);
return Task.CompletedTask;
}
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)
{
var activity = await result as Activity;
await context.PostAsync("RootDialog.MessageReceivedAsync");
await context.Forward(new LuisTestDialog(), AfterLuisDialog, activity);
}
private async Task AfterLuisDialog(IDialogContext context, IAwaitable<object> result)
{
await context.PostAsync("RootDialog.AfterLuisDialog");
}
}
[LuisModel("xxx", "xxx")]
[Serializable]
public class LuisTestDialog : LuisDialog<object>
{
public async override Task StartAsync(IDialogContext context)
{
await context.PostAsync("LuisTestDialog.StartAsync");
await base.StartAsync(context);
}
[LuisIntent("")]
[LuisIntent("None")]
public async Task None(IDialogContext context, LuisResult result)
{
await context.PostAsync("LuisTestDialog.None");
context.Done(true);
}
protected async override Task MessageReceived(IDialogContext context, IAwaitable<IMessageActivity> item)
{
await context.PostAsync("LuisTestDialog.MessageReceived");
await base.MessageReceived(context, item);
}
}
上記の次のメッセージになります:
+0
MessageRecieved Overrideの共通メソッドを追加していただき、ありがとうございました。 – Sandip
0
私には2つのアイデアがあります。
- Messagescontrollerから「ローダーメッセージ」を送信します。
- MessagesControllerから呼び出されるルートダイアログがあります。あなたのLUISダイアログにcontext.forward()を実行する前にローダーメッセージを送信できます。
私はこれが役に立ちそうです。
関連する問題
- 1. Trigger適切なLuisインテントに関するFacebookのダイアログ
- 2. 一般的なlispイディオム - 良い方法がありますか?
- 3. BotFramework各ダイアログに割り当てられたLUISインテントがあるステップバイステップの質問
- 4. CLOSオブジェクトを複製する一般的な方法はありますか?
- 5. ユーザーレイアウトを保存する一般的な方法はありますか?
- 6. この変換を行う一般的な方法はありますか?
- 7. ListDictionaryクラスの一般的な代替方法はありますか?
- 8. 一般的にDbSet.FindメソッドをMoqでモックする方法はありますか?
- 9. コルーチンベースのコードをプロファイルする一般的な手法はありますか?
- 10. 一般的なハドソンのレポーターはありますか?
- 11. ニューラルネットワークの一般的な形式はありますか
- 12. の一般的な用語はありますか?ディレクトリエントリ?
- 13. Vimには一般的な `filetype = code`がありますか?
- 14. HasFlagには一般的な列挙型がありますか?
- 15. ブーストには一般的な「クリーンアップ」クラスがありますか?
- 16. C#4には一般的な属性がありますか?
- 17. Pythonには一般的なメソッドがありますか?
- 18. 一般的なすべてのデバイスのCSS3メディアクエリのリストはどこにありますか?
- 19. 未知のコレクションの値を反復して印刷する一般的な方法はありますか?
- 20. この方法を一般化する方法はありますか?
- 21. C#LUIS ChatbotはLuisResultからすべてのインテントを抽出します
- 22. 一般的なユニークカウント機能はありますか?
- 23. 良いCSSクラスチェッカーツールと一般的なクリーナーはありますか?
- 24. 一般的な統計ボードソフトウェアはありますか?
- 25. ポリマー要素のデータセットまたは属性を取得する一般的な方法はありますか?
- 26. Vueに「まだ対話していない」と言う一般的な方法はありますか?
- 27. すべてのセッションから一部のセッションデータを消去する方法はありますか?一般的には
- 28. 一般的なPerl関数を独自のスクリプトにカプセル化する方法はありますか?
- 29. Apache CrunchのPCollectionをPTableに変換する一般的な方法はありますか?
- 30. cmakeで実行可能なターゲットを無効にする一般的な方法はありますか?
言語?ノード? C#? –
ご返信ありがとうございます。私はC#を使用しています。 @EzequielJadib – Sandip
それでは、それぞれのLUISインテントメソッドのメソッド呼び出しを妨げる原因は何ですか? –