From 61db2e6d137580ed6715c0d3d9dcc5d15d251ab7 Mon Sep 17 00:00:00 2001 From: liu Date: Tue, 21 Nov 2023 17:37:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96:=E5=A2=9E=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E5=AF=B9=E8=AF=9D=E7=9A=84=E6=97=A5=E5=BF=97=E7=9A=84=E8=AE=B0?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AskServiceImpl.java | 43 ++++++++----------- 1 file changed, 17 insertions(+), 26 deletions(-) diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java index f39c0d6b..55332983 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java @@ -66,6 +66,7 @@ public class AskServiceImpl implements AskService { // 这里调用京东数字人接口首先根据token获取房间号 String roomId = HumanUtil.queryRoomId(talkReqVO.getRoomKey(), talkReqVO.getRoomToken()); HumanUtil.textDriven("您好,我没有听懂您说什么", roomId); + saveQaRecord(talkReqVO.getProcessId(), "default", null, talkReqVO.getText(), "您好,我没有听懂您说什么"); } TalkResultResVO talkResultResVO = new TalkResultResVO(); // 这里校验,rasa回复的结果是不是action @@ -87,6 +88,7 @@ public class AskServiceImpl implements AskService { if (ObjectUtil.isEmpty(library)) { log.info("{}:未从问题库中找到,回答未识别语句", rasaResult); HumanUtil.textDriven("您好,我没有听懂您说什么", roomId); + saveQaRecord(talkReqVO.getProcessId(), "default", null, talkReqVO.getText(), "您好,我没有听懂您说什么"); } else { AskPatientAnswer askPatientAnswer = askPatientAnswerService.lambdaQuery().eq(AskPatientAnswer::getPatientId, process.getPatientId()) .eq(AskPatientAnswer::getLibraryQuestionId, library.getId()).last("limit 1").one(); @@ -98,19 +100,12 @@ public class AskServiceImpl implements AskService { String resText = library.getDefaultAnswer().get(RandomUtil.randomInt(0, library.getDefaultAnswer().size())); HumanUtil.textDriven(resText, roomId); // 保存记录 - DiagnosisQaRecord record = new DiagnosisQaRecord(); - record.setProcessId(talkReqVO.getProcessId()); - record.setAnswerType("default"); - // 注意,这里如果有默认回答,回答的结果是默认结果ID - record.setAnswerId(library.getId()); - record.setQuestion(talkReqVO.getText()); - record.setAnswer(resText); - record.setCreateUserId(UserUtil.getUser().getId()); - record.insert(); + saveQaRecord(talkReqVO.getProcessId(), "default", library.getId(), talkReqVO.getText(), resText); log.info("{}:找到了默认答案:{}", rasaResult, talkReqVO.getText()); } else { log.info("{}:没有从默认答案中找到找到默认内容,回复未识别语句", rasaResult); HumanUtil.textDriven("您好,我没有听懂您说什么", roomId); + saveQaRecord(talkReqVO.getProcessId(), "default", null, talkReqVO.getText(), "您好,我没有听懂您说什么"); } } else { if (CollUtil.isEmpty(askPatientAnswer.getAnswer())) { @@ -120,15 +115,7 @@ public class AskServiceImpl implements AskService { log.info("{}:病历配置的回答:{}:为空不为空不为空,但在获取的时候,答案为空,开始回复默认语句,默认语句内容:{}", rasaResult, askPatientAnswer.getId(), resText); HumanUtil.textDriven(resText, roomId); // 保存记录 - DiagnosisQaRecord record = new DiagnosisQaRecord(); - record.setProcessId(talkReqVO.getProcessId()); - record.setAnswerType("default"); - // 注意,这里如果有默认回答,回答的结果是默认结果ID - record.setAnswerId(library.getId()); - record.setQuestion(talkReqVO.getText()); - record.setAnswer(resText); - record.setCreateUserId(UserUtil.getUser().getId()); - record.insert(); + saveQaRecord(talkReqVO.getProcessId(), "default", library.getId(), talkReqVO.getText(), resText); } else { log.info("{}:病历配置的回答:{}:为空不为空,但在获取的时候,答案为空,但是获取默认语句也为空,那么回复未识别语句", rasaResult, askPatientAnswer.getId()); HumanUtil.textDriven("您好,我没有听懂您说什么", roomId); @@ -139,14 +126,7 @@ public class AskServiceImpl implements AskService { log.info("{}:找到了病历配置的回答语句:{},回答内容:{}", rasaResult, askPatientAnswer.getId(), resText); HumanUtil.textDriven(resText, roomId); // 保存记录 - DiagnosisQaRecord record = new DiagnosisQaRecord(); - record.setProcessId(talkReqVO.getProcessId()); - record.setAnswerType("patient"); - record.setAnswerId(askPatientAnswer.getId()); - record.setQuestion(talkReqVO.getText()); - record.setAnswer(resText); - record.setCreateUserId(UserUtil.getUser().getId()); - record.insert(); + saveQaRecord(talkReqVO.getProcessId(), "patient", askPatientAnswer.getId(), talkReqVO.getText(), resText); } } @@ -156,6 +136,17 @@ public class AskServiceImpl implements AskService { return talkResultResVO; } + private void saveQaRecord(String processId, String answerType, String answerId, String question, String resText) { + DiagnosisQaRecord record = new DiagnosisQaRecord(); + record.setProcessId(processId); + record.setAnswerType(answerType); + record.setAnswerId(answerId); + record.setQuestion(question); + record.setAnswer(resText); + record.setCreateUserId(UserUtil.getUser().getId()); + record.insert(); + } + @Override public String replyVoice() {