Как расширить пользовательские типы слотов для Alexa Skill?

Я хочу спросить номер рейса. Номера рейсов состоят из короткого кода, такого как EZY, AFR, DLH или CCA, и 3-5-значного номера рейса. Поскольку у меня есть этот ограниченный набор кодов в сочетании с большим набором потенциальных чисел, я не знаю, как определить тип своего слота.

Я подумал о том, чтобы разделить его на пользовательский тип слота CODE и интегрированный тип AMAZON.NUMBERS. Таким образом, я сталкиваюсь с проблемами в своей модели, потому что оба они необходимы для выполнения моего намерения, и мне пришлось бы дважды запрашивать слоты.

Возможность просто ввести все числа кажется очень плохой практикой. Как мне объединить типы слотов?

Заранее спасибо.


person Ipsider    schedule 07.08.2018    source источник


Ответы (2)


Создайте пользовательский слот FLIGHT_NUMBER и задайте широкий спектр значений выборки.

Когда вы создаете пользовательский тип слота, важно понимать, что это обучающие данные для Alexa NLP (обработка естественного языка). Предоставленные вами значения НЕ являются строгим перечислением или массивом, ограничивающим то, что пользователь может сказать. Это имеет два значения

1) вам будут переданы слова и фразы, не входящие в значения вашего слота,

2) ваш код должен выполнить любую необходимую проверку, если то, что сказано, неизвестно.

Сокращения и числа в значениях рекламных мест

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

e. z. y. two four seven nine three four
a. f. r. one two three four one two 
d. l. h. two three eight zero eight zero

И всегда проверяйте значения своих слотов на сервере.

При тестировании в Test Simulator используйте такие высказывания, как

номер рейса а. f. р. один два три четыре один два

Вы получите значение слота как AFR238080. Пример запроса, сгенерированного Alexa, будет выглядеть так:

"intent": {
            "name": "FlightNumberIntent",
            "confirmationStatus": "NONE",
            "slots": {
                "flightNumber": {
                    "name": "flightNumber",
                    "value": "AFR238080",

...
person johndoe    schedule 07.08.2018
comment
Ах хорошо. Так е. z. у. конечно будет полезнее, чем EZY. Понятно, спасибо! - person Ipsider; 08.08.2018
comment
Укажите достаточно обобщенных значений слотов, чтобы охватить почти все возможные значения. - person johndoe; 08.08.2018

Вы можете и должны использовать один Custom SlotType.

Пользовательские типы слотов для Alexa:

Пользовательский тип слота определяет список репрезентативных значений слота. Пользовательские типы слотов используются для списков предметов, которые не охватываются встроенным набором типов Amazon.
...
Значения слотов отправляются вашему навыку в письменном формате. Например, и «fire h. D. 7», и «fire h. D. 7» будут отправлены вашему навыку как «Fire HD 7». Для лучшего распознавания аббревиатуры и другие фразы, содержащие произносимые буквы, должны быть либо полностью заглавными («HD»), либо разделены точками и пробелом («h. D.»).

Знайте, что значения, которые вы определяете в Custom SlotTypes, не ограничивают распознавание ввода пользователя, заполняющего слот. Таким образом, вам не нужно писать всевозможные комбинации буквенно-цифровых кодов рейсов. Просто дайте ему хорошее количество образцов, и Alexa изучит шаблон и распознает язык, на основе, но не ограничиваясь этими примерными значениями.

Вот несколько предложений о том, как записать значения в SlotType, чтобы Alexa выводила желаемый формат: Пользовательские значения SlotType

person Jay A. Little    schedule 07.08.2018
comment
Я не был уверен, сколько обучающих объектов нужно модели для надежной работы. Спасибо за разъяснения! - person Ipsider; 08.08.2018