예제 #1
0
        private static async Task <Activity> GetLuisResponse(Activity message)
        {
            Activity resposta     = new Activity();
            var      luisResponse = await Luis.GetResponse(message.Text); //Call LUIS Service

            if (luisResponse != null)
            {
                var intent = new Intent();
                var entity = new Serialization.Entity();

                string acao    = string.Empty;
                string telcomm = string.Empty; //電信公司
                string phone   = string.Empty; //手機種類

                string entityType      = string.Empty;
                int    replaceStartPos = 0;
                foreach (var item in luisResponse.entities)
                {
                    entityType      = item.type;
                    replaceStartPos = entityType.IndexOf("::");
                    if (replaceStartPos > 0)
                    {
                        entityType = entityType.Substring(0, replaceStartPos);
                    }
                    switch (entityType)
                    {
                    case "電信公司":
                        telcomm = item.entity;
                        break;

                    case "手機種類":
                        phone = item.entity;
                        break;
                    }
                }

                if (!string.IsNullOrEmpty(telcomm))
                {
                    if (!string.IsNullOrEmpty(phone))
                    {
                        resposta = message.CreateReply($"好的! 這裡是您的 {telcomm}  {phone}方案");
                    }
                    else
                    {
                        resposta = message.CreateReply("你要 " + telcomm + "的方案,也請提供手機型號.");
                    }
                }
                else
                {
                    resposta = message.CreateReply("對不起不了解您問的,請輸入> [電信公司](ex:中華電信)的[手機型號](ex: ipone7)資費方案.");
                }
            }
            return(resposta);
        }
예제 #2
0
        private static async Task <string> Response(Activity message)
        {
            Activity resposta = new Activity();
            var      response = await Luis.GetResponse(message.Text);

            if (response != null)
            {
                var intent = new Intent();
                var entity = new Serialization.Entity();

                string acao         = string.Empty;
                string pessoa       = string.Empty;
                string agendaInf    = string.Empty;
                string agendaResult = string.Empty;

                foreach (var item in response.entities)
                {
                    switch (item.type)
                    {
                    case "Pessoa":
                        pessoa = item.entity;
                        break;

                    case "AgendaInf":
                        agendaInf = item.entity;
                        break;
                    }
                }

                if (!string.IsNullOrEmpty(pessoa))
                {
                    if (!string.IsNullOrEmpty(agendaInf))
                    {
                        resposta = message.CreateReply($"OK! Entendi, mostrando {agendaInf} de {pessoa}");
                    }
                    else
                    {
                        resposta = message.CreateReply("Não entendi qual informação vc quer do " + pessoa + ".");
                    }
                }
                else
                {
                    resposta = message.CreateReply("Não entendi qual a pessoa vc deseja a informação.");
                }
            }
            return(resposta.Text);
        }
예제 #3
0
        private static async Task <Activity> GetLuisResponse(Activity message)
        {
            Activity resposta = new Activity();

            var luisResponse = await Luis.GetResponse(message.Text); //Call LUIS Service

            if (luisResponse != null)
            {
                var intent = new Intent();
                var entity = new Serialization.Entity();

                string weather  = string.Empty;
                string location = string.Empty;

                string entityType = string.Empty;

                int replaceStartPos = 0;
                resposta = message.CreateReply("我不識字XD");

                foreach (var item in luisResponse.entities)
                {
                    entityType      = item.type;
                    replaceStartPos = entityType.IndexOf("::");
                    if (replaceStartPos > 0)
                    {
                        entityType = entityType.Substring(0, replaceStartPos);
                    }

                    switch (entityType)
                    {
                    case "天氣":
                        weather = item.entity;
                        break;

                    case "地點":
                        location = item.entity;
                        break;
                    }
                }
                resposta = message.CreateReply($"您在問的是〔{weather}〕,地點在〔{location}〕");
            }
            return(resposta);
        }
예제 #4
0
        private static async Task <string> Response(Activity message)
        {
            Activity output   = new Activity();
            var      response = await Luis.GetResponse(message.Text);

            if (response != null)
            {
                var    intent = new Intent();
                var    entity = new Serialization.Entity();
                String msg    = "Intent : " + System.Environment.NewLine;

                foreach (var item in response.intents)
                {
                    msg += item.intent + " , score = " + item.score + System.Environment.NewLine;
                }

                output = message.CreateReply(msg);
            }
            return(output.Text);
        }