|
|
|
package com.supervision.util;
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
|
import cn.hutool.http.HttpUtil;
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
import com.supervision.pojo.rasa.train.dto.RasaReqDTO;
|
|
|
|
import com.supervision.pojo.rasa.train.dto.RasaResDTO;
|
|
|
|
import com.supervision.vo.rasa.RasaTalkVo;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
import org.springframework.core.env.Environment;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
@Slf4j
|
|
|
|
public class RasaUtil {
|
|
|
|
|
|
|
|
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");
|
|
|
|
|
|
|
|
public static String talkRasa(String question, String sessionId, String patientId) {
|
|
|
|
RasaTalkVo rasaTalkVo = new RasaTalkVo();
|
|
|
|
rasaTalkVo.setQuestion(question);
|
|
|
|
rasaTalkVo.setSessionId(sessionId);
|
|
|
|
rasaTalkVo.setModelId(patientId);
|
|
|
|
String post = HttpUtil.post(RASA_TALK_URL, JSONUtil.toJsonStr(rasaTalkVo));
|
|
|
|
List<String> list = JSONUtil.toList(post, String.class);
|
|
|
|
log.info("调用rasa对话返回结果:{}",post);
|
|
|
|
if (CollUtil.isEmpty(list)){
|
|
|
|
return "对不起,我没有听懂您说的是什么意思";
|
|
|
|
}
|
|
|
|
return CollUtil.getFirst(list);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|