Навыки Alexa: нет значения, возвращаемого для пользовательского слота - PullRequest
0 голосов
/ 02 октября 2018

Надеюсь, кто-нибудь может помочь мне с этим, потому что я был в тупике в течение недели.

Я создаю простой навык Alexa из одного из примеров.Это навык выбора цвета - вы говорите Алексе свой любимый цвет, а затем спрашиваете ее свой любимый цвет.Я использую пользовательские слоты, а служба навыков не хочет возвращать значение цвета.Он запускается успешно, а затем загружает правильное намерение, однако не отправляет правильное значение.Вместо этого в выводе нет даже параметра значения, только имя и статус подтверждения.

Вот JSON моего навыка, после которого выводится запрос JSON после того, как я говорю навыку: «Мой цвет красный».Я хочу, чтобы умение передавало «красный» в параметр значения.

{
"interactionModel": {
    "languageModel": {
        "invocationName": "color picker",
        "intents": [
            {
                "name": "MyColorIsIntent",
                "slots": [
                    {
                        "name": "color",
                        "type": "LIST_OF_COLORS"
                    }
                ],
                "samples": [
                    "my color is {color}",
                    "{color} is my color"
                ]
            },
            {
                "name": "WhatsMyColorIntent",
                "slots": [],
                "samples": [
                    "what's my color",
                    "what's my favorite color"
                ]
            },
            {
                "name": "AMAZON.NavigateHomeIntent",
                "samples": []
            }
        ],
        "types": [
            {
                "name": "LIST_OF_COLORS",
                "values": [
                    {
                        "name": {
                            "value": "green"
                        }
                    },
                    {
                        "name": {
                            "value": "red"
                        }
                    },
                    {
                        "name": {
                            "value": "yellow"
                        }
                    },
                    {
                        "name": {
                            "value": "orange"
                        }
                    },
                    {
                        "name": {
                            "value": "black"
                        }
                    },
                    {
                        "name": {
                            "value": "blue"
                        }
                    }
                ]
            }
        ]
    }
}
}

Ниже приведен запрос:

"request": {
"type": "IntentRequest",
"requestId": "amzn1.echo-api.request.918d6da6-cd7e-4bb8-a2a9-41fb1af8a354",
"timestamp": "2018-10-01T01:53:56Z",
"locale": "en-US",
"intent": {
    "name": "MyColorIsIntent",
    "confirmationStatus": "NONE",
    "slots": {
        "Color": {
            "name": "Color",
            "confirmationStatus": "NONE"
        }
    }
}
}

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Вот что произошло: я работал над разными версиями одного и того же навыка, каждая с одним и тем же именем вызова.Когда я набрал имя вызова, это фактически открыло устаревшую версию навыка (я не удалял старые навыки - у меня было 3 разных - мне нравится начинать все сначала).Я не осознавал, что когда вы нажимаете «проверить», вы можете проверить любые свои сохраненные навыки, а не только те, которые вы открыли.

0 голосов
/ 02 октября 2018

Ваша проблема в том, что слот "color" должен называться "Color", и ваши образцы ссылок были изменены, чтобы отразить это так, что "мой цвет - {Color}", а "{Color} - мой цвет", он не поднимаетсяслот, потому что имя идентично.Не забудьте также дополнить навык необходимыми Интентами для остановки и помощи, в настоящее время он будет продолжать запрашивать выбор цвета, пока вы не убьете программу.

...