public async Task QnATests() { string text = "asd"; Uri uri = new Uri("http://test"); QnAMakerRequestBody postBody = new QnAMakerRequestBody(); string subscriptionKey; QnAMakerResults qnaResults1 = JsonConvert.DeserializeObject <QnAMakerResults>( "{\"answers\":[{\"answer\":\"Test answer 1.1\",\"questions\":[\"Test question 1.1\",\"Test alternate phrase 1.1\"],\"score\":88.5},{\"answer\":\"Test answer 1.2\",\"questions\":[\"Test question 1.2\",\"Test alternate phrase 1.2\"],\"score\":58.3},{\"answer\":\"Test answer 1.3\",\"questions\":[\"Test question 1.3\",\"Test alternate phrase 1.3\"],\"score\":42.7}]}"); string expectedResponse1 = "Test answer 1.1"; Mock <IQnAService> qnaServiceMock1 = new Mock <IQnAService>(); qnaServiceMock1.Setup(x => x.QueryServiceAsync(It.IsAny <Uri>(), It.IsAny <QnAMakerRequestBody>(), It.IsAny <string>())).ReturnsAsync(qnaResults1); QnAMakerResults qnaResults2 = JsonConvert.DeserializeObject <QnAMakerResults>( "{\"answers\":[{\"answer\":\"Test answer 2.1\",\"questions\":[\"Test question 2.1\",\"Test alternate phrase 2.1\"],\"score\":98.5},{\"answer\":\"Test answer 2.2\",\"questions\":[\"Test question 2.2\",\"Test alternate phrase 2.2\"],\"score\":78.3},{\"answer\":\"Test answer 2.3\",\"questions\":[\"Test question 2.3\",\"Test alternate phrase 2.3\"],\"score\":40.5}]}"); string expectedResponse2 = "Test answer 2.1"; Mock <IQnAService> qnaServiceMock2 = new Mock <IQnAService>(); qnaServiceMock2.Setup(x => x.QueryServiceAsync(It.IsAny <Uri>(), It.IsAny <QnAMakerRequestBody>(), It.IsAny <string>())).ReturnsAsync(qnaResults2); var qnaDialog1 = new QnADialog(qnaServiceMock1.Object); await this.TestQnADialogResponse(qnaDialog1, expectedResponse1); var qnaDialog2 = new QnADialog(qnaServiceMock1.Object, qnaServiceMock2.Object); await this.TestQnADialogResponse(qnaDialog2, expectedResponse2); return; }
private async void FilterIntentScore(IDialogContext context, LuisResult result) { if (result.TopScoringIntent.Score < INTENT_SCORE_THRESHOLD) { // Chamar QnA Maker QnAMakerResult qnaResult = await QnADialog.MakeRequest(result.Query); if (qnaResult != null && result.TopScoringIntent.Score >= INTENT_SCORE_THRESHOLD && qnaResult.Score >= INTENT_SCORE_THRESHOLD) { await context.PostAsync(qnaResult.Answer); } } }
internal static IDialog <object> MakeRoot() { var qnaDialog = new QnADialog { MetadataFilter = new List <Metadata>() { new Metadata() { Name = "Category", Value = "Moving home" } } }; return(qnaDialog); }
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); } }
private async Task MessageReceivedAsync(IDialogContext context, IAwaitable <IMessageActivity> result) { /* When MessageReceivedAsync is called, it's passed an IAwaitable<IMessageActivity>. To get the message, * await the result. */ var message = await result; //在这里判断用户输入是否包含关键字“证明”,如果包含,启动证明表单 Dialog if (message.Text.Contains("证明")) { //不现实该提示,避免微信中多条回复导致报错 //await context.PostAsync("您想开具什么证明?"); var certDialog = new CertificationDialog(); await context.Forward(certDialog, AfterCertificationDialog, message, System.Threading.CancellationToken.None); } else if (message.Text.Contains("rpademo")) { //magic word for triggering rpa demo RPADemoCSVPortTypeClient testProcess = new RPADemoCSVPortTypeClient("RPADemoCSVSoap"); testProcess.ClientCredentials.UserName.UserName = "******"; testProcess.ClientCredentials.UserName.Password = "******"; testProcess.RPADemoCSV(); await context.PostAsync("RPA Demo has been triggered!"); context.Wait(this.MessageReceivedAsync); } else { var qnadialog = new QnADialog(); var messageToForward = message; //context.Call(qnadialog, this.AfterQnADialog); await context.Forward(qnadialog, AfterQnADialog, messageToForward, System.Threading.CancellationToken.None); } //await this.SendWelcomeMessageAsync(context); //context.Wait(this.MessageReceivedAsync); }