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

Я хочу создать немецкий пользовательский слот для кодов рейсов. Код рейса состоит из короткой аббревиатуры авиакомпании, например.

EZY, DLH, AFR, ABY, AAL, RYR, DAL, ...

и число от 3 до 5 цифр, например.

352, 5832, 84544, ...

поэтому примеры типов слотов должны выглядеть примерно так:

EZY582, AFR5583, RYR19, DAL2912, ...

Итак, как мне лучше всего создать слот такого типа? Помните, я использую немецкий язык.

Во-первых, я попытался использовать два разных типа слотов для кода перевозчика и номера рейса:

FLIGHT_CODE and AMAZON.NUMBER

Было много проблем, когда модель распознавала только FLIGHT_CODE, даже если голосовая подсказка явно запрашивала оба этих типа слотов одновременно.

Во-вторых, я попытался определить тип слота с помощью фонетически правильных значений:

"e. z. y. drei vier acht"

но "e. z. y." не будет соответствовать правильно. Есть ли наилучшая практика для получения таких комбинированных типов? Особенно, если включить аббревиатуру типа "E.Z.Y.", которая будет произноситься по-немецки совсем по-другому? Заранее спасибо.


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


Ответы (1)


Может быть поздно, но если у кого-то такая же проблема, я решил ее так. Я не нашел подходящего способа указать слот для самого кода рейса. Однако вы можете запросить название авиакомпании и трех- или пятизначный номер. Что-то вроде этого в высказывании:

{airline_name} {flight_number}

Существует встроенный тип слота под названием AMAZON.Airline. Таким образом, тип для airline_name будет AMAZON.AIRLINE и AMAZON.NUMBER для number. Встроенный тип может быть расширен для работы с разрешениями и проверками. Вы можете следовать этому руководству: https://developer.amazon.com/docs/custom-skills/slot-type-reference.html#h2_extend_types

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

Slot types: AMAZON.AIRLINE

Value | ID | Synonyms 
American Airlines | AA | American
LATAM Airlines | LA | LAN, LATAM
...

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

"dialog": {
            "intents": [
                {
                    "name": "FlightIntent",
                    "confirmationRequired": false,
                    "prompts": {},
                    "slots": [
                        {
                            "name": "airline_name",
                            "type": "AMAZON.Airline",
                            "confirmationRequired": false,
                            "elicitationRequired": false,
                            "prompts": {},
                            "validations": [
                                {
                                    "type": "hasEntityResolutionMatch",
                                    "prompt": "Slot.Validation.1129359808444.140964634934.1466054813690"
                                }
                            ]
                        },
...
"prompts": [
            {
                "id": "Slot.Validation.1129359808444.140964634934.1466054813690",
                "variations": [
                    {
                        "type": "PlainText",
                        "value": "Please tell me the name of the airline followed by the number"
                    }
                ]
            }
person Juan Camilo Cortés    schedule 29.07.2019