You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
virtual-patient/virtual-patient-web/src/main/java/com/supervision/util/RasaUtil.java

37 lines
1.2 KiB
Java

2 years ago
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;
2 years ago
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 String RASA_URL = SpringBeanUtil.getBean(Environment.class).getProperty("rasa.url");
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_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);
}
}