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; }
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; }
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; }
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); }
public DialogflowService(string clientToken) { agentHostName = "https://api.dialogflow.com"; this.clientAccessToken = clientToken; this.developerAccessToken = DialogFlowHelper.GetDeveloperTokenByClientAccessToken(this.clientAccessToken); }