release_1.0.0
liu 1 year ago
parent f1b37f270d
commit 365d96ad1d

@ -47,7 +47,6 @@ public class ResponseConfig implements ResponseBodyAdvice<Object> {
@Nullable Class<? extends HttpMessageConverter<?>> aClass, @Nullable ServerHttpRequest serverHttpRequest, @Nullable Class<? extends HttpMessageConverter<?>> aClass, @Nullable ServerHttpRequest serverHttpRequest,
@Nullable ServerHttpResponse serverHttpResponse) { @Nullable ServerHttpResponse serverHttpResponse) {
if (Objects.isNull(o)) { if (Objects.isNull(o)) {
return GlobalResult.ok(null, "success"); return GlobalResult.ok(null, "success");
} }

@ -20,28 +20,19 @@ public class AskController {
@Autowired @Autowired
private AskService askService; private AskService askService;
@ApiOperation("接收页面的语音消息(这个接口使用京东数字人接口来做)") @ApiOperation("接收页面的语音消息转文字")
@PostMapping("/receiveVoiceFile") @PostMapping("/receiveVoiceFile")
public String receiveVoiceFile(@RequestParam("file") MultipartFile file) { public String receiveVoiceFile(@RequestParam("file") MultipartFile file) {
return askService.receiveVoiceFile(file); return askService.receiveVoiceFile(file);
} }
@ApiOperation("接收页面的语音消息(这个接口使用京东数字人接口来做)") @ApiOperation("使用京东数字人进行对话(这个接口使用京东数字人接口来做)")
@PostMapping("/talk") @PostMapping("/talk")
public TalkResultResVO talk(TalkReqVO talkReqVO) throws IOException { public TalkResultResVO talk(@RequestBody TalkReqVO talkReqVO) throws IOException {
return askService.talk(talkReqVO); return askService.talk(talkReqVO);
} }
@ApiOperation("回复语音及文字消息")
@GetMapping("replyVoice")
public String replyVoice() {
return askService.replyVoice();
}
@ApiOperation("查询对话历史")
public void queryAskHistory(String processId) {
}
} }

@ -32,7 +32,7 @@ public class AskPhysicalController {
return askPhysicalService.queryPhysicalToolList(); return askPhysicalService.queryPhysicalToolList();
} }
@ApiOperation(value = "查询体格检查的结果") @ApiOperation(value = "查询体格检查的结果(执行体格检查)")
@GetMapping("queryAskPhysicalResult") @GetMapping("queryAskPhysicalResult")
public DiagnosisPhysicalRecord queryAskPhysicalResult(AskPhysicalResultReqVO reqVO) { public DiagnosisPhysicalRecord queryAskPhysicalResult(AskPhysicalResultReqVO reqVO) {
return askPhysicalService.queryAskPhysicalResult(reqVO); return askPhysicalService.queryAskPhysicalResult(reqVO);

@ -6,13 +6,12 @@ import lombok.Data;
@Data @Data
public class TalkResultResVO { public class TalkResultResVO {
@ApiModelProperty("若有动作,这是需要执行的动作内容")
private ActionDTO action;
/** /**
* 使,action,1,2 * 使,action,1,2 3
*/ */
@ApiModelProperty("后端返回给前端时使用,表示该是语音回复还是action动作,1语音回复,2动作") @ApiModelProperty("后端返回给前端时使用,表示该是语音回复还是action动作,1语音回复,2体格检查 3辅助检查")
private Integer type; private Integer type;
private String actionId;
} }

@ -38,7 +38,7 @@ public class AskPrimaryServiceImpl implements AskPrimaryService {
diagnosisPrimaryService.save(reqVO); diagnosisPrimaryService.save(reqVO);
// 将process关联的所有的患者描述全部都修改 // 将process关联的所有的患者描述全部都修改
diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getPatientDiseaseInfo,reqVO.getPatientDiseaseInfo()) diagnosisPrimaryService.lambdaUpdate().set(DiagnosisPrimary::getPatientDiseaseInfo,reqVO.getPatientDiseaseInfo())
.eq(DiagnosisPrimary::getId,reqVO.getProcessId()).update(); .eq(DiagnosisPrimary::getProcessId,reqVO.getProcessId()).update();
} }
@Override @Override

@ -79,12 +79,9 @@ public class AskServiceImpl implements AskService {
log.info("呼出语句:{}", rasaResult); log.info("呼出语句:{}", rasaResult);
List<String> actionList = StrUtil.split(rasaResult, '_'); List<String> actionList = StrUtil.split(rasaResult, '_');
if (actionList.size() > 1) { if (actionList.size() > 1) {
ActionDTO actionDTO = new ActionDTO();
actionDTO.setActionType(actionList.get(0));
actionDTO.setActionId(actionList.get(1));
// 在这里给socket回复,设置为动作 // 在这里给socket回复,设置为动作
talkResultResVO.setAction(actionDTO); talkResultResVO.setActionId(actionList.get(1));
talkResultResVO.setType(2); talkResultResVO.setType("ancillary".equals(actionList.get(0)) ? 3 : 2);
return talkResultResVO; return talkResultResVO;
} }
} else { } else {

@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
@ -230,7 +231,7 @@ public class RasaServiceImpl implements RasaService {
public GlobalResult<String> trainRasa(String patientId) throws JsonProcessingException { public GlobalResult<String> trainRasa(String patientId) throws JsonProcessingException {
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("modelId", patientId); param.put("modelId", patientId);
String responseBody = HttpUtil.post(trainRasaUrl, param); String responseBody = HttpUtil.post(trainRasaUrl, JSONUtil.toJsonStr(param));
return objectMapper.readValue(responseBody, new TypeReference<GlobalResult<String>>() { return objectMapper.readValue(responseBody, new TypeReference<GlobalResult<String>>() {
}); });
} }
@ -239,7 +240,7 @@ public class RasaServiceImpl implements RasaService {
public GlobalResult<String> runRasa(String patientId) throws JsonProcessingException { public GlobalResult<String> runRasa(String patientId) throws JsonProcessingException {
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put("modelId", patientId); param.put("modelId", patientId);
String responseBody = HttpUtil.post(runRasaUrl, param); String responseBody = HttpUtil.post(runRasaUrl, JSONUtil.toJsonStr(param));
return objectMapper.readValue(responseBody, new TypeReference<GlobalResult<String>>() { return objectMapper.readValue(responseBody, new TypeReference<GlobalResult<String>>() {
}); });
} }

@ -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 "对不起,我没有听懂您说的是什么意思";
} }

@ -62,7 +62,7 @@ paddle-speech:
tts: http://192.168.10.137:8090/paddlespeech/tts tts: http://192.168.10.137:8090/paddlespeech/tts
asr: http://192.168.10.137:8090/paddlespeech/asr asr: http://192.168.10.137:8090/paddlespeech/asr
rasa: rasa:
base-url: http://192.168.10.137:8890/ base-url: http://192.168.10.137:8890/virtual-patient-rasa/
talk: rasa/talkRasa talk: rasa/talkRasa
saveRasaFile: rasaFile/saveRasaFile saveRasaFile: rasaFile/saveRasaFile
train: rasaCmd/trainExec train: rasaCmd/trainExec

Loading…
Cancel
Save