LUIS конфликт с Местом Посланника быстрый ответ - PullRequest
1 голос
/ 26 марта 2019

Как я могу исправить этот LUIS, выдающий ошибку при получении местоположения от пользователя. Прямо сейчас я помещаю быстрый ответ посыльного в подсказку приложения.

Является ли результат из местоположения пользователя вложением? Что это? Потому что в противном случае моя подсказка вложения сделает цикл повторной подсказки.

Расположение мессенджера, быстрый ответ:

enter image description here

Результат:

enter image description here

Это исключение:

System.ArgumentNullException: значение не может быть нулевым. Имя параметра: utterance в Microsoft.Bot.Builder.AI.Luis.LuisRecognizer.d * 23.MoveNext () --- Конец трассировки стека из предыдущего расположения, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo. Бросок () в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) в System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (задача-задача) в Microsoft.Bot.Builder.AI.LiseceU ) --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Задача) в System.Runtime.CompilerServices .TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в Microsoft.BotBuilderSamples.BasicBot.d * 24.MoveNext () в C: \ Users \ bguevarra \ Desktop \ finko \ FinkoBot \ Bots \ BasicBot.cs: строка 104 --- Конец стека трассировка из предыдущего места, где было сгенерировано исключение --- в Sys tem.Runtime.ExceptionServices.ExceptionDispatchInfo. 3.MoveNext () --- Конец трассировки стека из предыдущего местоположения, где было сгенерировано исключение --- в System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () в System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (задача-задача) в системе .Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (Задача) в Microsoft.Bot.Builder.BotAdapter.d__13.MoveNext ()

Мой код:

 private static async Task<DialogTurnResult> SecondStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken = default(CancellationToken))
        {
                Activity reply = stepContext.Context.Activity.CreateReply();

                reply.ChannelData = JObject.FromObject(
                new
                {
                    text = "loc",
                    quick_replies = new object[]
                    {
                        new
                        {
                            content_type = "text",
                            title = "Title",
                            payload = "PEYLOD",
                        },
                        new
                        {
                            content_type = "location",
                        },
                    },
                });

                return await stepContext.PromptAsync(
                   ATTACHPROMPT,
                   new PromptOptions
                   {
                       Prompt = reply,
                      // RetryPrompt = MessageFactory.Text("re prompting."),
                   });
        }        

private static async Task<DialogTurnResult> ThirdStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken = default(CancellationToken))
        {
            await stepContext.Context.SendActivityAsync(MessageFactory.Text($"TEST")); // Not even reaching this next step

            var activity = stepContext.Context.Activity;
            var location = activity.Entities?.FirstOrDefault(e => e.Type == "Place");
            if (location != null)
            {
                var latitude = location.Properties["geo"]?["latitude"]?.ToString();
                var longitude = location.Properties["geo"]?["longitude"]?.ToString();

                await stepContext.Context.SendActivityAsync(MessageFactory.Text($"{latitude} + {longitude} "));
            }

            return await stepContext.EndDialogAsync();
        }
...