Пользовательские навыки могут захватывать текст и отправлять их в API вашего навыка.
Если вы не совсем знакомы с тем, как работает Alexa Skills, вот краткое резюме:
Сначала вы регистрируете свой навык в Amazon , предоставляя схему намерений и примеры высказываний . Схема намерений определяет, какие действия могут быть выполнены, и слоты для пользовательских данных, которые будут отправлены в ваш API. Примеры высказываний предоставляют примеры того, как пользователь может инициировать каждое намерение.
Когда пользователь активирует ваш навык, Alexa попытается сопоставить сказанное с одним из примеров высказываний вашего навыка. Если это делает матч, он будет посылать запрос HTTPS на сервер , чтобы запросить ответ.
Ваш сервер ответит (если все пойдет хорошо), а затем Alexa даст отзыв пользователю, который активировал ваш навык.
AMAZON.LITERAL
Слот позволяет принимать практически любой вход. Обратите внимание, что в настоящее время он поддерживается только в английском (США) регионе - английский (Великобритания) и немецкий язык не могут использоваться AMAZON.LITERAL
.
Ваша схема намерений может выглядеть так:
{
"intents": [
{
"intent": "SaveTodo",
"slots": [
{
"name": "Todo",
"type": "AMAZON.LITERAL"
}
]
}
]
}
И ваши примерные высказывания могут быть такими:
SaveTodo remind me to {fetch the shopping|Todo}
SaveTodo remind me to {write my English essay|Todo}
SaveTodo remind me to {buy some dog food tomorrow|Todo}
При использовании AMAZON.LITERAL
вам необходимо предоставить множество образцов высказываний - по крайней мере один образец для каждой возможной длины ввода, но в идеале - больше. Документация Amazon предполагает, что вы должны стремиться к сотням образцов для слотов, где вы могли бы принимать различные типы входных данных.
Это кажется немного утомительным, но если вы этого не сделаете, вряд ли ваш навык будет хорошо распознавать текст. Возможно, вы могли бы сгенерировать выборочные высказывания из данных клиентов (при условии, что личная информация была удалена заранее!), Чтобы наиболее распространенные высказывания были в ваших выборках - я подозреваю, что Alexa будет слегка склонна к распознаванию высказываний, подобных образцам.
Однако Amazon не одобряет использование AMAZON.LITERAL
слотов и предпочитает использовать пользовательские типы слотов , которые требуют перечисления возможных входных данных. Важно помнить, что:
Пользовательский тип слота не является эквивалентом перечисления. Значения за пределами списка все еще могут быть возвращены, если они распознаются системой понимания устной речи. Хотя входные данные для пользовательского типа слота взвешиваются по отношению к значениям в списке, они не ограничиваются только элементами в списке. Ваш код по-прежнему должен включать проверку и проверку ошибок при использовании значений слотов.