Функциональность поиска в навыке Alexa

Я развиваю навык Alexa, который умеет проигрывать аудио. У аудио есть заголовок, динамики и другие свойства.

Проблема: я хочу добавить в свой навык функцию поиска, чтобы пользователь мог воспроизводить звук на основе заголовка, имени докладчика и т. д. Как я могу этого добиться?

Как пользователь может выполнять поиск на основе некоторой настраиваемой строки (докладчик, заголовок) и эта строка передается моему навыку?, где я напишу логику для поиска этого аудио.

Я знаю о пользовательских намерениях и слотах, но не знаю, как они будут работать в моем случае.

Пожалуйста, направьте. Мне просто нужна отправная точка. Спасибо.


person Fayza Nawaz    schedule 30.11.2016    source источник


Ответы (2)


Да, это по выбору слоты, на которые нужно обратить внимание.

Ваш intents.json

{
  "intents": [
    {
      "intent": "GetAudio",
      "slots": [
        {
          "name": "Query",
          "type": "QUERY"
        },
      ]
    },
  ],
  ...
}

Ваши определенные высказывания

Ваши высказывания могут включать в себя такие вещи, как:

GetAudio search for {Query}
GetAudio find audio matching {Query}

Обработка запросов по вашему умению

Когда ваш навык получит намерение, он получит IntentRequest, заполненный любыми заданными вами ячейками. Итак, если вы определили настраиваемый слот Query (и в идеале заполнены примерами поисковых запросов для улучшения сопоставления), как указано выше, вы можете получить что-то вроде:

{
  "type": "IntentRequest",
    ...
  "intent": {
    "name": "GetAudio",
    "slots": {
      "Query": {
        "name": "Query",
        "value": "jimi hendrix"
      }
    }
  }
}

так что тогда легко получить поле value и использовать внутреннюю логику для поиска.

Надеюсь, это поможет.

person declension    schedule 30.11.2016

Вы делаете это, определяя пользовательский слот типа AMAZON.SearchQuery. Все подробности здесь

person German    schedule 08.09.2018