Пример #1
0
        public HttpResponseMessage GetRandomSubjectPeople(string sessionId)
        {
            var text = "";
            var context = "";

            Random rnd = new Random();
            int topicIndex = rnd.Next(1, 3);

            switch (topicIndex)
            {
                case 1:
                    text = "Do you want to know who our CEO is?";
                    context = "request-ceo";
                    break;
                case 2:
                    text = "Would you like to talk about our CCO?";
                    context = "request-cco";
                    break;
                case 3:
                    text = "How about talking about our CSO?";
                    context = "request-cso";
                    break;
            }
            var json = DialogFlowHelper.CreateJsonObjectResponse(text);
            DialogFlowHelper.AddContextOut(json, context, 1);

            var resp = new HttpResponseMessage()
            {
                Content = new StringContent(json.ToString())
            };

            return resp;

        }
Пример #2
0
        public HttpResponseMessage ClearPreviousContexts(string sessionId)
        {
            DialogFlowHelper.ClearContexts(sessionId, developerAccessToken);

            /*var config = new AIConfiguration(this.clientAccessToken, SupportedLanguage.English);
            var apiAi = new ApiAi(config);
            var response = apiAi.TextRequest(userSays);

            var intentName = response.Result.Metadata.IntentName.ToString();

            var responseText = response.Result.Fulfillment.Speech.ToString();

            var json = DialogFlowHelper.CreateJsonObjectResponse(responseText);

            var resp = new HttpResponseMessage()
            {
                Content = new StringContent(json.ToString())
            };

            return resp;*/

            var resp = new HttpResponseMessage()
            {
                Content = new StringContent("OK")
            };

            return resp;
        }
Пример #3
0
        internal HttpResponseMessage GetGreetingMessage()
        {
            var text = "Hello. I’m K-base, Landor’s chatbot and I’m here to help. How can I help you?";

            var json = DialogFlowHelper.CreateJsonObjectResponse(text);

            var resp = new HttpResponseMessage()
            {
                Content = new StringContent(json.ToString())
            };

            return resp;
        }
Пример #4
0
        public HttpResponseMessage GetRandomSubjectAboutLandor(string sessionId)
        {
            var text = "";
            var context = "";

            Random rnd = new Random();
            int topicIndex = rnd.Next(1, 5);

            switch (topicIndex)
            {
                case 1:
                    text = "Do you want to know the way how we approach to branding?";
                    context = "request-approach";
                    break;
                case 2:
                    text = "Would you be interested in learning about the boat?";
                    context = "request-boat";
                    break;
                case 3:
                    text = "How about talking about what we are famous for?";
                    context = "request-famous";
                    break;
                case 4:
                    text = "Would you like to see some of the work we have done for our clients?";
                    context = "request-portfolio";
                    break;
                case 5:
                    text = "How about talking about our awards?";
                    context = "request-award";
                    break;
            }


            var json = DialogFlowHelper.CreateJsonObjectResponse(text);
            DialogFlowHelper.AddContextOut(json, context, 2);

            var resp = new HttpResponseMessage()
            {
                Content = new StringContent(json.ToString())
            };

            return resp;
        }
        public async Task <HttpResponseMessage> Post(HttpRequestMessage request)
        {
            var jsonData = await request.Content.ReadAsStringAsync();

            dynamic data            = JObject.Parse(jsonData);
            var     clientAccessKey = Request.Headers.GetValues("ClientAccessKey").First().ToString();

            var action    = (String)data.result.action;
            var sessionId = (String)data.sessionId;
            DialogflowService   service = new DialogflowService(clientAccessKey);
            HttpResponseMessage resp    = new HttpResponseMessage();

            switch (action)
            {
            case "input.welcome":
                resp = service.GetGreetingMessage();
                break;

            case "portfolio":
                resp = service.GetLandorWorkExample();
                break;

            case "employees":
                var fullName = (String)data.result.parameters.fullName;
                resp = service.GetEmployeTitle(fullName);
                break;

            case "learn":
                var any   = (String)data.result.parameters.any;
                var topic = (String)data.result.parameters.topic;
                var desc  = (String)data.result.parameters.description;
                resp = service.Teach(topic, desc);
                break;

            case "email":
                var receiver = (String)data.result.parameters.fullName;
                var message  = (String)data.result.parameters.message;
                resp = service.SendEmail(receiver, message);
                break;

            case "randomTopic":
                resp = service.GetRandomSubject(sessionId);
                break;

            case "ClearPreviousContexts":
                //var userSays = (String)data.result.resolvedQuery;
                resp = service.ClearPreviousContexts(sessionId);
                break;

            case "randomTopicPeople":
                resp = service.GetRandomSubjectPeople(sessionId);
                break;

            case "randomTopicAbout":
                resp = service.GetRandomSubjectAboutLandor(sessionId);
                break;

            case "getIntentByEvent":
                //Make sure that the context value is an event name on an intent
                var context = (String)data.result.contexts[0].name;

                //get the context that contain request keyword
                //that will be the name of the event to be executed
                if (data.result.contexts.Count > 0)
                {
                    for (int i = 0; i < data.result.contexts.Count; i++)
                    {
                        context = (String)data.result.contexts[i].name;

                        if (context.Contains("request"))
                        {
                            context = (String)data.result.contexts[i].name;
                            break;
                        }
                    }
                }

                resp = service.GetIntentFromContext(sessionId, context);
                break;

            case "location":
                var city    = (String)data.result.parameters.locationCity;
                var country = (String)data.result.parameters.locationCountry;

                if (country != null && country != "")
                {
                    resp = service.GetOfficesByCountry(country);
                }
                else if (city != null && city != "")
                {
                    resp = service.GetOfficesByCity(city);
                }
                else
                {
                    var txt = "City or Country?";
                    var jsn = DialogFlowHelper.CreateJsonObjectResponse(txt);
                    resp = new HttpResponseMessage()
                    {
                        Content = new StringContent(jsn.ToString())
                    };
                }
                break;

            default:
                var text = "Action couldn't be found. Please talk to your developer.";
                var json = DialogFlowHelper.CreateJsonObjectResponse(text);
                resp = new HttpResponseMessage()
                {
                    Content = new StringContent(json.ToString())
                };

                break;
            }

            resp.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
            return(resp);
        }
Пример #6
0
 public DialogflowService(string clientToken)
 {
     agentHostName = "https://api.dialogflow.com";
     this.clientAccessToken = clientToken;
     this.developerAccessToken = DialogFlowHelper.GetDeveloperTokenByClientAccessToken(this.clientAccessToken);
 }