同一句子对 luis 模型和团队的不同意图,如何解决?

different intent getting on luis model and teams for same sentence , how to solve it?

我已经在微软团队和使用 luis 的机器人上部署了机器人,当在微软团队和 luis 模型机器人上询问相同的问题时,机器人给出了不同的意图。

on teams

on luis model

句子"can I select old date in project?"

它有 "add" 意图和 "date" 实体,但

当在 luis 模型上键入该句子时,它会给出正确的添加意图和日期实体,

但是当被问到部署在团队中的机器人的同一句话给出错误的输出时,为什么会这样?如何解决?

我想我最近遇到了类似的问题。您能否在您的应用程序中进行调试,并在将其移交给 LUIS 之前查看 Activity.Text 属性。如果您的 bot 在团队频道中(而不是直接与 bot 进行 1-1 聊天),您需要 @mention bot 以调用它。但是, 将 "BotName" 字符串添加到 Activity.Text 中,这会影响您对 LUIS 的理解。

您可以通过进入您的 LUIS 模型来检查这一点,转到顶部菜单的 "Build" 部分(您定义实体等的地方),然后在左侧菜单上转到 "Review endpoint utterances".在那里你可能会看到 bot "can i select old date in project" 和“DemoBot can i select old date in project”。

所以,有两种方法可以解决这个问题(我至少能想到):

  1. 您可以在 "Review endpoint utterances" 页面
  2. 上训练您的 LUIS 模型处理什么意图
  3. 您可以在将其发送到 LUIS 之前编辑您的 bot 中的文本,以删除提及的“”,如下所示:

    string atMentionBot = $"DemoBot";

    if (turnContext.Activity.Text.StartsWith(atMentionBot, StringComparison.OrdinalIgnoreCase)) turnContext.Activity.Text = turnContext.Activity.Text.Substring(atMentionBot.Length);

    (我不确定您的机器人使用的是什么语言 - 当然这是 C# 示例)