Merge remote-tracking branch 'origin/dev_3.0.0' into dev_3.0.0

pull/1/head
xueqingkun 12 months ago
commit 8df2bfcc15

@ -8,6 +8,7 @@ import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.supervision.exception.BusinessException; import com.supervision.exception.BusinessException;
import com.supervision.model.AskTemplateQuestionLibrary; import com.supervision.model.AskTemplateQuestionLibrary;
import com.supervision.model.AskTemplateQuestionSimilarity;
import com.supervision.model.ConfigPhysicalTool; import com.supervision.model.ConfigPhysicalTool;
import com.supervision.model.DiagnosisAiRecord; import com.supervision.model.DiagnosisAiRecord;
import com.supervision.service.AskTemplateQuestionLibraryService; import com.supervision.service.AskTemplateQuestionLibraryService;
@ -54,6 +55,7 @@ public class TestController {
private final AskTemplateQuestionSimilarityService askTemplateQuestionSimilarityService; private final AskTemplateQuestionSimilarityService askTemplateQuestionSimilarityService;
@GetMapping("testMatchQuestion") @GetMapping("testMatchQuestion")
public String test(String question) { public String test(String question) {
String template = """ String template = """
@ -84,25 +86,22 @@ public class TestController {
@GetMapping("testRedisVectorStore") @GetMapping("testRedisVectorStore")
public void testRedisVectorStore() { public void testRedisVectorStore() {
List<AskTemplateQuestionLibrary> list = askTemplateQuestionLibraryService.list(); List<AskTemplateQuestionLibrary> list = askTemplateQuestionLibraryService.list();
if (CollUtil.isEmpty(list)){ if (CollUtil.isEmpty(list)){
return; return;
} }
Map<String, List<String>> similarityQuestionMap = askTemplateQuestionSimilarityService.querySimilarityQuestionMapByLibraryLists(list);
for (AskTemplateQuestionLibrary askTemplateQuestionLibrary : list) { for (AskTemplateQuestionLibrary askTemplateQuestionLibrary : list) {
String description = askTemplateQuestionLibrary.getStandardQuestion(); 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(), "libraryQuestionId", askTemplateQuestionLibrary.getId(),
"questionId", askTemplateQuestionLibrary.getId(), "matchQuestionId", askTemplateQuestionLibrary.getId(),
"dictId", String.valueOf(askTemplateQuestionLibrary.getDictId()))))); "dictId", String.valueOf(askTemplateQuestionLibrary.getDictId())))));
List<String> question = similarityQuestionMap.get(askTemplateQuestionLibrary.getId()); List<AskTemplateQuestionSimilarity> similarityList = askTemplateQuestionSimilarityService.lambdaQuery().eq(AskTemplateQuestionSimilarity::getLibraryId, askTemplateQuestionLibrary.getId()).list();
for (String s : question) { for (AskTemplateQuestionSimilarity askTemplateQuestionSimilarity : similarityList) {
redisVectorStore.add(List.of(new Document(s, redisVectorStore.add(List.of(new Document(askTemplateQuestionSimilarity.getSimilarityQuestion(),
Map.of("type", "2", Map.of("type", "2",
"standardQuestionId", askTemplateQuestionLibrary.getId(), "libraryQuestionId", askTemplateQuestionSimilarity.getLibraryId(),
"questionId", askTemplateQuestionLibrary.getId(), "matchQuestionId", askTemplateQuestionSimilarity.getId(),
"dictId", String.valueOf(askTemplateQuestionLibrary.getDictId()))))); "dictId", String.valueOf(askTemplateQuestionLibrary.getDictId())))));
} }
} }

@ -99,7 +99,7 @@ public class AskServiceImpl implements AskService {
// 记录大模型的流转记录 // 记录大模型的流转记录
buildAiCirculationDetail(circulationList, answer, medicalRec); buildAiCirculationDetail(circulationList, answer, medicalRec);
// 保存消息到记录表 // 保存消息到记录表
saveQaRecord(process.getId(), 2, question, null, answer, circulationList); saveQaRecord(process.getId(), medicalRec, 2, question, null, answer, circulationList);
return answer; return answer;
} }
QaSimilarityQuestionAnswer similarityResult = first.get(); QaSimilarityQuestionAnswer similarityResult = first.get();
@ -115,7 +115,7 @@ public class AskServiceImpl implements AskService {
String answer = aiService.talk(question, medicalRec.getMedicalRecordAi()); String answer = aiService.talk(question, medicalRec.getMedicalRecordAi());
// 记录流转记录 // 记录流转记录
buildAiCirculationDetail(circulationList, answer, medicalRec); buildAiCirculationDetail(circulationList, answer, medicalRec);
saveQaRecord(process.getId(), 2, question, null, answer, circulationList); saveQaRecord(process.getId(), medicalRec, 2, question, null, answer, circulationList);
return answer; return answer;
} }
// 根据对应的标准问题,从标准问题表中找到标准问题 // 根据对应的标准问题,从标准问题表中找到标准问题
@ -130,7 +130,7 @@ public class AskServiceImpl implements AskService {
String answer = aiService.talk(question, medicalRec.getMedicalRecordAi()); String answer = aiService.talk(question, medicalRec.getMedicalRecordAi());
// 记录流转记录 // 记录流转记录
buildAiCirculationDetail(circulationList, answer, medicalRec); buildAiCirculationDetail(circulationList, answer, medicalRec);
saveQaRecord(process.getId(), 2, question, null, answer, circulationList); saveQaRecord(process.getId(), medicalRec, 2, question, null, answer, circulationList);
return answer; return answer;
} }
// 根据问题找这个病历配置的答案 // 根据问题找这个病历配置的答案
@ -146,7 +146,7 @@ public class AskServiceImpl implements AskService {
String answer = aiService.talk(question, medicalRec.getMedicalRecordAi()); String answer = aiService.talk(question, medicalRec.getMedicalRecordAi());
// 记录流转记录 // 记录流转记录
buildAiCirculationDetail(circulationList, answer, medicalRec); buildAiCirculationDetail(circulationList, answer, medicalRec);
saveQaRecord(process.getId(), 2, question, null, answer, circulationList); saveQaRecord(process.getId(), medicalRec, 2, question, null, answer, circulationList);
return answer; return answer;
} }
// 如果找到了,就走病历配置的内容回答 // 如果找到了,就走病历配置的内容回答
@ -165,7 +165,7 @@ public class AskServiceImpl implements AskService {
.matchQuestion(similarityResult.getMatchQuestion()) .matchQuestion(similarityResult.getMatchQuestion())
.successType(1) .successType(1)
.build()); .build());
saveQaRecord(process.getId(), 1, question, similarityResult.getLibraryQuestionId(), patientAnswer, circulationList); saveQaRecord(process.getId(), medicalRec, 1, question, similarityResult.getLibraryQuestionId(), patientAnswer, circulationList);
return patientAnswer; return patientAnswer;
} }
@ -178,7 +178,7 @@ public class AskServiceImpl implements AskService {
} }
private void saveQaRecord(String processId, Integer matchType, String question, String libraryId, String answer, List<AskCirculationDetail> circulationList) { private void saveQaRecord(String processId, MedicalRec medicalRec, Integer matchType, String question, String libraryId, String answer, List<AskCirculationDetail> circulationList) {
DiagnosisQaRecord record = new DiagnosisQaRecord(); DiagnosisQaRecord record = new DiagnosisQaRecord();
record.setProcessId(processId); record.setProcessId(processId);
record.setMatchType(matchType); record.setMatchType(matchType);
@ -189,6 +189,8 @@ public class AskServiceImpl implements AskService {
record.insert(); record.insert();
AtomicInteger atomicInteger = new AtomicInteger(0); AtomicInteger atomicInteger = new AtomicInteger(0);
circulationList.forEach(e -> { circulationList.forEach(e -> {
e.setProcessId(processId);
e.setMedicalId(medicalRec.getId());
e.setRecordId(record.getId()); e.setRecordId(record.getId());
e.setCirculationNo(atomicInteger.incrementAndGet()); e.setCirculationNo(atomicInteger.incrementAndGet());
e.setQuestion(question); e.setQuestion(question);

Loading…
Cancel
Save