From 9bf3ca63549393d1a017f27b3a5216719eeafdfb Mon Sep 17 00:00:00 2001 From: Martin Battaglino Date: Mon, 10 May 2021 22:00:10 -0300 Subject: [PATCH 1/2] Fix MultiTurn QnA conversation --- .../microsoft/bot/ai/qna/dialogs/QnAMakerDialog.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/libraries/bot-ai-qna/src/main/java/com/microsoft/bot/ai/qna/dialogs/QnAMakerDialog.java b/libraries/bot-ai-qna/src/main/java/com/microsoft/bot/ai/qna/dialogs/QnAMakerDialog.java index 959a39efa..9c47c5279 100644 --- a/libraries/bot-ai-qna/src/main/java/com/microsoft/bot/ai/qna/dialogs/QnAMakerDialog.java +++ b/libraries/bot-ai-qna/src/main/java/com/microsoft/bot/ai/qna/dialogs/QnAMakerDialog.java @@ -854,13 +854,9 @@ private CompletableFuture callGenerateAnswer(WaterfallStepCont // Calling QnAMaker to get response. return this.getQnAMakerClient(stepContext).thenApply(qnaMakerClient -> { - QueryResults response = - (QueryResults) stepContext.getState().get(String.format("turn.qnaresult%s", this.hashCode())); - if (response == null) { - response = qnaMakerClient + QueryResults response = qnaMakerClient .getAnswersRaw(stepContext.getContext(), dialogOptions.getQnAMakerOptions(), null, null) .join(); - } // Resetting previous query. Integer previousQnAId = -1; @@ -979,9 +975,7 @@ private CompletableFuture checkForMultiTurnPrompt(WaterfallSte QueryResult answer = response.get(0); if (answer.getContext() != null && answer.getContext().getPrompts().length > 0) { - Map previousContextData = - ObjectPath.getPathValue(stepContext.getActiveDialog().getState(), QNA_CONTEXT_DATA, Map.class); - + Map previousContextData = ObjectPath.getPathValue(stepContext.getActiveDialog().getState(), QNA_CONTEXT_DATA, Map.class, new HashMap<>()); for (QnAMakerPrompt prompt : answer.getContext().getPrompts()) { previousContextData.put(prompt.getDisplayText(), prompt.getQnaId()); } From a2f761c02fe43335709abcbcf290ef5122121800 Mon Sep 17 00:00:00 2001 From: Martin Battaglino Date: Tue, 11 May 2021 09:50:29 -0300 Subject: [PATCH 2/2] Fix linter issue --- .../com/microsoft/bot/ai/qna/dialogs/QnAMakerDialog.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/libraries/bot-ai-qna/src/main/java/com/microsoft/bot/ai/qna/dialogs/QnAMakerDialog.java b/libraries/bot-ai-qna/src/main/java/com/microsoft/bot/ai/qna/dialogs/QnAMakerDialog.java index 9c47c5279..9c5480071 100644 --- a/libraries/bot-ai-qna/src/main/java/com/microsoft/bot/ai/qna/dialogs/QnAMakerDialog.java +++ b/libraries/bot-ai-qna/src/main/java/com/microsoft/bot/ai/qna/dialogs/QnAMakerDialog.java @@ -975,7 +975,12 @@ private CompletableFuture checkForMultiTurnPrompt(WaterfallSte QueryResult answer = response.get(0); if (answer.getContext() != null && answer.getContext().getPrompts().length > 0) { - Map previousContextData = ObjectPath.getPathValue(stepContext.getActiveDialog().getState(), QNA_CONTEXT_DATA, Map.class, new HashMap<>()); + Map previousContextData = + ObjectPath.getPathValue( + stepContext.getActiveDialog().getState(), + QNA_CONTEXT_DATA, + Map.class, + new HashMap<>()); for (QnAMakerPrompt prompt : answer.getContext().getPrompts()) { previousContextData.put(prompt.getDisplayText(), prompt.getQnaId()); }