首页 > 解决方案 > bixby 中模棱两可的话语的后备意图

问题描述

是否可以为那些未在我的应用程序中训练的话语添加后备意图?

我在我的应用程序中添加了很多话语,但是如果用户说了什么并且与任何话语都不匹配,那么我希望它回退并告诉用户我无法为你找到任何东西。

现在我有4个意图:

GetNews
GetWeather
GetRecepie
GetInformation

现在,对于 GetNews 意图,我有话语“Get me sports news”,对于 GetRecepie,我有“I want Chinese recepie”。我已经为所有意图添加了尽可能多的话语,但我遇到了一个话语,即“获取我的邻居新闻”,现在我没有任何 newsType,例如邻居,但如果 newsType 是,我的代码中有句柄undefined 然后显示一般新闻。但是当我命令这句话时,它就落入了 GetRecepie 的意图。我的所有 4 个意图的话语都以不同的单词开头,没有什么是相互匹配的,那么为什么它会落入 GetRecepie 而不是 GetNews 呢?

这种情况的解决方案是什么?有什么办法可以让我回退一些东西,这样如果有任何话语被混淆,那么它应该去回退吗?或者有没有其他解决方案?

这与正常的话语无关,但用户可能会命令“ABCDRIKHLFJ”,然后如何处理......现在一切都落入GetRecepie。

对于一个解决方案,我创建了一个动作文件名 LetItFallback,在验证 GetRecepie 时,我重新计划它并将目标传递给后备动作。

action (GetRecepie) {
 type(Search)

  collect{
    input (receipeID) {
    type (ReceipeChoiceResult)
    min (Optional)
    validate{
      if(not exists(receipeID.name)){
        replan{
          intent{
            goal{LetItFallBack}
          }
        }
      }
    }
  }
} 
output (RecepieResult) 
}

但我在模拟器中遇到错误

Unable to attach plan from 1.0.1-myAppID.api.GetRecepie#1.0.1-myAppID.api.RecepieResultreplan intent

我不确定出了什么问题,但如果这个解决方案很好,那么如何解决这个错误,否则请给我真正问题的解决方案。

标签: bixbybixbystudio

解决方案


有几点需要探索:

  1. “用户可能会命令“ABCDRIKHLFJ”“:您应该训练 Bixby 处理预期的话语,而不是训练它处理意外输入。如果用户提供了意外的输入,Bixby 将请求它需要的输入。
  2. 您的胶囊可能试图做太多事情。根据 GetNews、GetWeather、GetRecepie 和 GetInformation 相互交互的性质,您的胶囊可能只是试图服务于太多用例。这会导致 Bixby 错误地理解话语的内容并将话语信息路由到错误的操作。我建议您仔细阅读此处找到的培训原则,因为它们解释了为确保 Bixby 能够准确理解话语并将正确的信息路由到您的胶囊中的正确操作所需的内容。

推荐阅读