为回答增加默认答案,如果病例库中没有配置的,统一回复没有

dev_2.1.0
liu 1 year ago
parent 35a76da20d
commit bea1d16c0f

@ -96,7 +96,7 @@ public class AskTemplateQuestionLibraryServiceImpl extends ServiceImpl<AskTempla
continue;
}
// 把呼出的问题全部加进去
String toolIntent = "tool_" + tool.getCode();
String toolIntent = "tool_" + tool.getId();
QaKnowledgeDTO qaKnowledgeDTO = new QaKnowledgeDTO();
qaKnowledgeDTO.setQuestionCode(toolIntent);
qaKnowledgeDTO.setQuestionList(tool.getCallOutQuestion());
@ -114,7 +114,7 @@ public class AskTemplateQuestionLibraryServiceImpl extends ServiceImpl<AskTempla
continue;
}
// 把辅助问诊的问题全部加进去
String ancillaryIntent = "ancillary_" + ancillary.getCode();
String ancillaryIntent = "ancillary_" + ancillary.getId();
QaKnowledgeDTO qaKnowledgeDTO = new QaKnowledgeDTO();
qaKnowledgeDTO.setQuestionCode(ancillaryIntent);
qaKnowledgeDTO.setQuestionList(ancillary.getCallOutQuestion());

@ -173,11 +173,12 @@ public class AskServiceImpl implements AskService {
// 保存记录
saveQaRecord(talkReqVO.getProcessId(), "patient", askPatientAnswer.getId(), talkReqVO.getText(), library, resText);
} else {
log.info("{}:病历配置,从AskPatientAnswer中未找到回答结果,回复未识别到语句", talkResult);
AskPatientAnswer medicalRecErrorAnswer = getMedicalRecErrorAnswer(process.getMedicalRecId());
talkResultResVO.setVideoBase64(getAnswerVideoBase64OrDefault(medicalRecErrorAnswer.getAnswerResourceId()));
talkResultResVO.setAnswerMessage(medicalRecErrorAnswer.getAnswer());
saveQaRecord(talkReqVO.getProcessId(), "default", null, talkReqVO.getText(), library, medicalRecErrorAnswer.getAnswer());
// 临时解决方案,回答没有,在问题库中内置这个回答
log.info("{}:病历配置,从AskPatientAnswer中未找到回答结果,回复 默认回复", talkResult);
AskPatientAnswer medicalRecDefaultAnswer = getMedicalRecDefaultAnswer(process.getMedicalRecId());
talkResultResVO.setVideoBase64(getAnswerVideoBase64OrDefault(medicalRecDefaultAnswer.getAnswerResourceId()));
talkResultResVO.setAnswerMessage(medicalRecDefaultAnswer.getAnswer());
saveQaRecord(talkReqVO.getProcessId(), "default", null, talkReqVO.getText(), library, medicalRecDefaultAnswer.getAnswer());
}
}
}
@ -214,7 +215,7 @@ public class AskServiceImpl implements AskService {
GlobalResult<List<QaSimilarityQuestionAnswer>> result = askQaSimilarityFeignClient.askQuestionSimilarityAnswer(new QaSimilarityQuestion(question));
log.info("调用talkQaSimilarity结束,问题:{},返回结果:{}", question, JSONUtil.toJsonStr(result));
return CollUtil.getFirst(result.getData()).getMatchQuestionCode();
}catch (Exception e){
} catch (Exception e) {
log.error("调用talkQaSimilarity error ", e);
return null;
}
@ -232,6 +233,18 @@ public class AskServiceImpl implements AskService {
return askPatientAnswerService.lambdaQuery().eq(AskPatientAnswer::getMedicalId, medicalRecId).eq(AskPatientAnswer::getLibraryQuestionId, askTemplateQuestionLibrary.getId()).one();
}
private AskPatientAnswer getMedicalRecDefaultAnswer(String medicalRecId) {
//Optional.ofNullable(medicalRecErrorAnswer).orElseGet(() ->new AskPatientAnswer()).getAnswer()
Assert.notEmpty(medicalRecId, "病历id不能为空");
CommonDic commonDic = commonDicService.lambdaQuery().eq(CommonDic::getGroupCode, "AQT").eq(CommonDic::getCode, "system_default").one();
Assert.notNull(commonDic, "字典未配置默认回答场景");
AskTemplateQuestionLibrary askTemplateQuestionLibrary = askTemplateQuestionLibraryService.lambdaQuery().eq(AskTemplateQuestionLibrary::getDictId, commonDic.getId()).one();
Assert.notNull(askTemplateQuestionLibrary, "知识库未配置系统内置异常识别场景");
return askPatientAnswerService.lambdaQuery().eq(AskPatientAnswer::getMedicalId, medicalRecId).eq(AskPatientAnswer::getLibraryQuestionId, askTemplateQuestionLibrary.getId()).one();
}
/**
* base64

Loading…
Cancel
Save