Ejemplo n.º 1
0
        public async Task <HttpResponseMessage> Post([FromBody] Activity activity)
        {
            if (activity.Type == ActivityTypes.Message)
            {
                ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
                // calculate something for us to return
                string answer  = "Hmmmm, I didn't understand that.  I'm still learning!";
                string token   = activity.Text.ToLower().Trim();
                Luis   luisObj = await LUISClient.ParseUserInput(activity.Text);

                Debug.WriteLine(luisObj);
                if (luisObj.topScoringIntent != null)
                {
                    List <string> entityList = luisObj.getList();
                    String        gender     = "male";
                    int           year       = 1995;
                    switch (luisObj.topScoringIntent.intent)
                    {
                    case "Diagnose":
                        answer = "You might be having a " + (medic.getDiagonoses(entityList, gender, year)).ToLower() + ".";
                        break;

                    case "SeekingTreatments":
                        answer = medic.getTreatments(entityList);
                        break;

                    case "SeekiingSymptoms":
                        break;

                    case "Greetings":
                        answer = "Hello!";
                        break;

                    case "EndChat":
                        answer = "Bye!";
                        break;

                    case "None":
                        break;
                    }
                }
                Activity reply = activity.CreateReply(answer);
                await connector.Conversations.ReplyToActivityAsync(reply);
            }
            else
            {
                HandleSystemMessage(activity);
            }
            var response = Request.CreateResponse(HttpStatusCode.OK);

            return(response);
        }
Ejemplo n.º 2
0
        public static async Task <Luis> ParseUserInput(string strInput)
        {
            string strEscaped = Uri.EscapeDataString(strInput);

            using (var client = new HttpClient())
            {
                // TODO: put URI in config file
                // TODO: insert your LUIS URL here
                string uri = luisURL + "&q=" + strEscaped;
                HttpResponseMessage msg = await client.GetAsync(uri);

                if (msg.IsSuccessStatusCode)
                {
                    var jsonResponse = await msg.Content.ReadAsStringAsync();

                    Luis _Data = JsonConvert.DeserializeObject <Luis>(jsonResponse);
                    return(_Data);
                }
                else
                {
                    throw new Exception("Lui service is not running at " + luisURL);
                }
            }
        }