首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QnAMaker Bot与LUIS合并

QnAMaker Bot与LUIS合并
EN

Stack Overflow用户
提问于 2017-05-29 11:04:35
回答 1查看 719关注 0票数 1

好的,我有LUIS来启动MessageController.cs中的Post方法中的对话

代码语言:javascript
复制
await Conversation.SendAsync(activity, () => new LUISDialog());

当机器人检测到无意图时,它将调用QnA机器人并将消息转发给它。

代码语言:javascript
复制
await context.Forward(new QnABot(), Whatever, result.Query, CancellationToken.None);

下面是我的问题:启动MessageReceivedAsync bot时,QnAMakerDialog.cs类中的方法QnA将对参数"IAwaitable<.IMessageActivity>参数“”抛出一个异常

Microsoft.Bot.Builder.Internals.Fibers.InvalidTypeException ={“无效类型:预期的Microsoft.Bot.Connector.IMessageActivity,有字符串”}“

当试图通过-> var message = await参数访问它时;

我不明白问题是什么,我在qna机器人上输入一个简单的纯文本,当我在网站上尝试时,我的知识库没有问题返回一个回复。我不知道在调用StartAsync和调用MessageReceivedAsync之间发生了什么,这会导致参数‘参数’失败。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-29 12:50:56

我认为问题在于您正在发送一个string (result.Query),而QnAMakerDialog.cs正在等待一个IMessageActivity

尝试将context.Forward调用更新到:

代码语言:javascript
复制
var msg = context.MakeMessage();
msg.Text = result.Query;

await context.Forward(new QnABot(), Whatever, msg, CancellationToken.None);

或者,您可以更新“无意图”方法的签名,以包括原始的IMessageActivity

代码语言:javascript
复制
[LuistIntent("None"))]
public async Task None(IDialogContext context, IAwaitable<IMessageActivity> activity, LuisResult result)
{
   var msg = await activity;

   await context.Forward(new QnABot(), Whatever, msg, CancellationToken.None);
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44240962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档