Навыки Alexa - выполнение еще одного слота в процессе заполнения слотов - PullRequest
0 голосов
/ 21 января 2019

Я работаю с навыком, который ищет врачей по имени или по специальности.

У меня есть намерение: FindDoctor

Имеется 3 слота: Type, Name и Specialty.

Это то, что у меня сейчас есть:

Когда пользователь говорит:

«Я хочу найти доктора»

Тогда мой код делегирует управление Алексе и попросит Type:

«Хорошо, ты хочешь найти его по имени или по специальности?»

Если пользователь запрашивает Name или Specialty:

"По специальности"

Мой код будет делегирован в слот, необходимый для выполнения намерения для пользователя:

«Отлично, как называется специальность?»

И пользователь выполнит это:

"Травматология"

Мой код вызовет API и найдет результаты:

"Вот ближайший травматолог .... и т. Д."


Вот что я пытаюсь получить:

Что произойдет, если бот спросит о Type:

«Хорошо, ты хочешь найти его по имени или по специальности?»

А пользователь говорит:

«Травматолог».

Тогда я хочу заполнить слот Specialty и мне не нужно Type.

Но когда я заполняю слот в качестве возможного ответа пользователя "a {Specialty}", я не выполняю слот Specialty, вместо этого я всегда выполняю слот Type.


Итак, предположим, я всегда спрашиваю пользователя о том, что он хочет найти. Есть ли способ заполнить другой слот, когда я нахожусь на Type заполнении слота в Alexa?

1 Ответ

0 голосов
/ 23 января 2019

Если я правильно понимаю, вы хотите заполнить несколько слотов из одного намерения.Вот пример того, как это может выглядеть:

{
  "intents": [
    {
      "name": "FindDoctorIntent",
      "samples": [
        "Find a doctor",
        "Find doctor {DoctorName}",
        "{Specialty}",
        "Find a {Specialty}"
      ],
      "slots": [
        {
          "name": "Specialty",
          "type": "LIST_OF_SPECIALTIES"
        },
        {
          "name": "DoctorName",
          "type": "AMAZON.US_FIRST_NAME" // or whatever type is best suited for your usecase
        }
      ]
    }
  ],
  "types": [
    {
      "name": "LIST_OF_SPECIALTIES",
      "values": [
        {
          "id": "traumatologist",
          "name": {
            "value": "traumatologist",
            "synonyms": [
              "traumatologist",
              "Traumatology",
                ...
            ]
          }
        },
        {
          "id": "other docter type",
          "name": {
            "value": "other type..",
            "synonyms": [
                 ...
            ]
          }
        }
      ]
    }
  ]
}

Вот некоторые дополнительные ресурсы, которые могут быть полезны: Использование управления диалогами для захвата слотов A и B или C

Еще один хороший вопрос .. если ваши два типа похожи: Множественные намерения, имеющие одно и то же значение слота

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...