是否可以为未在我的应用中训练的语音添加后备意图?
我在我的应用中添加了很多语音,但是如果用户说了什么但与任何语音都不匹配,那么我希望它回退并告诉用户我无法为您找到任何东西。
现在我有4个意图:
GetNews
GetWeather
GetRecepie
GetInformation
现在,对于GetNews的意图,我有话要说“给我体育新闻”,对于GetRecepie的则是“我要中国菜”。我已经为所有意图添加了尽可能多的语音,但是我遇到了一种语音,即“获取邻居新闻”,现在我没有任何诸如邻居的新闻类型,但是如果newsType是未定义,然后显示一般新闻。但是,当我发出这种声音时,它就属于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
我不确定出什么问题,但是如果此解决方案很好,那么如何解决该错误,否则请给我解决实际问题的方法。
答案 0 :(得分:1)
有几点要探索:
答案 1 :(得分:0)
看起来您正在使用各种服务,食谱,新闻,天气和常规搜索来使您的胶囊超载。 Bixby胶囊应具有简洁的目的。您可以将胶囊分成3种不同的胶囊,配方,新闻,天气,最好不要创建通用的“搜索”胶囊。 Bixby平台的工作是“捕捉”任何未处理的语音并执行回退操作。
希望这会有所帮助。
答案 2 :(得分:0)
尽管我同意另一位张贴者的话,他说您可能正试图在单个应用程序上做太多事情,但我想回答您有关后备意图的问题,因为我有相同的意图。
为了处理未知的输入,我所做的是创建一系列与缺少的输入相匹配的对话框。下面是其中之一。
dialog (Elicitation) {
match: type
template("I didn't understand what type you were trying to say..")
}