首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QnA制造者Bot在团队私人聊天中工作,但在团队中提到时没有回答

QnA制造者Bot在团队私人聊天中工作,但在团队中提到时没有回答
EN

Stack Overflow用户
提问于 2020-11-30 15:09:41
回答 1查看 179关注 0票数 0

我在qnamaker.ai配置了一个知识库,发布了它,并使用Azure创建了一个机器人。

在团队中,我创建了一个新的机器人应用程序,并将其与已部署的机器人相关联。bot允许用于私人聊天、组聊天和团队。

  • 如果我在私人聊天中“询问”它“部署cosmosdb",它将得到正确的答案。
  • 如果我在一个团队中使用机器人,通过提到它"@CS bot deploy cosmosdb",它就不知道是哪个机器人。
  • 如果我在私人聊天中提到机器人,我会看到同样的行为:没有回答。

但要与机器人对话,必须提到,那么问题在哪里呢?

更新:

感谢希尔顿下面的回答,我注意到当你下载bot源代码(在我的例子中,它是一个dotnet核心项目)时,README.MD文件说明了这个问题--以及如何修复

微软团队频道组聊天补丁

  • Goto Bot/QnABot.cs
  • 使用Microsoft.Bot.Connector添加引用;使用System.Text.RegularExpressions添加引用;
  • 如果(turnContext.Activity.ChannelId.Equals(Channels.Msteams)) { turnContext.Activity.Text = turnContext.Activity.RemoveRecipientMention();}等待base.OnTurnAsync(turnContext,cancellationToken);//保存可能发生的状态更改,则将OnTurnAsync函数修改为:公共覆盖异步任务OnTurnAsync(ITurnContext turnContext,CancellationToken cancellationToken = default) { // Teams组chat;//保存可能发生的状态更改。等待ConversationState.SaveChangesAsync(turnContext,false,cancellationToken);等待UserState.SaveChangesAsync(turnContext,false,cancellationToken);}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-30 17:45:13

如果您检查第一条消息中返回的文本,它将是“”。然而,在第二条信息中,它将是“”,QnAMaker正在艰难地解析它。在将查询文本传递给QnAMaker之前,您想要做的是从文本中完全删除"@“。

这是一个常见的问题,因此已经有了一种方法来处理这个问题。您没有提到您正在开发的平台,但是这里有一个指向RemoveRecipientMention方法的dotnet链接。我很确定节点上有一个等价物,等等。

最后的效果将是在这两种情况下将活动的文本转换为相同的文本,这将导致来自QnAMaker的相同响应。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65076098

复制
相关文章

相似问题

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