From cccb9150471097edd5f01e5c2a5724bfcea0101b Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 24 八月 2026 09:57:46 +0800
Subject: [PATCH] targetQuesMate 增加AI调试

---
 smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java |    1 +
 smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java         |    2 ++
 smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java                 |    3 +++
 smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetServiceImpl.java  |   25 +++++++++++++++++++++++++
 4 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java b/smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java
index e923ff8..2ff012f 100644
--- a/smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java
+++ b/smartor/src/main/java/com/smartor/domain/IvrLibaTargetVO.java
@@ -225,4 +225,7 @@
 
     @ApiModelProperty(value = "鐢ㄤ簬鏌ヨ鏍囩鐨勶紝涓嶇敤浜庡瓨鏁版嵁")
     private String optionDesc;
+
+    @ApiModelProperty(value = "闂鏂囨湰锛岀敤浜嶢I璇嗗埆")
+    private String questionText;
 }
diff --git a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
index f32a5fb..93c578b 100644
--- a/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
+++ b/smartor/src/main/java/com/smartor/service/IServiceSubtaskService.java
@@ -210,4 +210,6 @@
     public List<ServiceSubtaskDetailRatioExport> statQuestionOption(List<Long> taskIds, Date startOutHospTime, Date endOutHospTime);
 
     public String scanGenerateSubtask(ServiceTask serviceTaskVo);
+
+    public Integer matchOptionIndex(String url, String questionText, String voiceText, List<IvrTaskTemplateTargetoption> options, String uuid);
 }
diff --git a/smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetServiceImpl.java
index 5973bd5..329420e 100644
--- a/smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/IvrLibaTargetServiceImpl.java
@@ -8,11 +8,13 @@
 import com.ruoyi.common.utils.DateUtils;
 import com.ruoyi.common.utils.DtoConversionUtils;
 import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.system.service.ISysConfigService;
 import com.smartor.domain.*;
 import com.smartor.mapper.IvrLibaTargetMapper;
 import com.smartor.mapper.IvrLibaTargetTagMapper;
 import com.smartor.mapper.IvrLibaTargetoptionMapper;
 import com.smartor.service.IIvrLibaTargetService;
+import com.smartor.service.IServiceSubtaskService;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.ObjectUtils;
@@ -43,6 +45,12 @@
 
     @Autowired
     private IvrLibaTargetoptionMapper ivrLibaTargetoptionMapper;
+
+    @Autowired
+    private ISysConfigService configService;
+
+    @Autowired
+    private IServiceSubtaskService serviceSubtaskService;
 
     /**
      * 鏌ヨ鎸囨爣閫夐」搴�
@@ -251,7 +259,24 @@
      */
     @Override
     public String targetQuesMate(IvrLibaTargetVO ivrLibaTargetVO) {
+        //1-AI璇嗗埆
 
+        String url = configService.selectConfigByKey("sys.voice.match.ai.url");
+        if (ObjectUtils.isNotEmpty(url)) {
+            String matchedText = "";
+            String questionText = ivrLibaTargetVO.getQuestionText();
+            String voiceText = ivrLibaTargetVO.getContent();
+            List<IvrTaskTemplateTargetoption> options = DtoConversionUtils.sourceToTarget(ivrLibaTargetVO.getTargetoptionList(), IvrTaskTemplateTargetoption.class);
+            //1-AI璇嗗埆
+            Integer matched = serviceSubtaskService.matchOptionIndex(url, questionText, voiceText, options, "1");
+            if (ObjectUtils.isNotEmpty(matched)) {
+                if (matched >= 0) {
+                    matchedText = options.get(matched).getTargetvalue();
+                }
+            }
+            log.info("ai鍖归厤鎴愬姛锛屽尮閰嶇粨鏋滄槸:" + matchedText);
+            return matchedText;
+        }
         for (IvrLibaTargetoption ivrLibaTargetoption : ivrLibaTargetVO.getTargetoptionList()) {
 
             Matcher matcher = null;
diff --git a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
index 06899f4..8535331 100644
--- a/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
+++ b/smartor/src/main/java/com/smartor/service/impl/ServiceSubtaskServiceImpl.java
@@ -5197,6 +5197,7 @@
      * @param options
      * @return
      */
+    @Override
     public Integer matchOptionIndex(String url, String questionText, String voiceText, List<IvrTaskTemplateTargetoption> options, String uuid) {
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("userQuestion", questionText);

--
Gitblit v1.9.3