Compare commits
5 Commits
078f46c028
...
7a0277a3b7
| Author | SHA1 | Date |
|---|---|---|
|
|
7a0277a3b7 | |
|
|
eacdaf0d56 | |
|
|
3bf1c83f43 | |
|
|
d25859e754 | |
|
|
905601ecdb |
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,9 +45,11 @@ public class AiServiceClientImpl implements AiServiceClient {
|
|||
ResponseEntity<ChatResponse> 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());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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<Message> history = sessionManagerService.getSessionMessages(session.getSessionId());
|
||||
|
||||
ChatRequest chatRequest = ChatRequest.fromInboundMessage(message);
|
||||
List<ChatMessage> 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,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
server:
|
||||
port: 8080
|
||||
port: 8883
|
||||
|
||||
spring:
|
||||
datasource:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
server:
|
||||
port: 8080
|
||||
port: 8883
|
||||
|
||||
spring:
|
||||
datasource:
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ wecom:
|
|||
callback-url: /wecom/callback
|
||||
|
||||
transfer:
|
||||
enabled: false
|
||||
enabled: true
|
||||
keywords:
|
||||
- 人工
|
||||
- 转人工
|
||||
|
|
|
|||
Loading…
Reference in New Issue