我目前正在尝试使用botframework和LUIS设置聊天机器人。
LUIS有一个免费帐户,其中包含每月10,000个电话。当超过此限制时,应用程序将收到超过" 403配额超过"错误。
我几乎使用BotBuilder示例代码: https://github.com/Microsoft/BotBuilder/tree/master/CSharp/Samples/SimpleEchoBot
在MessageController
Post
操作中添加通用try / catch并不能解决问题。
[ResponseType(typeof(void))]
public virtual async Task<HttpResponseMessage> Post([FromBody] Activity activity)
{
// check if activity is of type message
if (activity != null && activity.GetActivityType() == ActivityTypes.Message)
{
try
{
await Conversation.SendAsync(activity, MakeRoot);
}
catch (Exception ex)
{
System.Diagnostics.Trace.TraceError(ex.Message);
}
}
else
{
HandleSystemMessage(activity);
}
return new HttpResponseMessage(System.Net.HttpStatusCode.Accepted);
}
internal static IDialog<object> MakeRoot()
{
return Chain.From(() => new DefaultDialog());
}
DefaultDialog
继承LuisDialog<T>
类。
[LuisModel("---", "---", domain: "westeurope.api.cognitive.microsoft.com")]
[Serializable]
public class DefaultDialog : LuisDialog<object>
{
[LuisIntent("")]
public async Task None(IDialogContext context, LuisResult result)
{
context.Wait(MessageReceived);
}
...
}
错误被抛出,我能够抓住它但机器人仍然会回答。