public async Task Help(IDialogContext context, LuisResult result) { QureyController qc = new QureyController(); qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.TopScoringIntent.Score < 0.4) { string ans = ""; ans = qc.GetTrainedAnswer(result.Query); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); } else { var options = new UserChoice[] { UserChoice.SearchWiki, UserChoice.Weather, UserChoice.PopularMovie, UserChoice.SearchMovie, UserChoice.Game, UserChoice.Train }; var descriptions = new string[] { "Search Wikipedia", "Get Weather Info", "Popular Movies", "Search for movie", "Play Game", "Train Me" }; PromptDialog.Choice <UserChoice>(context, ResumeAfterDialogChoiceSelection, options, "You asked for help, well here are some of main topics you can find here...", descriptions: descriptions); } }
public async Task Color(IDialogContext context, IAwaitable <IMessageActivity> activity, LuisResult result) { string ans = ""; string ent = "it"; QureyController qc = new QureyController(); qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.Entities != null && result.Entities.Count > 0) { ent = result.Entities[0].Entity; } string[] matching_words = { "blue", "your", "favourite", "like", "love" }; if (FindMatchingString.findMatchingString(result.Query, matching_words)) { ans = "Well blue is my favourite color. But i also like other colors.. :) "; } else { string[] listAns = { ent + "is interesting color but my favourite one is blue :)", "I don't find " + ent + " colorfull enough xD", "Well " + ent + " is interesting color but not as my favourite ;)", "Yea i like " + ent + " too :) " }; Random rand = new Random(); ans = listAns[rand.Next(0, listAns.Length)]; } qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); }
public async Task Music(IDialogContext context, LuisResult result) { QureyController qc = new QureyController(); string ans = ""; qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.TopScoringIntent.Score < 0.3) { ans = qc.GetTrainedAnswer(result.Query); await context.PostAsync(ans); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); context.Wait(MessageReceived); } else { bool found = false; string[] matching_words1 = { "like" }; string[] matching_words2 = { "make", "create", "play" }; string[] matching_words3 = { "you" }; string tr_ans = qc.GetTrainedAnswer(result.Query); if (!string.IsNullOrEmpty(tr_ans)) { ans = tr_ans; found = true; } else if (FindMatchingString.findMatchingString(result.Query, matching_words1)) { ans = "Well I can say that I do :D "; found = true; } else if (FindMatchingString.findMatchingString(result.Query, matching_words2)) { ans = "Hmmm well listen to this... DO RE MI .... FA SO LAAAAAaaaaaaaa... How did that sound xD "; } else if (FindMatchingString.findMatchingString(result.Query, matching_words3)) { ans = "Well music is always fun. :) "; found = true; } else { var options = new MovieChoice[] { MovieChoice.PopularMovie, MovieChoice.SearchMovie }; var descriptions = new string[] { "Popular Movies", "Search for movie" }; PromptDialog.Choice <MovieChoice>(context, ResumeAfterMovieChoiceSelection, options, "What would you like to choose about movies?", descriptions: descriptions); } if (found) { await context.PostAsync(ans); context.Wait(MessageReceived); } qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); context.Call(new BingWikiSearchDialog(), this.ResumeAfterOptionDialog); } }
public async Task Weather(IDialogContext context, LuisResult result) { // OpenWeatherAPI openWeatherAPI = new OpenWeatherAPI(WebConfigurationManager.AppSettings["OpenWeatherAPI"]); //OpenWeatherAPI openWeatherAPI = new OpenWeatherAPI("bd5e378503939ddaee76f12ad7a97608"); string entity = ""; QureyController qc = new QureyController(); qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.Entities.Count > 0) { entity = result.Entities[0].Entity; } if (entity == "" || WeatherData.getWeatherData(entity) == null) { context.Call(new WeatherDialog(), this.ResumeAfterOptionDialog); } else { try { CardUtil.showWeatherHeroCard((IMessageActivity)context.Activity, WeatherData.getWeatherData(entity)); string res = "Weather for entity"; qc.PostAnswerOne(res, result.TopScoringIntent.Intent); } catch (Exception e) { Debug.WriteLine($"Error when generating data: {e}"); await context.PostAsync($"I couldn't find a weather forecast :( You can try again. "); } } }
public async Task WelcomeGreeting(IDialogContext context, string messageText) { QureyController qc = new QureyController(); string ans = qc.GetAnswer(messageText, "Greetings", "0.8", "0"); await context.PostAsync(ans); context.Done(true); }
public async Task ArtistInfo(IDialogContext context, LuisResult result) { QureyController qc = new QureyController(); string entity = ""; string ans = ""; qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.Entities != null) { switch (result.Entities.Count) { case 1: entity += result.Entities[0].Entity; break; case 2: entity += result.Entities[0].Entity + " " + result.Entities[1].Entity; break; case 3: entity += result.Entities[0].Entity + " " + result.Entities[1].Entity + " " + result.Entities[2].Entity; break; } } else { entity = result.Query; } await context.PostAsync("Here are results i found : "); try { BingSearch bingSearch = new BingSearch(); bingSearch = BingSearchData.getSearchResult(entity); if (bingSearch != null) { CardUtil.showBingWikiHeroCard((IMessageActivity)context.Activity, bingSearch); ans = bingSearch.news.readLink; } else { await context.PostAsync($"I couldn't find a artist info :0"); } } catch (Exception e) { Debug.WriteLine($"Error when filtering artists: {e}"); } if (ans == "") { ans = ""; } qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); }
public async Task Advice(IDialogContext context, IAwaitable <IMessageActivity> activity, LuisResult result) { QureyController qc = new QureyController(); string ans = qc.GetAnswer(result.Query, "Advice", result.TopScoringIntent.Score.ToString(), "0"); await context.PostAsync("Here are my thoughts for you : "); await context.PostAsync(ans); context.Wait(MessageReceived); }
private Activity HandleSystemMessage(Activity message) { if (message.Type == ActivityTypes.DeleteUserData) { // Implement user deletion here // If we handle user deletion, return a real message } else if (message.Type == ActivityTypes.ConversationUpdate) { // Handle conversation state changes, like members being added and removed // Use Activity.MembersAdded and Activity.MembersRemoved and Activity.Action for info // Not available in all channels // Note: Add introduction here: string msg = "Hello there! My name is Arnie Bot and I am here to assist you. You can start by typing things like 'Hello' or 'How are you' or 'Can you give me advice' ... STry one of those : Let's play game, How are you, What's the weather like today, List popular Movies... And if you get stuck or you want to check basic functionality, just type 'help' or 'settings'."; IConversationUpdateActivity update = message; var client = new ConnectorClient(new Uri(message.ServiceUrl), new MicrosoftAppCredentials()); if (update.MembersAdded != null && update.MembersAdded.Any()) { foreach (var newMember in update.MembersAdded) { if (newMember.Id != message.Recipient.Id) { var reply = message.CreateReply(); reply.Text = msg; client.Conversations.ReplyToActivityAsync(reply); Session session = new Session(); session.Date = DateTime.Now; QureyController qc = new QureyController(); qc.PostSession(session); } } } } else if (message.Type == ActivityTypes.ContactRelationUpdate) { // Handle add/remove from contact lists // Activity.From + Activity.Action represent what happened } else if (message.Type == ActivityTypes.Typing) { // Handle knowing tha the user is typing } else if (message.Type == ActivityTypes.Ping) { } return(null); }
public async Task MovieSearch(IDialogContext context, LuisResult result_luis) { QureyController qc = new QureyController(); string ans = ""; qc.PostQuestionOne(result_luis.Query, result_luis.TopScoringIntent.Intent, result_luis.TopScoringIntent.Score.ToString(), "0"); if (result_luis.TopScoringIntent.Score < 0.4) { ans = qc.GetTrainedAnswer(result_luis.Query); qc.PostAnswerOne(ans, result_luis.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); } else { string entity = ""; if (result_luis.Entities.Count > 0) { entity = result_luis.Entities[0].Entity; } if (entity == "") { entity = "Star Wars: The Last Jedi"; await context.PostAsync("Here is a movie which i found : "); } try { MoviesSearch search = new MoviesSearch(); Movie movieResult = await search.SearchByName(entity); if (movieResult.id != 0) { CardUtil.showHeroCard((IMessageActivity)context.Activity, movieResult); ans = movieResult.Title; } else { await context.PostAsync($"I couldn't find a movie :0"); } } catch (Exception e) { Debug.WriteLine($"Error when filtering by genre: {e}"); } qc.PostAnswerOne(ans, result_luis.TopScoringIntent.Intent); context.Done <object>(null); } }
private async Task <QnAMakerResult> GetQnAMakerResponse(string query, string knowledgeBaseId, string subscriptionKey) { string responseString = string.Empty; var knowledgebaseId = knowledgeBaseId; // Use knowledge base id created. var qnamakerSubscriptionKey = subscriptionKey; //Use subscription key assigned to you. //Build the URI Uri qnamakerUriBase = new Uri("https://westus.api.cognitive.microsoft.com/qnamaker/v2.0"); var builder = new UriBuilder($"{qnamakerUriBase}/knowledgebases/{knowledgebaseId}/generateAnswer"); //Add the question as part of the body var postBody = $"{{\"question\": \"{query}\"}}"; //Send the POST request using (WebClient client = new WebClient()) { //Set the encoding to UTF8 client.Encoding = System.Text.Encoding.UTF8; //Add the subscription key header client.Headers.Add("Ocp-Apim-Subscription-Key", qnamakerSubscriptionKey); client.Headers.Add("Content-Type", "application/json"); responseString = client.UploadString(builder.Uri, postBody); } //De-serialize the response QnAMakerResult response; try { // response = JsonConvert.DeserializeObject<QnAMakerResult>(responseString); var seriesCollection = JObject.Parse(responseString)["answers"] .ToObject <ObservableCollection <QnAMakerResult> >(); List <QnAMakerResult> res = new List <QnAMakerResult>(); res = seriesCollection.ToList(); response = res[0]; QureyController qc = new QureyController(); qc.PostAnswerOne(response.Answer, "None"); return(response); } catch { throw new Exception("Unable to deserialize QnA Maker response string."); } }
public async Task TrainBot(IDialogContext context, IAwaitable <IMessageActivity> activity, LuisResult result) { QureyController qc = new QureyController(); qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.TopScoringIntent.Score > 0.3) { context.Call(new TrainDialog(), this.ResumeAfterOptionDialog); } else { await context.PostAsync("tr tr tr trrrr try to ask me something else xD ttr trtrr trr trr"); context.Wait(MessageReceived); } }
private async Task AfterQnADialog(IDialogContext context, IAwaitable <bool> result) { QureyController qc = new QureyController(); var answerFound = await result; // we might want to send a message or take some action if no answer was found (false returned) if (!answerFound) { string ans = "Sorry, I really do not understand your intention. You can write 'help' to get more options. You can also train me by typing 'Train me'."; await context.PostAsync(ans); qc.PostAnswerOne(ans, "None"); } context.Wait(MessageReceived); }
public virtual async Task ResumeGetAnswer(IDialogContext context, IAwaitable <string> mobile) { string response = await mobile; answer = response; try { QureyController qc = new QureyController(); qc.PostTrainedAnswer(question, answer); } finally { await context.PostAsync("Thanks for training me. If you would like to add more, just type 'train'"); context.Done(this); } }
public async Task WhoIsYou(IDialogContext context, IAwaitable <IMessageActivity> activity, LuisResult result) { QureyController qc = new QureyController(); qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.TopScoringIntent.Score < 0.4) { string ans = ""; ans = qc.GetTrainedAnswer(result.Query); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); } else { string ans = ""; string[] matching_words = { "yourself", "robot", "human", "created" }; string[] matching_words1 = { "doing" }; if (FindMatchingString.findMatchingString(result.Query, matching_words)) { ans = "Well I am created out of 0 and 1. I can not say for myself that I'm a human but am I a robot? Huh. I can just say that I was created in good spirit to help you, that's all :) "; } else if (FindMatchingString.findMatchingString(result.Query, matching_words1)) { ans = "All I can say is that I'm created for your purpose."; } else { string[] listAns = { "Like you already know, my name is Arnie and I'm a chat bot, you can ask me some interesting question :)", "Arnie is my name and my purpose is to help you waste your time ;)" }; Random rand = new Random(); ans = listAns[rand.Next(0, listAns.Length)]; } await context.PostAsync(ans); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); context.Wait(MessageReceived); } }
public async Task WhoIsQuestion(IDialogContext context, IAwaitable <IMessageActivity> activity, LuisResult result) { QureyController qc = new QureyController(); qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.TopScoringIntent.Score > 0.5) { string entity = result.Query; await context.PostAsync("I think it is : "); try { BingSearch bingSearch = new BingSearch(); bingSearch = BingSearchData.getSearchResult(entity); if (bingSearch != null) { CardUtil.showBingWikiHeroCard((IMessageActivity)context.Activity, bingSearch); } else { await context.PostAsync($"I couldn't find any results :( You can try again."); } } catch (Exception e) { Debug.WriteLine($"I couldn't find any results :( You can try again."); Console.WriteLine(e); } } else { string ans = ""; ans = qc.GetTrainedAnswer(result.Query); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); } }
public async Task Thanks(IDialogContext context, LuisResult result) { QureyController qc = new QureyController(); qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); string ans = ""; string[] listAns = { "No problem :) ", "You are welcome :) ", "Tha's great, you are welcome... " }; Random random = new Random(); int rand = random.Next(0, listAns.Length); ans = listAns[rand]; await context.PostAsync(ans); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); context.Wait(MessageReceived); }
public async Task PopularMovies(IDialogContext context, LuisResult result_luis) { QureyController qc = new QureyController(); qc.PostQuestionOne(result_luis.Query, result_luis.TopScoringIntent.Intent, result_luis.TopScoringIntent.Score.ToString(), "0"); if (result_luis.TopScoringIntent.Score < 0.4) { string ans = ""; ans = qc.GetTrainedAnswer(result_luis.Query); qc.PostAnswerOne(ans, result_luis.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); } else { // List of popular movies try { MoviesSearch search = new MoviesSearch(); List <Movie> movieResult = await search.GetPopularMovies(); if (movieResult.Count != 0) { CardUtil.showHeroCardMovies((IMessageActivity)context.Activity, movieResult); qc.PostAnswer(result_luis.Query, movieResult[0].Title, "PopularMovies", "0.75", "0.75"); } else { await context.PostAsync($"I couldn't find a movie :0"); qc.PostAnswer(result_luis.Query, "I couldn\'t find a movie", "PopularMovies", "0.75", "0.75"); } } catch (Exception e) { Debug.WriteLine($"Error when filtering by popular movies: {e}"); } context.Done <object>(null); } }
public async Task BadLanguage(IDialogContext context, IAwaitable <IMessageActivity> activity, LuisResult result) { QureyController qc = new QureyController(); string ans = ""; qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.TopScoringIntent.Score < 0.4) { ans = qc.GetTrainedAnswer(result.Query); await context.PostAsync(ans); context.Wait(MessageReceived); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); } else { string[] matching_words = { "suck", "rude", "bad", "created", "like" }; if (FindMatchingString.findMatchingString(result.Query, matching_words)) { ans = "I'm so sorry to hear that. Well I'm still developing, give me a chance... :) "; } else { string[] listAns = { "You should not speak like that", "That's not good.", "You should take a deep breath and clear your mind and start again :)", "Maybe to try something else or some other comment :)" }; Random rand = new Random(); ans = listAns[rand.Next(0, listAns.Length)]; } qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); } }
public async Task GoogleSearch(IDialogContext context, LuisResult result_luis) { QureyController qc = new QureyController(); string ans = ""; qc.PostQuestionOne(result_luis.Query, result_luis.TopScoringIntent.Intent, result_luis.TopScoringIntent.Score.ToString(), "0"); try { List <GoogleSearchList> searchResult = GoogleSearchApi.getSearchResult(result_luis.Query); if (searchResult.Count != 0) { await context.PostAsync($"Here is what i found"); await context.PostAsync($"List of search results : "); CardUtil.showHeroCardSearch((IMessageActivity)context.Activity, searchResult); ans = searchResult[0].Link; } else { ans = $"I couldn't find a desired search :("; await context.PostAsync(ans); } } catch (Exception e) { ans = $"Sorry, I'm currently unable to do a specific search, please try again later."; await context.PostAsync(ans); Debug.WriteLine($"Error when filtering by popular movies: {e}"); } if (ans == "") { ans = "Google_search_result"; } qc.PostAnswerOne(ans, result_luis.TopScoringIntent.Intent); context.Done <object>(null); }
public async Task Joke(IDialogContext context, IAwaitable <IMessageActivity> activity, LuisResult result) { QureyController qc = new QureyController(); qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.TopScoringIntent.Score < 0.4) { string ans = ""; ans = qc.GetTrainedAnswer(result.Query); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); } else { await context.PostAsync("Here is one joke... "); await context.PostAsync(qc.GetAnswer(result.Query, "Joke", result.TopScoringIntent.Score.ToString(), "0")); context.Wait(MessageReceived); } }
public async Task None(IDialogContext context, IAwaitable <IMessageActivity> message, LuisResult result) { QureyController qc = new QureyController(); qc.PostQuestionOne(result.Query, "None", "0.75", "0.75"); string ans = qc.GetTrainedAnswer(result.Query); if (ans == "") { var qnadialog = new QnADialog(); var messageToForward = await message; await context.Forward(qnadialog, AfterQnADialog, messageToForward, CancellationToken.None); } else { qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); } }
public async Task UserAnswers(IDialogContext context, IAwaitable <IMessageActivity> activity, LuisResult result) { QureyController qc = new QureyController(); string ans = ""; if (result.TopScoringIntent.Score < 0.4) { ans = qc.GetTrainedAnswer(result.Query); } if (ans == "" || ans == "Hmmm ...") { string[] listAns = { "That's great.", "Excelent", "I'm glad to hear that." }; Random rand = new Random(); ans = listAns[rand.Next(0, listAns.Length)]; } qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); }
public async Task No(IDialogContext context, LuisResult result) { QureyController qc = new QureyController(); qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.TopScoringIntent.Score < 0.3) { string ans = ""; ans = qc.GetTrainedAnswer(result.Query); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); } else { string[] matching_words = { "nothing" }; string ans = ""; string[] listAns = { "Oh ok..", "Well..ok.", "Ok, human.", "I did not expect that." }; if (FindMatchingString.findMatchingString(result.Query, matching_words)) { listAns = new string[] { "Let yourself experience how nothing feels.", "Often under nothingness is great depth", "I invite you to rest in nothingness" }; } Random random = new Random(); int rand = random.Next(0, listAns.Length); ans = listAns[rand]; qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); } }
public async Task Movies(IDialogContext context, LuisResult result) { QureyController qc = new QureyController(); string ans = ""; bool savedData = false; qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.TopScoringIntent.Score < 0.4) { ans = qc.GetTrainedAnswer(result.Query); savedData = true; } if (ans == "" || ans == "Hmmm ...") { ans = qc.GetAnswer(result.Query, "Movies", result.TopScoringIntent.Score.ToString(), "0"); savedData = true; } if (ans == "") { var options = new MovieChoice[] { MovieChoice.PopularMovie, MovieChoice.SearchMovie }; var descriptions = new string[] { "List Popular Movies", "Search for movie" }; PromptDialog.Choice <MovieChoice>(context, ResumeAfterMovieChoiceSelection, options, "What would you like to choose about movies?", descriptions: descriptions); } if (savedData) { qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); savedData = false; await context.PostAsync(ans); context.Wait(MessageReceived); } }
public virtual async Task MessageReceivedAsync(IDialogContext context, IAwaitable <IMessageActivity> result) { var message = await result; string entity = ""; if (message.Text.Length > 0) { entity = message.Text; } await context.PostAsync("Here are results i found : "); try { BingSearch bingSearch = new BingSearch(); bingSearch = BingSearchData.getSearchResult(entity); if (bingSearch != null) { CardUtil.showBingWikiHeroCard((IMessageActivity)context.Activity, bingSearch); QureyController qc = new QureyController(); qc.PostAnswerOne(bingSearch.entities.readLink, "BingSearch"); } else { await context.PostAsync($"I couldn't find what you asked, you can always try again.."); } } catch (Exception e) { Debug.WriteLine($"Error when filtering by genre: {e}"); } context.Done <object>(null); }
public async Task Yes(IDialogContext context, LuisResult result) { QureyController qc = new QureyController(); string ans = ""; qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.TopScoringIntent.Score < 0.3) { ans = qc.GetTrainedAnswer(result.Query); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); } else { string[] matching_words = { "everything" }; string[] listAns = { "Yes is what i like to hear.", "That's the spirit.", "Yes is always the right answer." }; if (FindMatchingString.findMatchingString(result.Query, matching_words)) { listAns = new string[] { "We should talk more often", "Ohh.. ok." }; } Random random = new Random(); int rand = random.Next(0, listAns.Length); ans = listAns[rand]; await context.PostAsync(ans); context.Wait(MessageReceived); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); } }
public async Task Game(IDialogContext context, LuisResult result) { QureyController qc = new QureyController(); qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); if (result.TopScoringIntent.Score < 0.4) { string ans = ""; ans = qc.GetTrainedAnswer(result.Query); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); } else { await context.PostAsync( "To play a game, answer question using numbers (1/2). To quit or exit game, just type 'stop' "); context.Call(new GameDialog(), this.ResumeGameAfterOptionDialog); } }
public async Task Greetigns(IDialogContext context, IAwaitable <IMessageActivity> message, LuisResult result) { QureyController qc = new QureyController(); if (result.TopScoringIntent.Score < 0.4) { string ans = ""; ans = qc.GetTrainedAnswer(result.Query); qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); } else { string[] listAns1 = { "Well hello there, how are you today?", "Hello, how are you?", "Hellloooo... What's up?" }; string[] listAns2 = { "I'm relaxing, what about you?", "Nothing much, what about you?", "Just chillin... :) " }; string[] listAns3 = { "I'm fine thank you, what about you?", "I'm doing great", "Great, what about you?", "Fine, what about you :)" }; string ans = ""; Random rand = new Random(); bool found = false; string[] matching_words1 = { "hello", "yo", "hi", "helo", "Greetings" }; string[] matching_words2 = { "what", "doing" }; string[] matching_words3 = { "how" }; if (FindMatchingString.findMatchingString(result.Query, matching_words1)) { ans = listAns1[rand.Next(0, listAns1.Length)]; found = true; } else if (FindMatchingString.findMatchingString(result.Query, matching_words2)) { ans = listAns2[rand.Next(0, listAns2.Length)]; found = true; } else if (FindMatchingString.findMatchingString(result.Query, matching_words3)) { ans = listAns3[rand.Next(0, listAns3.Length)]; found = true; } else { ans = qc.GetTrainedAnswer(result.Query); if (ans.Length > 0) { found = true; } } if (!found) { ans = "Greetins to you :)"; } qc.PostQuestionOne(result.Query, result.TopScoringIntent.Intent, result.TopScoringIntent.Score.ToString(), "0"); qc.PostAnswerOne(ans, result.TopScoringIntent.Intent); await context.PostAsync(ans); context.Wait(MessageReceived); } }