private async Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result) { var activity = await result as IMessageActivity; string responseString = string.Empty; var query = activity.Text.ToString(); if (query == "regresar") { context.Call(new FAQDialog(), CallBack); } else { var knowledgebaseId = "64b38a8c-0075-4bc9-8466-79c2148d7b05"; var qnamakerSubscriptionKey = "EndpointKey c7eb7a4f-937e-47cc-8eca-5308d8f7cd07"; Uri qnamakerUriBase = new Uri("https://inversionqna.azurewebsites.net/qnamaker"); var builder = new UriBuilder($"{qnamakerUriBase}/knowledgebases/{knowledgebaseId}/generateAnswer"); var postBody = $"{{\"question\": \"{query}\"}}"; using (WebClient client = new WebClient()) { client.Encoding = System.Text.Encoding.UTF8; client.Headers.Add("Authorization", qnamakerSubscriptionKey); client.Headers.Add("Content-Type", "application/json"); responseString = client.UploadString(builder.Uri, postBody); } var receivedAnswer = QnAHelper.HandleResponse(responseString); await context.PostAsync(receivedAnswer); context.Wait(MessageReceivedAsync); } }
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result) { var activity = await result as IMessageActivity; string responseString = string.Empty; var query = activity.Text.ToString(); if (query == "regresar") { context.Call(new FAQDialog(), CallBack); } else { var knowledgebaseId = "7a8ae76d-dc2d-48d8-9791-2b6008d88f43"; var qnamakerSubscriptionKey = "EndpointKey d459479f-f29d-40d1-aded-bb0b258603ab"; Uri qnamakerUriBase = new Uri("https://aforeqna2.azurewebsites.net/qnamaker"); var builder = new UriBuilder($"{qnamakerUriBase}/knowledgebases/{knowledgebaseId}/generateAnswer"); var postBody = $"{{\"question\": \"{query}\"}}"; using (WebClient client = new WebClient()) { client.Encoding = System.Text.Encoding.UTF8; client.Headers.Add("Authorization", qnamakerSubscriptionKey); client.Headers.Add("Content-Type", "application/json"); responseString = client.UploadString(builder.Uri, postBody); } var receivedAnswer = QnAHelper.HandleResponse(responseString); await context.PostAsync(receivedAnswer); context.Wait(MessageReceivedAsync); } }
public async Task <bool> PushLatestQnA(PushLatestQnA data) { QnAHelper qnaHelper = new QnAHelper { ProxyObj = ProxyHelper.GetProxyForQnA(), QnAHost = WebApiConstants.QnAHost, QnAKey = WebApiConstants.QnAKey, QnAService = WebApiConstants.QnAService, QnAKnowledgeBaseId = WebApiConstants.QnAKnowledgeBaseId }; var lstQnaQuestion = await qnaHelper.GetAllQnAFromKB(WebApiConstants.QnAKnowledgeBaseId); logger.Info("Start Push QnAs to QnA Maker"); var result = await qnaHelper.PushLatestQuestionToQnA(WebApiConstants.QnAKnowledgeBaseId, data.ListQuestionAndAnswers, lstQnaQuestion.qnaDocuments); logger.Info("Finish Push QnAs to QnA Maker"); if (result) { logger.Info("Start Publish QnA Knowledge Base"); result = await qnaHelper.PublishQnAKnowledgeBase(WebApiConstants.QnAKnowledgeBaseId); logger.Info("Finish Publish QnA Knowledge Base"); } return(await Task.FromResult(result)); }
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable <object> result) { var activity = await result as IMessageActivity; string responseString = string.Empty; var query = activity.Text.ToString(); string host = ""; string EndpointKey = ""; string knowledgeBase = ""; var builder = new UriBuilder($"{host}/qnamaker/knowledgebases/{knowledgeBase}/generateAnswer"); var postBody = $"{{\"question\": \"{query}\"}}"; using (WebClient client = new WebClient()) { client.Encoding = System.Text.Encoding.UTF8; client.Headers.Add("Authorization", EndpointKey); client.Headers.Add("Content-Type", "application/json"); responseString = client.UploadString(builder.Uri, postBody); } var receivedAnswer = QnAHelper.HandleResponse(responseString); await context.PostAsync(receivedAnswer); context.Wait(MessageReceivedAsync); }
private async Task <DialogTurnResult> ActStepAsync(WaterfallStepContext stepContext, CancellationToken cancellationToken) { var luisResult = await LuisHelper.ExecuteLuisQuery(Configuration, Logger, stepContext.Context, cancellationToken); switch (luisResult.Intent) { case "Book_flight": //We need to return flight details // Run the BookingDialog giving it whatever details we have from the LUIS call, it will fill out the remainder. return(await stepContext.BeginDialogAsync(nameof(BookingDialog), luisResult, cancellationToken)); //return await stepContext.BeginDialogAsync(nameof(NewerDialog), luisResult, cancellationToken); case "AuthDialog_Intent": //Type something like "Oauth card" or "Auth Dialog intent" //Run the AuthBot Dialog return(await stepContext.BeginDialogAsync(nameof(AuthDialog), luisResult, cancellationToken)); case "APIDialog_Intent": //Type something like "Salesforce query" or "I need to check my quota" "I need to check my sales targets" //Run the AuthBot Dialog return(await stepContext.BeginDialogAsync(nameof(APIDialog), luisResult, cancellationToken)); case "None": case "Cancel": default: //Default to QnA await QnAHelper.ExecuteQnAQuery(Configuration, Logger, stepContext.Context, cancellationToken); return(await stepContext.BeginDialogAsync(nameof(MainDialog), null)); } }
public QnADialog(UserState userState) : base(nameof(QnADialog)) { _globalUserStateAccessor = userState.CreateProperty <GlobalUserState>(nameof(GlobalUserState)); var waterfallSteps = new WaterfallStep[] { AskForQuestionAsync, DeployAnswerAsync, }; AddDialog(new WaterfallDialog(nameof(WaterfallDialog), waterfallSteps)); AddDialog(new TextPrompt(textPromptName)); qnaHandler = new QnAHelper("genericqna", "96ec4044-8149-44a8-a6db-c875a2595140", "EndpointKey 455ea526-1307-46bd-97aa-52abe80ebcd5"); InitialDialogId = nameof(WaterfallDialog); }
public async Task <bool> PublishQnAKnowledgeBase() { QnAHelper qnaHelper = new QnAHelper { ProxyObj = ProxyHelper.GetProxyForQnA(), QnAHost = WebApiConstants.QnAHost, QnAKey = WebApiConstants.QnAKey, QnAService = WebApiConstants.QnAService, QnAKnowledgeBaseId = WebApiConstants.QnAKnowledgeBaseId }; logger.Info("Start Publish QnA Knowledge Base"); var result = await qnaHelper.PublishQnAKnowledgeBase(WebApiConstants.QnAKnowledgeBaseId); logger.Info("Finish Publish QnA Knowledge Base"); return(await Task.FromResult(result)); }
public async Task <GetQnAKnowledgeBaseResult> GetQnAKnowledgeBase() { QnAHelper qnaHelper = new QnAHelper { ProxyObj = ProxyHelper.GetProxyForQnA(), QnAHost = WebApiConstants.QnAHost, QnAKey = WebApiConstants.QnAKey, QnAService = WebApiConstants.QnAService, QnAKnowledgeBaseId = WebApiConstants.QnAKnowledgeBaseId }; logger.Info("Start get QnAs from QnA Maker"); var lstQuestionResponseString = await qnaHelper.GetAllQnAFromKB(WebApiConstants.QnAKnowledgeBaseId); logger.Info("Finish get QnAs from QnA Maker"); return(await Task.FromResult <GetQnAKnowledgeBaseResult>(lstQuestionResponseString)); }
public async Task <Result <int> > SubmitAsync( Answer answer, int questionId) { ResultCode resultCode; if (!_context.Questions.Any(q => q.Id == questionId)) { resultCode = ResultCode.CannotFindQuestion; } else if (QnAHelper.IsMarkedAnswered(_context, questionId)) { resultCode = ResultCode.CannotSubmitForAnsweredQuestion; } else { answer.QuestionId = questionId; await SaveAsync(answer); resultCode = ResultCode.SuccessfullySubmitted; } return(new Result <int>(resultCode, answer.Id)); }
public bool IsMarkedAnswered(int questionId) => QnAHelper.IsMarkedAnswered(_context, questionId);