1: AskTemplateQuestionLibrary中的description 修改为standard_question

pull/1/head
xueqingkun 11 months ago
parent b39e6fb65d
commit bb98d9ebfc

@ -157,7 +157,7 @@ public class MedicalRecAnswerExcelDTO {
errorCodeEnums.add(ErrorCodeEnum.QUESTION_NOT_FIND); errorCodeEnums.add(ErrorCodeEnum.QUESTION_NOT_FIND);
} }
for (AskTemplateQuestionLibrary questionLibrary : questionLibraryList) { for (AskTemplateQuestionLibrary questionLibrary : questionLibraryList) {
String description = questionLibrary.getDescription(); String description = questionLibrary.getStandardQuestion();
List<String> questionList = questionMap.get(questionLibrary.getId()); List<String> questionList = questionMap.get(questionLibrary.getId());
if (this.question.equals(description)){ if (this.question.equals(description)){
this.libraryQuestionId = questionLibrary.getId(); this.libraryQuestionId = questionLibrary.getId();
@ -268,7 +268,7 @@ public class MedicalRecAnswerExcelDTO {
if (StrUtil.isNotEmpty(this.dictId)){ if (StrUtil.isNotEmpty(this.dictId)){
questionLibrary.setDictId(Long.parseLong(this.dictId)); questionLibrary.setDictId(Long.parseLong(this.dictId));
} }
questionLibrary.setDescription(this.question); questionLibrary.setStandardQuestion(this.question);
return questionLibrary; return questionLibrary;
} }

@ -11,7 +11,6 @@ import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter; import cn.hutool.poi.excel.ExcelWriter;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.supervision.dto.AskTemplateQuestionLibraryDTO;
import com.supervision.manage.dto.UploadQuestionLibraryDTO; import com.supervision.manage.dto.UploadQuestionLibraryDTO;
import com.supervision.manage.pojo.vo.UploadQuestionLibraryResVo; import com.supervision.manage.pojo.vo.UploadQuestionLibraryResVo;
import com.supervision.manage.service.AskQuestionLibraryManageService; import com.supervision.manage.service.AskQuestionLibraryManageService;
@ -31,7 +30,6 @@ import jakarta.servlet.ServletOutputStream;
import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpServletResponse;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.core.SimpleAliasRegistry;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader; import org.springframework.core.io.ResourceLoader;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -109,10 +107,10 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa
if (CollUtil.isEmpty(questionMap.get(one.getId()))){ if (CollUtil.isEmpty(questionMap.get(one.getId()))){
// 相似问不为空。查看相似问是否存在 // 相似问不为空。查看相似问是否存在
List<String> questionList = questionMap.get(one.getId()); List<String> questionList = questionMap.get(one.getId());
if (CollUtil.isEmpty(questionList) || !questionList.contains(askTemplateQuestionLibrary.getDescription())){ if (CollUtil.isEmpty(questionList) || !questionList.contains(askTemplateQuestionLibrary.getStandardQuestion())){
// 不存在相似问,新增一条相似问数据 // 不存在相似问,新增一条相似问数据
AskTemplateQuestionSimilarity similarity = new AskTemplateQuestionSimilarity(); AskTemplateQuestionSimilarity similarity = new AskTemplateQuestionSimilarity();
similarity.setSimilarityQuestion(askTemplateQuestionLibrary.getDescription()); similarity.setSimilarityQuestion(askTemplateQuestionLibrary.getStandardQuestion());
similarity.setLibraryId(one.getId()); similarity.setLibraryId(one.getId());
askTemplateQuestionSimilarityService.save(similarity); askTemplateQuestionSimilarityService.save(similarity);
} }
@ -204,7 +202,7 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa
if (StrUtil.isNotEmpty(currentDTO.getDictId())) { if (StrUtil.isNotEmpty(currentDTO.getDictId())) {
questionLibrary.setDictId(Long.parseLong(currentDTO.getDictId())); questionLibrary.setDictId(Long.parseLong(currentDTO.getDictId()));
} }
questionLibrary.setDescription(currentDTO.getQuestion()); questionLibrary.setStandardQuestion(currentDTO.getQuestion());
this.saveQuestionLibrary(questionLibrary,false); this.saveQuestionLibrary(questionLibrary,false);
} }
// 对问题库进行更新操作 // 对问题库进行更新操作
@ -241,7 +239,7 @@ public class AskQuestionLibraryManageServiceImpl implements AskQuestionLibraryMa
private void assertSave(AskTemplateQuestionLibrary askTemplateQuestionLibrary){ private void assertSave(AskTemplateQuestionLibrary askTemplateQuestionLibrary){
// 问题类目不能为空 // 问题类目不能为空
Assert.notNull(askTemplateQuestionLibrary.getDictId(),"问题类目不能为空"); Assert.notNull(askTemplateQuestionLibrary.getDictId(),"问题类目不能为空");
Assert.notEmpty(askTemplateQuestionLibrary.getDescription(),"问题不能为空"); Assert.notEmpty(askTemplateQuestionLibrary.getStandardQuestion(),"问题不能为空");
//Assert.notEmpty(askTemplateQuestionLibrary.getDefaultAnswer(),"默认回答不能为空"); //Assert.notEmpty(askTemplateQuestionLibrary.getDefaultAnswer(),"默认回答不能为空");
} }

@ -4,12 +4,10 @@ import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.supervision.handler.StringListTypeHandler;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
/** /**
* *
@ -37,13 +35,7 @@ public class AskTemplateQuestionLibrary implements Serializable {
/** /**
* *
*/ */
private String description; private String standardQuestion;
/*
*//**
*
*//*
@TableField(typeHandler = StringListTypeHandler.class)
private List<String> question;*/
/** /**

@ -8,9 +8,7 @@
<id property="id" column="id" jdbcType="VARCHAR"/> <id property="id" column="id" jdbcType="VARCHAR"/>
<result property="dictId" column="dict_id" jdbcType="BIGINT"/> <result property="dictId" column="dict_id" jdbcType="BIGINT"/>
<result property="code" column="code" jdbcType="VARCHAR"/> <result property="code" column="code" jdbcType="VARCHAR"/>
<result property="description" column="description" jdbcType="VARCHAR"/> <result property="standardQuestion" column="standard_question" jdbcType="VARCHAR"/>
<result property="question" column="question" jdbcType="ARRAY"
typeHandler="com.supervision.handler.StringListTypeHandler"/>
<result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/> <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/> <result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>
@ -19,8 +17,7 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id id
,dict_id,code,description, ,dict_id,code,standard_question,create_user_id,
question,create_user_id,
create_time,update_user_id,update_time create_time,update_user_id,update_time
</sql> </sql>
@ -31,7 +28,6 @@
<result property="code" column="code" /> <result property="code" column="code" />
<result property="dictId" column="dictId" /> <result property="dictId" column="dictId" />
<result property="libraryQuestionId" column="libraryQuestionId" /> <result property="libraryQuestionId" column="libraryQuestionId" />
<result property="question" column="question" typeHandler="com.supervision.handler.StringListTypeHandler" />
<result property="nameZhPath" column="nameZhPath" /> <result property="nameZhPath" column="nameZhPath" />
</resultMap> </resultMap>
@ -43,8 +39,7 @@
cd.code as code, cd.code as code,
atql.dict_id as dictId, atql.dict_id as dictId,
cd.parent_id as parentDictId, cd.parent_id as parentDictId,
atql.description as description, atql.standard_question as standardQuestion,
atql.question as question,
cd.name_zh_path as nameZhPath, cd.name_zh_path as nameZhPath,
cd.name_zh as nameZh cd.name_zh as nameZh
from vp_ask_template_question_library atql from vp_ask_template_question_library atql
@ -56,7 +51,7 @@
and cd.code = #{askQuestionLibrary.code} and cd.code = #{askQuestionLibrary.code}
</if> </if>
<if test="askQuestionLibrary.description != null and askQuestionLibrary.description != '' "> <if test="askQuestionLibrary.description != null and askQuestionLibrary.description != '' ">
and atql.question like CONCAT('%', #{askQuestionLibrary.description}, '%') and atql.standard_question like CONCAT('%', #{askQuestionLibrary.description}, '%')
</if> </if>
<if test="askQuestionLibrary.dictId != null and askQuestionLibrary.dictId != '' "> <if test="askQuestionLibrary.dictId != null and askQuestionLibrary.dictId != '' ">
and atql.dict_id = #{askQuestionLibrary.dictId} and atql.dict_id = #{askQuestionLibrary.dictId}

@ -91,7 +91,7 @@ public class TestController {
Map<String, List<String>> similarityQuestionMap = askTemplateQuestionSimilarityService.querySimilarityQuestionMapByLibraryLists(list); Map<String, List<String>> similarityQuestionMap = askTemplateQuestionSimilarityService.querySimilarityQuestionMapByLibraryLists(list);
for (AskTemplateQuestionLibrary askTemplateQuestionLibrary : list) { for (AskTemplateQuestionLibrary askTemplateQuestionLibrary : list) {
String description = askTemplateQuestionLibrary.getDescription(); String description = askTemplateQuestionLibrary.getStandardQuestion();
redisVectorStore.add(List.of(new Document(description, redisVectorStore.add(List.of(new Document(description,
Map.of("type", "1", Map.of("type", "1",
"standardQuestionId", askTemplateQuestionLibrary.getId(), "standardQuestionId", askTemplateQuestionLibrary.getId(),

@ -111,7 +111,7 @@ public class AskTemplateIdTest {
try { try {
CommonDic dic = dictMap.get(ask.getDictId()); CommonDic dic = dictMap.get(ask.getDictId());
if (ObjectUtil.isNotEmpty(dic)) { if (ObjectUtil.isNotEmpty(dic)) {
String description = ask.getDescription(); String description = ask.getStandardQuestion();
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("role", "user"); map.put("role", "user");
@ -129,7 +129,7 @@ public class AskTemplateIdTest {
} }
} catch (Exception e) { } catch (Exception e) {
log.error("{}生成错误", ask.getDescription(), e); log.error("{}生成错误", ask.getStandardQuestion(), e);
} }
} }
} }

@ -75,7 +75,7 @@ public class RedisVecTest {
map.put("targetId", targetId); map.put("targetId", targetId);
map.put("targetQuestion", matchQuestion); map.put("targetQuestion", matchQuestion);
AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId); AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId);
map.put("targetDesc", targetLibrary.getDescription()); map.put("targetDesc", targetLibrary.getStandardQuestion());
Long dictId = targetLibrary.getDictId(); Long dictId = targetLibrary.getDictId();
if (!NumberUtil.equals(dictId,Double.parseDouble(answer.getDictId()))){ if (!NumberUtil.equals(dictId,Double.parseDouble(answer.getDictId()))){
log.error("字典id不匹配:{}", JSONUtil.toJsonStr(answer)); log.error("字典id不匹配:{}", JSONUtil.toJsonStr(answer));

@ -144,12 +144,12 @@ public class VecTest {
if (count > 1) { if (count > 1) {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("sourceId", library.getId()); map.put("sourceId", library.getId());
map.put("sourceDesc", library.getDescription()); map.put("sourceDesc", library.getStandardQuestion());
map.put("sourceQuestion", sourceQuestion); map.put("sourceQuestion", sourceQuestion);
map.put("sourceQuestionCode", library.getCode()); map.put("sourceQuestionCode", library.getCode());
map.put("sourceDicPath", dicMap.get(library.getDictId()).getNameZhPath()); map.put("sourceDicPath", dicMap.get(library.getDictId()).getNameZhPath());
map.put("targetId", library.getId()); map.put("targetId", library.getId());
map.put("targetDesc", library.getDescription()); map.put("targetDesc", library.getStandardQuestion());
map.put("targetQuestion", sourceQuestion); map.put("targetQuestion", sourceQuestion);
map.put("sameSource", "是"); map.put("sameSource", "是");
map.put("targetDicPath", dicMap.get(library.getDictId()).getNameZhPath()); map.put("targetDicPath", dicMap.get(library.getDictId()).getNameZhPath());
@ -168,11 +168,11 @@ public class VecTest {
if (StrUtil.equals(sourceQuestion, targetQuestion)) { if (StrUtil.equals(sourceQuestion, targetQuestion)) {
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
map.put("sourceId", library.getId()); map.put("sourceId", library.getId());
map.put("sourceDesc", library.getDescription()); map.put("sourceDesc", library.getStandardQuestion());
map.put("sourceQuestion", sourceQuestion); map.put("sourceQuestion", sourceQuestion);
map.put("sourceDicPath", dicMap.get(library.getDictId()).getNameZhPath()); map.put("sourceDicPath", dicMap.get(library.getDictId()).getNameZhPath());
map.put("targetId", targetLibrary.getId()); map.put("targetId", targetLibrary.getId());
map.put("targetDesc", targetLibrary.getDescription()); map.put("targetDesc", targetLibrary.getStandardQuestion());
map.put("targetQuestion", targetQuestion); map.put("targetQuestion", targetQuestion);
// 如果id相等则是同源数据 // 如果id相等则是同源数据
map.put("sameSource", "否"); map.put("sameSource", "否");
@ -225,13 +225,13 @@ public class VecTest {
if (!StrUtil.equals(questionLibrary.getId(), targetId)) { if (!StrUtil.equals(questionLibrary.getId(), targetId)) {
HashMap<String, Object> map1 = new HashMap<>(); HashMap<String, Object> map1 = new HashMap<>();
map1.put("sourceId", questionLibrary.getId()); map1.put("sourceId", questionLibrary.getId());
map1.put("sourceDesc", questionLibrary.getDescription()); map1.put("sourceDesc", questionLibrary.getStandardQuestion());
map1.put("sourceQuestion", question); map1.put("sourceQuestion", question);
CommonDic commonDic = dicMap.get(questionLibrary.getDictId()); CommonDic commonDic = dicMap.get(questionLibrary.getDictId());
map1.put("sourceDicPath", commonDic.getNameZhPath()); map1.put("sourceDicPath", commonDic.getNameZhPath());
map1.put("targetId", targetId); map1.put("targetId", targetId);
AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId); AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId);
map1.put("targetDesc", targetLibrary.getDescription()); map1.put("targetDesc", targetLibrary.getStandardQuestion());
map1.put("targetQuestion", MapUtil.getStr(map, "matchQuestion")); map1.put("targetQuestion", MapUtil.getStr(map, "matchQuestion"));
map1.put("matchScore", MapUtil.getStr(map, "matchScore")); map1.put("matchScore", MapUtil.getStr(map, "matchScore"));
map1.put("targetDicPath", dicMap.get(targetLibrary.getDictId()).getNameZhPath()); map1.put("targetDicPath", dicMap.get(targetLibrary.getDictId()).getNameZhPath());
@ -288,14 +288,14 @@ public class VecTest {
String matchQuestion = MapUtil.getStr(matchMap, "matchQuestion"); String matchQuestion = MapUtil.getStr(matchMap, "matchQuestion");
String matchScore = MapUtil.getStr(matchMap, "matchScore"); String matchScore = MapUtil.getStr(matchMap, "matchScore");
map.put("sourceId", questionLibrary.getId()); map.put("sourceId", questionLibrary.getId());
map.put("sourceDesc", questionLibrary.getDescription()); map.put("sourceDesc", questionLibrary.getStandardQuestion());
map.put("sourceQuestion", question); map.put("sourceQuestion", question);
String sourceNamePath = dicMap.get(questionLibrary.getDictId()).getNameZhPath(); String sourceNamePath = dicMap.get(questionLibrary.getDictId()).getNameZhPath();
map.put("sourceDicPath", sourceNamePath); map.put("sourceDicPath", sourceNamePath);
map.put("targetId", targetId); map.put("targetId", targetId);
AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId); AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId);
map.put("targetDesc", targetLibrary.getDescription()); map.put("targetDesc", targetLibrary.getStandardQuestion());
map.put("targetQuestion", matchQuestion); map.put("targetQuestion", matchQuestion);
String targetNamePath = dicMap.get(targetLibrary.getDictId()).getNameZhPath(); String targetNamePath = dicMap.get(targetLibrary.getDictId()).getNameZhPath();
map.put("targetDicPath", targetNamePath); map.put("targetDicPath", targetNamePath);
@ -359,7 +359,7 @@ public class VecTest {
map.put("targetId", targetId); map.put("targetId", targetId);
map.put("targetQuestion", matchQuestion); map.put("targetQuestion", matchQuestion);
AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId); AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId);
map.put("targetDesc", targetLibrary.getDescription()); map.put("targetDesc", targetLibrary.getStandardQuestion());
Long dictId = targetLibrary.getDictId(); Long dictId = targetLibrary.getDictId();
map.put("targetDicPath", dicMap.get(dictId).getNameZhPath()); map.put("targetDicPath", dicMap.get(dictId).getNameZhPath());
map.put("matchScore", score); map.put("matchScore", score);
@ -430,7 +430,7 @@ public class VecTest {
List<Map<String, Object>> vecData = questionLibraries.stream().map(library -> { List<Map<String, Object>> vecData = questionLibraries.stream().map(library -> {
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("questionCode", library.getId()); map.put("questionCode", library.getId());
map.put("questionList", CollUtil.newArrayList(library.getDescription())); map.put("questionList", CollUtil.newArrayList(library.getStandardQuestion()));
return map; return map;
}).collect(Collectors.toList()); }).collect(Collectors.toList());
saveVec(vecData); saveVec(vecData);
@ -468,7 +468,7 @@ public class VecTest {
AskPatientAnswer askPatientAnswer = answerMap.get(questionLibrary.getId()); AskPatientAnswer askPatientAnswer = answerMap.get(questionLibrary.getId());
if (ObjectUtil.isEmpty(askPatientAnswer)) { if (ObjectUtil.isEmpty(askPatientAnswer)) {
log.info("问题id:{} desc:{},未设置回复答案,跳过", questionLibrary.getId(), questionLibrary.getDescription()); log.info("问题id:{} desc:{},未设置回复答案,跳过", questionLibrary.getId(), questionLibrary.getStandardQuestion());
continue; continue;
} }
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
@ -541,7 +541,7 @@ public class VecTest {
List<Map<String, Object>> result = new ArrayList<>(); List<Map<String, Object>> result = new ArrayList<>();
for (AskTemplateQuestionLibrary questionLibrary : questionLibraries) { for (AskTemplateQuestionLibrary questionLibrary : questionLibraries) {
String description = questionLibrary.getDescription(); String description = questionLibrary.getStandardQuestion();
List<Map<String, Object>> maps = questionMatch(description); List<Map<String, Object>> maps = questionMatch(description);
// 只获取前四条数据 // 只获取前四条数据
if (CollUtil.isEmpty(maps)) { if (CollUtil.isEmpty(maps)) {
@ -607,7 +607,7 @@ public class VecTest {
AskPatientAnswer askPatientAnswer = answerMap.get(questionLibrary.getId()); AskPatientAnswer askPatientAnswer = answerMap.get(questionLibrary.getId());
if (ObjectUtil.isEmpty(askPatientAnswer)) { if (ObjectUtil.isEmpty(askPatientAnswer)) {
log.info("问题id:{} desc:{},未设置回复答案,跳过", questionLibrary.getId(), questionLibrary.getDescription()); log.info("问题id:{} desc:{},未设置回复答案,跳过", questionLibrary.getId(), questionLibrary.getStandardQuestion());
continue; continue;
} }
for (String question : similarQuestionMap.get(questionLibrary.getId())) { for (String question : similarQuestionMap.get(questionLibrary.getId())) {
@ -632,7 +632,7 @@ public class VecTest {
Map<String, List<String>> similarQuestionMap = askTemplateQuestionSimilarityService.querySimilarityQuestionMapByLibraryLists(questionLibraries); Map<String, List<String>> similarQuestionMap = askTemplateQuestionSimilarityService.querySimilarityQuestionMapByLibraryLists(questionLibraries);
Console console = System.console(); Console console = System.console();
for (AskTemplateQuestionLibrary questionLibrary : questionLibraries) { for (AskTemplateQuestionLibrary questionLibrary : questionLibraries) {
String description = questionLibrary.getDescription(); String description = questionLibrary.getStandardQuestion();
List<String> question = similarQuestionMap.get(questionLibrary.getId()); List<String> question = similarQuestionMap.get(questionLibrary.getId());
List<String> addList = new ArrayList<>(); List<String> addList = new ArrayList<>();
@ -676,7 +676,7 @@ public class VecTest {
map.put("targetId", targetId); map.put("targetId", targetId);
map.put("targetQuestion", matchQuestion); map.put("targetQuestion", matchQuestion);
AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId); AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId);
map.put("targetDesc", targetLibrary.getDescription()); map.put("targetDesc", targetLibrary.getStandardQuestion());
Long dictId = targetLibrary.getDictId(); Long dictId = targetLibrary.getDictId();
map.put("targetDicPath", dicMap.get(dictId).getNameZhPath()); map.put("targetDicPath", dicMap.get(dictId).getNameZhPath());
map.put("matchScore", score); map.put("matchScore", score);

Loading…
Cancel
Save