Alexa.NET проверит правильность значения пользовательского слота и, если нет, запросит у пользователя правильное значение слота - PullRequest
0 голосов
/ 13 июня 2018

Я пишу навык Alexa, используя C # / Lambda / Alexa.NET

У меня есть собственный список слотов для систем, с которыми пользователь может ответить.Есть 3 допустимых значения слотов.В настоящее время лямбда-код использует директиву делегата для передачи управления беседой Алексе, чтобы обработать получение системного слота, а также пары других слотов.Это в настоящее время обслуживается здесь:

 // check the name to determine what you should do
                    if (intentRequest.Intent.Name.Equals("problemIntent"))
                    {
                        context.Logger.LogLine($"The specific intent I have created has been received");
                    }

                    context.Logger.LogLine($"Dialog state = {intentRequest.DialogState}");

                    if (intentRequest.DialogState != "COMPLETED")
                    {
                        response = ResponseBuilder.DialogDelegate(input.Session);
                    }

Однако пользователь может ответить системой, которая не является допустимой частью списка, и Alexa примет это, подтвердит и продолжит.

Как проверить значение входящего слота, чтобы определить, что оно неверно (не является действительным значением слота), и запросить у пользователя правильное значение?У меня есть список строк в моей функции Lambda для проверки, но как мне получить значение предоставленного слота в коде?Например, псевдокод будет:

, если состояние диалога не завершено, проверьте значение слота, предоставленное списку.если допустимо, делегируйте обратно в ALexa, чтобы продолжить.если не верно, ответьте со скоростью, говоря: «Я не знаю, что есть.Можете ли вы попробовать другое значение?Например, x, yz '

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...