我想从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,但它对我没有帮助。
感谢任何想法。
答案 0 :(得分:1)
您只需要执行上下文。将消息转发给LuisDialog。
await context.Forward(
new LuisDialog(),
LuisDialogCompleted,
activity,
System.Threading.CancellationToken.None);
要了解有关如何调用对话框的更多信息,请参阅this。