Я хочу создать тип слота для ответа, который я получаю от пользователя, потому что я хочу снова запросить этот слот. Не удалось найти никакой официальной документации, говорящей, возможно ли это или нет.
Могу ли я динамически создавать собственные типы слотов в голосовом сервисе Alexa?
Ответы (3)
Я думаю, что на самом деле это возможно. Вы должны определить собственный тип слота, как описано здесь: https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/defining-the-voice-interface#типыпользовательскихслотов
Теперь пользовательский тип слота просит вас указать возможные значения, что вы и должны сделать. НО! Кажется, что Alexa по-прежнему будет правильно анализировать значения слотов, даже если их нет в списке возможных значений, которые вы предоставили!
Похоже, это недокументированная функция, и то, что я вам говорю, основано на моих собственных наблюдениях: Мой пользовательский тип слота принимает непредвиденные значения
В целом, у меня сложилось впечатление, что модель взаимодействия в целом следует рассматривать не столько как строгий набор правил, сколько как руководство, которое интерпретируется по усмотрению Alexa Voice Service.
Я смог добиться именно этого, создав пользовательское намерение под названием «Поиск» с пользовательским типом слота, называемым «запрос». Это отправляет все, что пользователь говорит в значении слота, на мой веб-сервис, где я могу искать по строке.
Мне пришлось поместить один пример в раздел значений слота (для прохождения проверки), но в моем тестировании слот получает динамические данные и передает их в мой веб-сервис, как и следовало ожидать. Смотрите прикрепленные снимки экрана.
Я думаю, вы имеете в виду Alexa Skills Kit, а не Alexa Voice Service. Это Alexa Skills Kit, с помощью которого вы пишете навык (приложение), и это элемент, который составляет ответы пользователю.
Нет, вы не можете спонтанно создавать типы слотов. Модель взаимодействия, включающая типы слотов, используется службой Alexa для преобразования звуковых данных в слоты намерения+. Чтобы вернуть максимальное качество, им требуется фиксированная модель взаимодействия. Это предоставляется во время разработки и «компилируется» в их уровень распознавания. Поэтому они не поддерживают функции, требующие специального изменения модели взаимодействия.