From d335d4c08b804629b6cd5d249359caf9de6fc2cf Mon Sep 17 00:00:00 2001 From: xueqingkun Date: Fri, 19 Jan 2024 13:51:12 +0800 Subject: [PATCH] =?UTF-8?q?rasa=EF=BC=9A=E4=BC=98=E5=8C=96updateDataset?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rasa/service/Text2vecService.java | 4 +++ .../rasa/service/Text2vecServiceImpl.java | 35 ++++++++++++------- .../rasa/service/impl/RasaCmdServiceImpl.java | 8 +---- 3 files changed, 28 insertions(+), 19 deletions(-) diff --git a/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/Text2vecService.java b/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/Text2vecService.java index c7b8677e..a8c44334 100644 --- a/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/Text2vecService.java +++ b/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/Text2vecService.java @@ -1,10 +1,12 @@ package com.supervision.rasa.service; +import com.supervision.rasa.pojo.dto.QuestionAnswerDTO; import com.supervision.rasa.pojo.dto.Text2vecDataVo; import com.supervision.rasa.pojo.dto.Text2vecMatchesReq; import com.supervision.rasa.pojo.dto.Text2vecMatchesRes; import java.util.List; +import java.util.Map; public interface Text2vecService { @@ -15,6 +17,8 @@ public interface Text2vecService { */ boolean updateDataset(List text2vecDataVoList); + boolean updateDataset(Map questionAnswerDTOMap); + /** * 语句匹配 * @param text2vecMatchesReq diff --git a/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/Text2vecServiceImpl.java b/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/Text2vecServiceImpl.java index 6ad53710..f1b2b36c 100644 --- a/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/Text2vecServiceImpl.java +++ b/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/Text2vecServiceImpl.java @@ -59,6 +59,27 @@ public class Text2vecServiceImpl implements Text2vecService { return "success".equals(JSONUtil.parseObj(body).get("status")); } + @Override + public boolean updateDataset(Map questionAnswerDTOMap) { + if (CollUtil.isEmpty(questionAnswerDTOMap)){ + log.info("updateDataset: questionAnswerDTOMap is empty"); + return false; + } + // 更新text2vec数据信息 + List text2vecDataVoList = questionAnswerDTOMap.entrySet().stream() + .filter(entry -> Objects.nonNull(entry.getValue()) + && CollUtil.isNotEmpty(entry.getValue().getQuestionList()) + && CollUtil.isNotEmpty(entry.getValue().getAnswerList())) + .flatMap(entry -> entry.getValue().getQuestionList().stream() + .map(question -> new Text2vecDataVo(entry.getValue().getAnswerList().get(0), question))).collect(Collectors.toList()); + + if (CollUtil.isEmpty(text2vecDataVoList)){ + log.info("updateDataset: text2vecDataVoList is empty"); + return false; + } + return updateDataset(text2vecDataVoList); + } + @Override public List matches(Text2vecMatchesReq text2vecMatchesReq) { @@ -83,19 +104,9 @@ public class Text2vecServiceImpl implements Text2vecService { log.info("question.json文件已经存在,不进行text2vec数据初始化操作...."); return; } - Map intentCodeAndIdMap = rasaCmdService.getIntentCodeAndIdMap(); // 更新text2vec数据信息 - List text2vecDataVoList = intentCodeAndIdMap.entrySet().stream() - .filter(entry -> Objects.nonNull(entry.getValue()) - && CollUtil.isNotEmpty(entry.getValue().getQuestionList()) - && CollUtil.isNotEmpty(entry.getValue().getAnswerList())) - .flatMap(entry -> entry.getValue().getQuestionList().stream() - .map(question -> new Text2vecDataVo(entry.getValue().getAnswerList().get(0), question))).collect(Collectors.toList()); - if (CollUtil.isEmpty(text2vecDataVoList)){ - log.info("text2vec数据初始化失败,text2vec数据为空...."); - return; - } - this.updateDataset(text2vecDataVoList); + Map intentCodeAndIdMap = rasaCmdService.getIntentCodeAndIdMap(); + this.updateDataset(intentCodeAndIdMap); } } diff --git a/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/impl/RasaCmdServiceImpl.java b/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/impl/RasaCmdServiceImpl.java index 038a55d5..265afe1a 100644 --- a/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/impl/RasaCmdServiceImpl.java +++ b/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/impl/RasaCmdServiceImpl.java @@ -218,13 +218,7 @@ public class RasaCmdServiceImpl implements RasaCmdService { runExec(rasaCmdArgumentVo); // 更新text2vec数据信息 - List text2vecDataVoList = questionAnswerDTOMap.entrySet().stream() - .filter(entry -> Objects.nonNull(entry.getValue()) - && CollUtil.isNotEmpty(entry.getValue().getQuestionList()) - && CollUtil.isNotEmpty(entry.getValue().getAnswerList())) - .flatMap(entry -> entry.getValue().getQuestionList().stream() - .map(question -> new Text2vecDataVo(entry.getValue().getAnswerList().get(0), question))).collect(Collectors.toList()); - text2vecService.updateDataset(text2vecDataVoList); + text2vecService.updateDataset(questionAnswerDTOMap); return true; }