如何在MessagesController类之外调用LUIS Dialog

时间:2016-12-07 07:45:31

标签: bots botframework luis

我想从MessagesController类外部调用LUIS对话框。我在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> {

如何从MessageDialogHandler类中调用该LUIS Dialog? 是的,我确实读过这篇文章Link,但它对我没有帮助。

感谢任何想法。

1 个答案:

答案 0 :(得分:1)

您只需要执行上下文。将消息转发给LuisDialog。

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

要了解有关如何调用对话框的更多信息,请参阅this