Catch-all for Alexa Skills Kit вводится не в рамках определенного намерения

Я создаю приложение Alexa, которое должно обрабатывать ответы на вопросы. У меня есть SkipIntent намерение, в котором есть образцы высказываний, чтобы пропустить вопрос.

Я хочу создать AnswerIntent, который может принимать ответы, которые могут быть любыми, и обрабатывать их против правильного ответа. Я попытался использовать для этого тип Amazon.LITERAL с несколькими образцами как таковыми (из этого вопроса: Как принять текст в свободной форме в качестве входных данных для Amazon Skill Kit?):

AnswerIntent {bottle|Answer}
AnswerIntent is it {bottle|Answer}
AnswerIntent is it a {bottle|Answer}
AnswerIntent is it an {bottle|Answer}
AnswerIntent a {bottle|Answer}
AnswerIntent an {bottle|Answer}
AnswerIntent {pillow|Answer}
AnswerIntent is it {pillow|Answer}
AnswerIntent is it a {pillow|Answer}
AnswerIntent is it an {pillow|Answer}
AnswerIntent a {pillow|Answer}
AnswerIntent an {pillow|Answer}

Это действительно работает, если я добавляю к ответу «это» или один из других определенных префиксов, но не получает фрагмент «только ответ». Кажется, меня путают с моим SkipIntent, который определяется как:

SkipIntent i don't know
SkipIntent don't know
SkipIntent skip
SkipIntent i don't know that
SkipIntent who knows
SkipIntent i don't know this question
SkipIntent i don't know that one
SkipIntent dunno

Правильно ли я определяю AnswerIntent? Если нет, есть ли лучший способ уловить бесконечное количество возможностей? Amazon, похоже, не любит БУКВАЛЬНЫЙ метод, поэтому я был бы открыт для лучшего способа.


person rhlsthrm    schedule 08.06.2016    source источник


Ответы (2)


Сервис Amazon Alexa не предназначен для диктовки. Это был последовательный ответ евангелистов разработчиков. Таким образом, вы не сможете обеспечить именно то качество обслуживания клиентов, которое хотите: возможность самостоятельно вносить какие-либо изменения.

Вы выходите за рамки проектных спецификаций Alexa, «обманывая» ее, заставляя принять «общий слот». Многие люди сделали это, но, как вы обнаружили, это никогда не будет работать хорошо.

В частности, для вашего варианта использования использование универсального слота само по себе особенно плохо. На внутреннем уровне Alexa использует модель взаимодействия для построения дерева возможных предложений, которые могут быть распознаны. Затем он берет входные звуки и сопоставляет их с деревом. Какая бы ветвь ни заканчивалась с наибольшей степенью уверенности, так и будет выбранная ветвь.

Когда вы добавляете общий слот, вы добавляете в дерево узел, который соответствует почти всему, он конкурирует с ветвями, которые обрабатывают определенные значения. Например. если у Alexa есть выбор между «X», «Y» и «», она обычно выбирает «». Вот почему ваш общий слот сам по себе поглощает другие ответы.

Если вам нужен навык, который работает с высоким качеством, вам следует искать дизайн, в котором не используются стандартные слоты. Например, вы можете использовать множественный выбор в навыке типа «Вопрос-ответ». Или выберите вопросы, на которые есть один из определенного набора ответов, например, цвета или Штаты США.

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

person Joseph Jaquinta    schedule 08.06.2016
comment
Спасибо за ответ. Я боялся, что дело обстоит именно так, но, как вы сказали, таковы спецификации дизайна. - person rhlsthrm; 09.06.2016
comment
Общий дизайн также не очень хорошо работает :) возможность передавать произвольные запросы в логику открывает возможности для понимания даже большего, чем просто простое намерение с параметрами, и поддерживать код в одном месте вместо того, чтобы распространять логику по вашей собственной реализации и навыки Alexa. - person Macilias; 01.10.2017
comment
Я имел в виду оригинальный / предполагаемый дизайн, а не общий, извините. - person Macilias; 01.10.2017

По состоянию на январь 2017 года Amazon, похоже, снова в порядке с AMAZON.LITERAL слотами:

По отзывам разработчиков, слот AMAZON.LITERAL не удаляется, как описано ранее. Вы можете продолжать отправлять новые и обновленные знания английского языка (США) с AMAZON.LITERAL. Однако во многих случаях пользовательские типы слотов обеспечивают лучшую точность, чем AMAZON.LITERAL, поэтому мы рекомендуем рассмотреть возможность перехода на пользовательские типы слотов, если это возможно.

Источник: https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/alexa-skills-kit-interaction-model-reference#literal

person julien_c    schedule 04.05.2017
comment