我遇到了MS.Bot.Framework + Luis + Azure
的问题 await Conversation.SendAsync(activity, () => { return Chain.From(() =>
new LUISDialog() as IDialog<object>); });
我有活跃的Azure订阅,使用订阅密钥设置端点。
运行MS Bot仿真器时,我收到错误消息&#34;抱歉,我的机器人代码出现问题。&#34;在调试模式下使用断点,我已经找到了&#34;新的LUISDialog&#34;它没有被触发,似乎跳过了它。
using System;
using System.Threading.Tasks;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Builder.Luis;
using Microsoft.Bot.Builder.Luis.Models;
using System.Threading;
using George;
using Microsoft.Bot.Connector;
namespace Geoge.Dialog
{
[LuisModel("*****", "*****")]
[Serializable]
public class LUISDialog : LuisDialog<object>
{
[LuisIntent("Greeting")]
public async Task GreetingIntent(IDialogContext context,
IAwaitable<IMessageActivity> activity, LuisResult result)
{
string message = $"Hello there";
await context.PostAsync(message);
context.Wait(this.MessageReceived);
}
任何人都可以帮我吗?我花了很多时间试图调试并认为我必须遗漏一些简单的东西。
答案 0 :(得分:1)
您的初始代码行很奇怪:
await Conversation.SendAsync(activity, () => { return Chain.From(() => new LUISDialog() as IDialog<object>); });
如果你想使用LuisDialog
,你不应该在这里Chain
,而是如下所示:
await Conversation.SendAsync(activity, () => new LUISDialog());
答案 1 :(得分:0)
尽管特定的代码段是正确的,但我也遇到了同样的问题。 将我的LUIS应用发布到生产版本后,该问题已修复。模拟器上的错误也说-错误的请求
我认为这将来可能会对某人有所帮助。