diff --git a/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/RasaCmdService.java b/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/RasaCmdService.java index 92e1256e..b86d7089 100644 --- a/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/RasaCmdService.java +++ b/virtual-patient-rasa/src/main/java/com/supervision/rasa/service/RasaCmdService.java @@ -25,6 +25,6 @@ public interface RasaCmdService { Map generateRasaYml(String path); - public Map getIntentCodeAndIdMap(); + Map getIntentCodeAndIdMap(); } 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 4058c7dd..62f576ad 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 @@ -1,19 +1,17 @@ package com.supervision.rasa.service; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.date.TimeInterval; import cn.hutool.core.io.FileUtil; import cn.hutool.core.lang.Assert; -import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; -import cn.hutool.json.JSON; -import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; 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 lombok.RequiredArgsConstructor; -import lombok.extern.log4j.Log4j; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -53,9 +51,10 @@ public class Text2vecServiceImpl implements Text2vecService { String url = TEXT2VEC_SERVICE_DOMAIN + UPDATE_DATASET_PATH; log.info("updateDataset: url is : {}",url); + TimeInterval timer = DateUtil.timer(); String body = HttpUtil.post(url, JSONUtil.toJsonStr(text2vecDataVoList)); - log.info("updateDataset: res is :{}",body); + log.info("updateDataset: res is :{},耗时:{}s",body,timer.intervalSecond()); return "success".equals(JSONUtil.parseObj(body).get("status")); } @@ -87,8 +86,13 @@ public class Text2vecServiceImpl implements Text2vecService { Map intentCodeAndIdMap = rasaCmdService.getIntentCodeAndIdMap(); // 更新text2vec数据信息 List text2vecDataVoList = intentCodeAndIdMap.entrySet().stream() + .filter(entry -> Objects.nonNull(entry.getValue()) && CollUtil.isNotEmpty(entry.getValue().getQuestionList())) .flatMap(entry -> entry.getValue().getQuestionList().stream() .map(question -> new Text2vecDataVo(entry.getKey(), question))).collect(Collectors.toList()); + if (CollUtil.isEmpty(text2vecDataVoList)){ + log.info("text2vec数据初始化失败,text2vec数据为空...."); + return; + } this.updateDataset(text2vecDataVoList); } 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 807900c0..c4d51a0e 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 @@ -319,6 +319,10 @@ public class RasaCmdServiceImpl implements RasaCmdService { List askTemplateQuestionLibraryList = askTemplateQuestionLibraryService.lambdaQuery().list(); // 生成默认意图的nlu for (AskTemplateQuestionLibrary questionLibrary : askTemplateQuestionLibraryList) { + if (CollUtil.isEmpty(questionLibrary.getQuestion())){ + log.warn("getIntentCodeAndIdMap: questionId:{},description:{},questionLibrary.getQuestion() is empty", questionLibrary.getId(), questionLibrary.getDescription()); + continue; + } // 开始生成 // 拼接格式:code_id(防止重复) String intentCode = questionLibrary.getCode() + "_" + questionLibrary.getId(); @@ -331,6 +335,10 @@ public class RasaCmdServiceImpl implements RasaCmdService { .isNotNull(ConfigPhysicalTool::getCallOutQuestion).list(); for (ConfigPhysicalTool tool : physicalToolList) { + if (CollUtil.isEmpty(tool.getCallOutQuestion())){ + log.warn("getIntentCodeAndIdMap: toolId:{},toolName:{},tool.getCallOutQuestion() is empty", tool.getId(), tool.getToolName()); + continue; + } // 把呼出的问题全部加进去 String toolIntent = "tool_" + tool.getCode(); // answer格式为:---tool---工具ID @@ -345,6 +353,10 @@ public class RasaCmdServiceImpl implements RasaCmdService { .isNotNull(ConfigAncillaryItem::getCallOutQuestion).list(); for (ConfigAncillaryItem ancillary : ancillaryItemList) { + if (CollUtil.isEmpty(ancillary.getCallOutQuestion())){ + log.warn("getIntentCodeAndIdMap: ancillaryId:{},itemName:{},ancillary.getCallOutQuestion() is empty", ancillary.getId(), ancillary.getItemName()); + continue; + } // 把辅助问诊的问题全部加进去 String itemIntent = "ancillary_" + ancillary.getCode(); // answer格式为:---ancillary---工具ID