Я добавил канал cortana в мой чат-бот. Но я не мог получить правильный ответ от Кортана

Я создал простого основанного на правилах бота, используя диалоги. И я добавил канал Cortana в свой бот, используя бот-фреймворк. Для этого я вхожу в свою личную учетную запись outlook, которая используется при регистрации в боте-фреймворке. Я также опубликовал своего бота в Azure. Но когда я вызываю имя вызывающего бота в Cortana, он показывает бота и он подключен. Но проблема в том, что он не дает ответа на мой вопрос. Но я проверил в эмуляторе платформы бота, код работает и дает правильный ответ. Кто-нибудь может решить мою проблему?

using System;
using System.Threading.Tasks;
using Microsoft.Bot.Builder.Dialogs;
using Microsoft.Bot.Connector;

namespace SuperheroesBot.Dialogs
{
    [Serializable]
    public class RootDialog : IDialog<object>
    {
        public Task StartAsync(IDialogContext context)
        {
            context.Wait(MessageReceivedAsync);

            return Task.CompletedTask;
        }



        private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result)
        {
            var activity = await result as Activity;
            string receiveMessage = activity.Text;

            string returnMessage = "Hi How are you";



            if (receiveMessage == "Yes Are you Ready")
            {
                returnMessage = "Yeah am ready";
            }
            else if (receiveMessage=="i am fine")
            {

                returnMessage = "nice you can ask me questions";

            }
            else if (receiveMessage=="what are the houses available now")
            {
                returnMessage = "Blue red green and yellow";
            }

            else if (receiveMessage == "who is going to win")
            {
                returnMessage = "i don't know. can u guess it";
            }

            else if (receiveMessage == "blue")
            {
                returnMessage = "alright.let's see";
            }

            await context.SayAsync(text: returnMessage, speak: returnMessage);



            context.Wait(MessageReceivedAsync);
        }
    }
}

1 ответ

Проверьте регион вашего устройства и языковые настройки. Они должны быть установлены в США для вызова бота Cortana Skill. См. FAQ по навыкам Microsoft Cortana

-> есть оператор ожидания после SayAsync(). Будьте осторожны с операторами ожидания. Они выдают ошибки после методов context.forward, context.call. Попробуйте, если поможет раскомментирование оператора ожидания. Кроме этого не знаю, в чем может быть проблема.

Другие вопросы по тегам