From 2a0fcf38c486fce4d9b87cac97e8a15743efd939 Mon Sep 17 00:00:00 2001
From: liu <liujiatong112@163.com>
Date: Mon, 3 Jun 2024 13:37:04 +0800
Subject: [PATCH] bugfix

---
 .../java/com/supervision/service/impl/AskServiceImpl.java  | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java
index 3f61538d..da69cea8 100644
--- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java
+++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java
@@ -27,6 +27,7 @@ import com.supervision.util.UserUtil;
 import com.supervision.vo.rasa.RasaTalkVo;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -64,6 +65,9 @@ public class AskServiceImpl implements AskService {
 
     private final DiagnosisAiRecordService diagnosisAiRecordService;
 
+    @Value("${qaSimilarityThreshold:0.4}")
+    private String qaSimilarityThreshold;
+
     @Override
     public String receiveVoiceFile(MultipartFile file) {
         if (file.getSize() <= 0) {
@@ -306,7 +310,8 @@ public class AskServiceImpl implements AskService {
             saveAiRecord(process.getId(), talkReqVO.getText(), talkVideoTtsResultResVO.getAnswerMessage());
         } else {
             // 如果阈值过低,也走大模型
-            if (qaSimilarityQuestionAnswer.getMatchScore() < 0.5) {
+            double threshold = Double.parseDouble(qaSimilarityThreshold);
+            if (qaSimilarityQuestionAnswer.getMatchScore() < threshold) {
                 log.info("{}:匹配到的结果阈值过低,走大模型回答", qaSimilarityQuestionAnswer);
                 String talk = aiService.talk(talkReqVO.getText(), medicalRec.getMedicalRecordAi());
                 talkVideoTtsResultResVO.setAnswerMessage(talk);