|
|
@ -3,7 +3,12 @@ package com.supervision.util;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
import cn.hutool.http.HttpUtil;
|
|
|
|
import cn.hutool.http.HttpUtil;
|
|
|
|
|
|
|
|
import cn.hutool.json.JSONObject;
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.core.type.TypeReference;
|
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
|
|
|
import com.supervision.pojo.paddlespeech.res.AsrResultDTO;
|
|
|
|
|
|
|
|
import com.supervision.pojo.paddlespeech.res.PaddleSpeechResDTO;
|
|
|
|
import com.supervision.pojo.rasa.train.dto.RasaReqDTO;
|
|
|
|
import com.supervision.pojo.rasa.train.dto.RasaReqDTO;
|
|
|
|
import com.supervision.pojo.rasa.train.dto.RasaResDTO;
|
|
|
|
import com.supervision.pojo.rasa.train.dto.RasaResDTO;
|
|
|
|
import com.supervision.vo.rasa.RasaTalkVo;
|
|
|
|
import com.supervision.vo.rasa.RasaTalkVo;
|
|
|
@ -16,7 +21,7 @@ import java.util.stream.Collectors;
|
|
|
|
@Slf4j
|
|
|
|
@Slf4j
|
|
|
|
public class RasaUtil {
|
|
|
|
public class RasaUtil {
|
|
|
|
|
|
|
|
|
|
|
|
private static final Environment environment = SpringBeanUtil.getBean(Environment.class);
|
|
|
|
private static final Environment environment = SpringBeanUtil.getBean(Environment.class);
|
|
|
|
private static final String RASA_TALK_URL = environment.getProperty("rasa.base-url") + environment.getProperty("rasa.talk");
|
|
|
|
private static final String RASA_TALK_URL = environment.getProperty("rasa.base-url") + environment.getProperty("rasa.talk");
|
|
|
|
|
|
|
|
|
|
|
|
public static String talkRasa(String question, String sessionId, String patientId) {
|
|
|
|
public static String talkRasa(String question, String sessionId, String patientId) {
|
|
|
@ -25,12 +30,18 @@ public class RasaUtil {
|
|
|
|
rasaTalkVo.setSessionId(sessionId);
|
|
|
|
rasaTalkVo.setSessionId(sessionId);
|
|
|
|
rasaTalkVo.setModelId(patientId);
|
|
|
|
rasaTalkVo.setModelId(patientId);
|
|
|
|
String post = HttpUtil.post(RASA_TALK_URL, JSONUtil.toJsonStr(rasaTalkVo));
|
|
|
|
String post = HttpUtil.post(RASA_TALK_URL, JSONUtil.toJsonStr(rasaTalkVo));
|
|
|
|
List<String> list = JSONUtil.toList(post, String.class);
|
|
|
|
log.info("调用rasa对话返回结果:{}", post);
|
|
|
|
log.info("调用rasa对话返回结果:{}",post);
|
|
|
|
try {
|
|
|
|
if (CollUtil.isEmpty(list)){
|
|
|
|
JSONObject entries = JSONUtil.parseObj(post);
|
|
|
|
return "对不起,我没有听懂您说的是什么意思";
|
|
|
|
List<String> list = JSONUtil.toList(entries.getStr("data"), String.class);
|
|
|
|
|
|
|
|
if (CollUtil.isEmpty(list)) {
|
|
|
|
|
|
|
|
return "对不起,我没有听懂您说的是什么意思";
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return CollUtil.getFirst(list);
|
|
|
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
|
|
|
log.error("talkRasa error ", e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return CollUtil.getFirst(list);
|
|
|
|
return "对不起,我没有听懂您说的是什么意思";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|