From 905601ecdb9d95f70d838429cfe0f5cf671d1280 Mon Sep 17 00:00:00 2001 From: MerCry Date: Thu, 26 Feb 2026 22:15:41 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E8=B0=83=E8=AF=95=20=E7=A1=AE=E4=BF=9D=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E8=81=94=E9=80=9Aai=E4=B8=AD=E5=8F=B0[AC-INIT]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/wecom/robot/service/impl/AiServiceClientImpl.java | 6 ++++-- src/main/resources/application-dev.yml | 2 +- src/main/resources/application-prod.yml | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/wecom/robot/service/impl/AiServiceClientImpl.java b/src/main/java/com/wecom/robot/service/impl/AiServiceClientImpl.java index 0969693..d835e81 100644 --- a/src/main/java/com/wecom/robot/service/impl/AiServiceClientImpl.java +++ b/src/main/java/com/wecom/robot/service/impl/AiServiceClientImpl.java @@ -45,9 +45,11 @@ public class AiServiceClientImpl implements AiServiceClient { ResponseEntity response = restTemplate.postForEntity( url, entity, ChatResponse.class); - log.info("[AC-MCA-05] AI 服务响应: sessionId={}, shouldTransfer={}", + log.info("[AC-MCA-05] AI 服务响应: sessionId={}, shouldTransfer={},置信度:{}", request.getSessionId(), - response.getBody() != null ? response.getBody().getShouldTransfer() : null); + response.getBody() != null ? response.getBody().getShouldTransfer() : null, + response.getBody().getConfidence() + ); return CompletableFuture.completedFuture(response.getBody()); } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index fb60211..9af8a06 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -1,5 +1,5 @@ server: - port: 8080 + port: 8883 spring: datasource: diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index d5f72e8..e36a06e 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -1,5 +1,5 @@ server: - port: 8080 + port: 8883 spring: datasource: -- 2.40.1 From d25859e754db751eaebea0614326432db05a1d9d Mon Sep 17 00:00:00 2001 From: MerCry Date: Thu, 26 Feb 2026 23:25:44 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E8=B0=83=E8=AF=95=20=E7=A1=AE=E4=BF=9D=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E8=81=94=E9=80=9Aai=E4=B8=AD=E5=8F=B0[AC-INIT]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MessageRouterServiceImpl.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/wecom/robot/service/impl/MessageRouterServiceImpl.java b/src/main/java/com/wecom/robot/service/impl/MessageRouterServiceImpl.java index 28e2de2..0153cbf 100644 --- a/src/main/java/com/wecom/robot/service/impl/MessageRouterServiceImpl.java +++ b/src/main/java/com/wecom/robot/service/impl/MessageRouterServiceImpl.java @@ -5,6 +5,7 @@ import com.wecom.robot.adapter.TransferCapable; import com.wecom.robot.dto.InboundMessage; import com.wecom.robot.dto.OutboundMessage; import com.wecom.robot.dto.ai.ChatRequest; +import com.wecom.robot.dto.ai.ChatMessage; import com.wecom.robot.dto.ai.ChatResponse; import com.wecom.robot.entity.Message; import com.wecom.robot.entity.Session; @@ -17,6 +18,7 @@ import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -94,7 +96,20 @@ public class MessageRouterServiceImpl implements MessageRouterService { List history = sessionManagerService.getSessionMessages(session.getSessionId()); - ChatRequest chatRequest = ChatRequest.fromInboundMessage(message); + List chatHistory = new ArrayList<>(); + if (history != null && !history.isEmpty()) { + for (Message msg : history) { + String role = Message.SENDER_TYPE_CUSTOMER.equals(msg.getSenderType()) + ? ChatMessage.ROLE_USER + : ChatMessage.ROLE_ASSISTANT; + chatHistory.add(ChatMessage.builder() + .role(role) + .content(msg.getContent()) + .build()); + } + } + + ChatRequest chatRequest = ChatRequest.fromInboundMessage(message, chatHistory); ChatResponse chatResponse; try { chatResponse = aiServiceClient.generateReply(chatRequest).get(); @@ -110,8 +125,8 @@ public class MessageRouterServiceImpl implements MessageRouterService { double confidence = chatResponse.getConfidence() != null ? chatResponse.getConfidence() : 0.0; int messageCount = sessionManagerService.getMessageCount(session.getSessionId()); - boolean shouldTransfer = chatResponse.getShouldTransfer() != null && chatResponse.getShouldTransfer(); - + // boolean shouldTransfer = chatResponse.getShouldTransfer() != null && chatResponse.getShouldTransfer(); + boolean shouldTransfer =false; if (!shouldTransfer) { shouldTransfer = transferService.shouldTransferToManual( message.getContent(), -- 2.40.1 From 3bf1c83f43e50a1f98622391ae62fe2ca48f02ac Mon Sep 17 00:00:00 2001 From: MerCry Date: Thu, 26 Feb 2026 23:28:02 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E8=B0=83=E8=AF=95=20=E7=A1=AE=E4=BF=9D=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E8=81=94=E9=80=9Aai=E4=B8=AD=E5=8F=B0[AC-INIT]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/wecom/robot/service/TransferService.java | 4 ++-- .../wecom/robot/service/impl/MessageRouterServiceImpl.java | 5 ++--- src/main/resources/application.yml | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/wecom/robot/service/TransferService.java b/src/main/java/com/wecom/robot/service/TransferService.java index 42f12d2..ceb260d 100644 --- a/src/main/java/com/wecom/robot/service/TransferService.java +++ b/src/main/java/com/wecom/robot/service/TransferService.java @@ -28,7 +28,7 @@ public class TransferService { return true; } - if (confidence < transferConfig.getConfidenceThreshold()) { + /*if (confidence < transferConfig.getConfidenceThreshold()) { log.info("触发转人工: AI置信度过低 confidence={}", confidence); return true; } @@ -45,7 +45,7 @@ public class TransferService { log.info("触发转人工: 会话时长超限 duration={}ms", duration); return true; } - } + }*/ return false; } diff --git a/src/main/java/com/wecom/robot/service/impl/MessageRouterServiceImpl.java b/src/main/java/com/wecom/robot/service/impl/MessageRouterServiceImpl.java index 0153cbf..778ae9e 100644 --- a/src/main/java/com/wecom/robot/service/impl/MessageRouterServiceImpl.java +++ b/src/main/java/com/wecom/robot/service/impl/MessageRouterServiceImpl.java @@ -125,9 +125,8 @@ public class MessageRouterServiceImpl implements MessageRouterService { double confidence = chatResponse.getConfidence() != null ? chatResponse.getConfidence() : 0.0; int messageCount = sessionManagerService.getMessageCount(session.getSessionId()); - // boolean shouldTransfer = chatResponse.getShouldTransfer() != null && chatResponse.getShouldTransfer(); - boolean shouldTransfer =false; - if (!shouldTransfer) { + boolean shouldTransfer = chatResponse.getShouldTransfer() != null && chatResponse.getShouldTransfer(); + if (shouldTransfer) { shouldTransfer = transferService.shouldTransferToManual( message.getContent(), confidence, diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index eaf9be4..fe5e252 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -24,7 +24,7 @@ wecom: callback-url: /wecom/callback transfer: - enabled: false + enabled: true keywords: - 人工 - 转人工 -- 2.40.1