8

我有两个使用相同插槽类型的意图。但是,如果输入是随机字符串,Alexa 会自动识别其 JSON 请求中的意图,即使它不是话语的一部分。例如,在下面的示例中,如果用户输入是“bla bla bla”,GetAccountBalance则将其标识为没有槽值的意图,即使它不是提供的话语的一部分。

对这些情况进行错误检查的方法是什么?在开发意图模式时避免此类情况的最佳实践是什么?有没有办法创建一个可以处理所有随机输入的意图?

示例架构:

{
  "intents": [
    {
      "intent": "GetAccountBalance",
      "slots": [
        {
          "name": "AccountType",
          "type": "ACCOUNT_TYPE"
        }
      ]
    },
    {
      "intent": "GetAccountNumber",
      "slots": [
        {
          "name": "AccountType",
          "type": "ACCOUNT_TYPE"
        }
      ]
    }
  ]
}

话语:

GetAccountBalance what is my account balance for {AccountType} Account
GetAccountBalance what is my balance for {AccountType} Account
GetAccountBalance what is the balance for my {AccountType} Account
GetAccountBalance what is {AccountType} account balance
GetAccountBalance what is my account balance
GetAccountBalance what is account balance
GetAccountBalance what is the account balance
GetAccountBalance what is account balance

GetAccountNumber what is my account number for {AccountType} Account
GetAccountNumber what is my number for {AccountType} Account
GetAccountNumber what is the number for my {AccountType} Account
GetAccountNumber what is {AccountType} account number
GetAccountNumber what is my account number
GetAccountNumber what is account number
GetAccountNumber what is the account number
GetAccountNumber what is account number
4

4 回答 4

3

有一个技巧可以解决这个问题:

如果没有找到任何匹配项(随机字符串),亚马逊总是以最高数量的话语表示意图。所以我创建了一个意图“DidNotUnderstand”并添加尽可能多的随机话语(足够温和),如果没有找到任何匹配,alexa 将调用“DidNotUnderstand”意图。

请参考以下链接的第一个回复: https ://forums.developer.amazon.com/questions/4856/intent-triggering-without-utterance-match.html

于 2017-10-23T07:02:16.380 回答
2

在开发 Alexa 技能时,即使用户说的是胡言乱语,Alexa 也会始终选择触发意图。据我所知,没有办法设置默认/包罗万象的意图。

在错误处理方面,文档中的以下段落非常重要。

请注意,自定义插槽类型不等同于枚举。如果被口语理解系统识别,仍然返回列表之外的值。尽管自定义槽类型的输入根据列表中的值加权,但它不仅限于列表中的项目。使用槽值时,您的代码仍需要包含验证和错误检查。

上面的链接还有一些后续链接,它们进一步深入到主题错误处理中。

于 2017-03-24T15:29:03.367 回答
1

根据文档

AMAZON.FallbackIntent用户的语音输入与技能中的任何其他意图不匹配时,将触发(仅适用于英语(美国))。AMAZON.FallbackIntent与自动生成的域外模型相匹配。

代码片段:

'AMAZON.FallbackIntent': function (intent, session, response) {
    response.ask("Optimus Prime didn't get that one....","");
}
于 2018-07-06T14:19:05.597 回答
0

SearchQuery 插槽类型的插槽可能会对您有所帮助。但它需要一些额外的短语。就像

Fname->其中 Fname 是 Amazon.SearchQuery 类型的插槽

我的名字是 {Fname}

它适用于示例

我的名字是 bffblselsk 我的名字是 snfdslnel 等等......

访问 Amazon.SearchQuery Slot 以获得更多参考......

于 2018-05-23T05:42:57.607 回答