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/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/java/com/wecom/robot/service/impl/MessageRouterServiceImpl.java b/src/main/java/com/wecom/robot/service/impl/MessageRouterServiceImpl.java index 28e2de2..778ae9e 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(); @@ -111,8 +126,7 @@ public class MessageRouterServiceImpl implements MessageRouterService { int messageCount = sessionManagerService.getMessageCount(session.getSessionId()); boolean shouldTransfer = chatResponse.getShouldTransfer() != null && chatResponse.getShouldTransfer(); - - if (!shouldTransfer) { + if (shouldTransfer) { shouldTransfer = transferService.shouldTransferToManual( message.getContent(), confidence, 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: 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: - 人工 - 转人工