Как вызвать диалог LUIS вне класса MessagesController

Я хочу вызвать диалог LUIS из-за пределов класса MessagesController. Я создаю корневой диалог в своем классе MessageController:

 if (activity.Type == ActivityTypes.Message) {
 await Conversation.SendAsync(activity, () => new MessageDialogHandler());

В моем классе MessageDialogHandler я обрабатываю вложения и ввод текста.

if (activity.Attachments?.Count() > 0) {
            FaceAnalysis faceAnalysis = new FaceAnalysis();
            await faceAnalysis.AnalyseImageAsync(context, argument);
        }
else if(activity.Text.Length > 0) {
//here needs to be the code to call a LUIS dialog.
}

У меня есть стандартный класс LUIS:

[LuisModel("App-ID", "SubscriptionKey")]
[Serializable]

public class LuisDialog : LuisDialog<object> {

Как мне удается вызвать этот диалог LUIS из моего класса MessageDialogHandler? Да, я прочитал этот пост Link, но это не так. Помоги мне.

Спасибо за любые идеи.


person Soeren    schedule 07.12.2016    source источник


Ответы (1)


Вам просто нужно сделать context.Forward сообщения в LuisDialog.

await context.Forward(
      new LuisDialog(), 
      LuisDialogCompleted, 
      activity, 
      System.Threading.CancellationToken.None);

Чтобы узнать больше о том, как вызывать диалоги, обратитесь к этой.

person Ezequiel Jadib    schedule 07.12.2016