1: 添加测试类
parent
b9d03bd1dd
commit
4eb83fb1c6
@ -0,0 +1,91 @@
|
||||
package com.supervision;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.map.MapUtil;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import cn.hutool.poi.excel.ExcelReader;
|
||||
import cn.hutool.poi.excel.ExcelUtil;
|
||||
import cn.hutool.poi.excel.ExcelWriter;
|
||||
import com.supervision.domain.QaSimilarityQuestionAnswer;
|
||||
import com.supervision.model.AskTemplateQuestionLibrary;
|
||||
import com.supervision.model.CommonDic;
|
||||
import com.supervision.service.AskPatientAnswerService;
|
||||
import com.supervision.service.AskTemplateQuestionLibraryService;
|
||||
import com.supervision.service.CommonDicService;
|
||||
import com.supervision.util.SimilarityUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
|
||||
@RunWith(SpringJUnit4ClassRunner.class)
|
||||
public class RedisVecTest {
|
||||
|
||||
|
||||
@Autowired
|
||||
private AskTemplateQuestionLibraryService askTemplateQuestionLibraryService;
|
||||
@Autowired
|
||||
private CommonDicService commonDicService;
|
||||
@Autowired
|
||||
private AskPatientAnswerService askPatientAnswerService;
|
||||
|
||||
|
||||
@Test
|
||||
public void questionCaseGenerateTest() {
|
||||
|
||||
|
||||
List<AskTemplateQuestionLibrary> questionLibraries = askTemplateQuestionLibraryService.list();
|
||||
List<CommonDic> commonDics = commonDicService.lambdaQuery().eq(CommonDic::getGroupCode, "AQT").list();
|
||||
Map<Long, CommonDic> dicMap = commonDics.stream().collect(Collectors.toMap(CommonDic::getId, v -> v));
|
||||
Map<String, AskTemplateQuestionLibrary> libraryMap = questionLibraries.stream().collect(Collectors.toMap(AskTemplateQuestionLibrary::getId, library -> library));
|
||||
|
||||
String path = "F:\\tmp\\1\\门诊收集0524-redis.xlsx";
|
||||
|
||||
ExcelReader reader = ExcelUtil.getReader(path);
|
||||
List<Map<String, Object>> maps = reader.readAll();
|
||||
|
||||
for (Map<String, Object> map : maps) {
|
||||
String question = MapUtil.getStr(map, "日常问诊");
|
||||
Optional<QaSimilarityQuestionAnswer> optional = SimilarityUtil.talkRedisVectorWithScoreByFirst(question);
|
||||
if (optional.isEmpty()) {
|
||||
log.warn("questionMatch:问题:{}没有匹配到结果", question);
|
||||
continue;
|
||||
}
|
||||
QaSimilarityQuestionAnswer answer = optional.get();
|
||||
String matchQuestion = answer.getMatchQuestion();
|
||||
Double matchScore = answer.getMatchScore();
|
||||
String targetId = answer.getMatchQuestionCode();
|
||||
map.put("targetId", targetId);
|
||||
map.put("targetQuestion", matchQuestion);
|
||||
AskTemplateQuestionLibrary targetLibrary = libraryMap.get(targetId);
|
||||
map.put("targetDesc", targetLibrary.getDescription());
|
||||
Long dictId = targetLibrary.getDictId();
|
||||
if (!NumberUtil.equals(dictId,Double.parseDouble(answer.getDictId()))){
|
||||
log.error("字典id不匹配:{}", JSONUtil.toJsonStr(answer));
|
||||
}
|
||||
map.put("targetDicPath", dicMap.get(dictId).getNameZhPath());
|
||||
map.put("matchScore", matchScore);
|
||||
}
|
||||
|
||||
ExcelWriter writer = ExcelUtil.getWriter(path, "问询结果-3");
|
||||
writer.addHeaderAlias("病例", "病例");
|
||||
writer.addHeaderAlias("日常问诊", "日常问诊");
|
||||
writer.addHeaderAlias("targetId", "目标问题");
|
||||
writer.addHeaderAlias("targetDesc", "目标问题描述");
|
||||
writer.addHeaderAlias("targetQuestion", "目标问题");
|
||||
writer.addHeaderAlias("matchScore", "相似度");
|
||||
writer.addHeaderAlias("targetDicPath", "目标分类");
|
||||
writer.write(maps, true);
|
||||
writer.close();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue