1: 添加测试类

pull/1/head
xueqingkun 11 months ago
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…
Cancel
Save