Схема намерения Alexa: случайный ввод идентифицируется как намерение

У меня есть два намерения, которые используют одни и те же типы слотов. Однако, если ввод является случайной строкой, Alexa автоматически определяет намерение в своем запросе JSON, даже если оно не является частью высказываний. Например, в приведенном ниже примере, если пользовательский ввод был «бла-бла-бла», 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

person skbrhmn    schedule 21.03.2017    source источник


Ответы (4)


Согласно документации:

AMAZON.FallbackIntent (доступно только на английском языке (США)) срабатывает, когда голосовой ввод пользователя не совпадает ни с одним из других намерений навыка. AMAZON.FallbackIntent соответствует автоматически созданной модели вне домена.

Фрагмент кода:

'AMAZON.FallbackIntent': function (intent, session, response) {
    response.ask("Optimus Prime didn't get that one....","");
}
person dd619    schedule 06.07.2018

Есть один способ решить эту проблему:

Если совпадений не найдено (случайная строка), Amazon всегда выбирает намерение с наибольшим количеством высказываний. Итак, я создал одно намерение «DidNotUnderstand» и добавил столько случайных высказываний, сколько смогу (будь достаточно умеренным), в результате, если совпадений не найдено, alexa вызовет намерение «DidNotUnderstand».

Пожалуйста, обратитесь к первому ответу по ссылке ниже: https://forums.developer.amazon.com/questions/4856/intent-triggering-without-utterance-match.html

person Nidhish    schedule 23.10.2017
comment
У вас всегда может быть обработчик Unhandled, который вернет true из функции canHandle (). Затем вам нужно поместить этот обработчик в последнее значение параметра в функции addRequestHandler (). - person AkshayM; 16.07.2018

Развивая навык Alexa, Alexa всегда выбирает намерение стрелять, даже если пользователь говорит чистую тарабарщину. Насколько мне известно, нет способа установить намерение по умолчанию / всеобъемлющее.

С точки зрения обработки ошибок действительно важен следующий отрывок из документации.

Обратите внимание, что тип настраиваемого слота не эквивалентен перечислению. Значения вне списка по-прежнему возвращаются, если распознаются системой понимания разговорного языка. Хотя ввод в пользовательский тип слота взвешивается по значениям в списке, он не ограничивается только элементами в списке. Ваш код по-прежнему должен включать проверку и проверку ошибок при использовании значений слотов.

По приведенной выше ссылке также есть несколько дополнительных ссылок, которые более подробно рассматривают обработку ошибок темы.

person user3508122    schedule 24.03.2017

Слот с типом слота SearchQuery может вам помочь, но для этого потребуются дополнительные фразы, например

Fname-> где Fname - это слот типа Amazon.SearchQuery

меня зовут {Fname}

это будет работать на примере

меня зовут bffblselsk меня зовут snfdslnel и т.д ...

посетите Amazon.SearchQuery Slot для получения дополнительных ссылок ....

person Prasanth Kumar    schedule 23.05.2018