rasa : initText2vecDataset 判空+计时

dev_2.1.0
xueqingkun 1 year ago
parent 0ea5cc9ab5
commit b5993eec3f

@ -25,6 +25,6 @@ public interface RasaCmdService {
Map<String, QuestionAnswerDTO> generateRasaYml(String path);
public Map<String, QuestionAnswerDTO> getIntentCodeAndIdMap();
Map<String, QuestionAnswerDTO> getIntentCodeAndIdMap();
}

@ -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<String, QuestionAnswerDTO> intentCodeAndIdMap = rasaCmdService.getIntentCodeAndIdMap();
// 更新text2vec数据信息
List<Text2vecDataVo> 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);
}

@ -319,6 +319,10 @@ public class RasaCmdServiceImpl implements RasaCmdService {
List<AskTemplateQuestionLibrary> 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

Loading…
Cancel
Save