Merge pull request 'feat/multi-channel-framework' (#17) from feat/multi-channel-framework into main
Reviewed-on: http://ashai.com.cn:3005/MerCry/ai-robot-channel/pulls/17
This commit is contained in:
commit
7a0277a3b7
|
|
@ -28,7 +28,7 @@ public class TransferService {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (confidence < transferConfig.getConfidenceThreshold()) {
|
/*if (confidence < transferConfig.getConfidenceThreshold()) {
|
||||||
log.info("触发转人工: AI置信度过低 confidence={}", confidence);
|
log.info("触发转人工: AI置信度过低 confidence={}", confidence);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -45,7 +45,7 @@ public class TransferService {
|
||||||
log.info("触发转人工: 会话时长超限 duration={}ms", duration);
|
log.info("触发转人工: 会话时长超限 duration={}ms", duration);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,9 +45,11 @@ public class AiServiceClientImpl implements AiServiceClient {
|
||||||
ResponseEntity<ChatResponse> response = restTemplate.postForEntity(
|
ResponseEntity<ChatResponse> response = restTemplate.postForEntity(
|
||||||
url, entity, ChatResponse.class);
|
url, entity, ChatResponse.class);
|
||||||
|
|
||||||
log.info("[AC-MCA-05] AI 服务响应: sessionId={}, shouldTransfer={}",
|
log.info("[AC-MCA-05] AI 服务响应: sessionId={}, shouldTransfer={},置信度:{}",
|
||||||
request.getSessionId(),
|
request.getSessionId(),
|
||||||
response.getBody() != null ? response.getBody().getShouldTransfer() : null);
|
response.getBody() != null ? response.getBody().getShouldTransfer() : null,
|
||||||
|
response.getBody().getConfidence()
|
||||||
|
);
|
||||||
|
|
||||||
return CompletableFuture.completedFuture(response.getBody());
|
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.InboundMessage;
|
||||||
import com.wecom.robot.dto.OutboundMessage;
|
import com.wecom.robot.dto.OutboundMessage;
|
||||||
import com.wecom.robot.dto.ai.ChatRequest;
|
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.dto.ai.ChatResponse;
|
||||||
import com.wecom.robot.entity.Message;
|
import com.wecom.robot.entity.Message;
|
||||||
import com.wecom.robot.entity.Session;
|
import com.wecom.robot.entity.Session;
|
||||||
|
|
@ -17,6 +18,7 @@ import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
@ -94,7 +96,20 @@ public class MessageRouterServiceImpl implements MessageRouterService {
|
||||||
|
|
||||||
List<Message> history = sessionManagerService.getSessionMessages(session.getSessionId());
|
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;
|
ChatResponse chatResponse;
|
||||||
try {
|
try {
|
||||||
chatResponse = aiServiceClient.generateReply(chatRequest).get();
|
chatResponse = aiServiceClient.generateReply(chatRequest).get();
|
||||||
|
|
@ -111,8 +126,7 @@ public class MessageRouterServiceImpl implements MessageRouterService {
|
||||||
int messageCount = sessionManagerService.getMessageCount(session.getSessionId());
|
int messageCount = sessionManagerService.getMessageCount(session.getSessionId());
|
||||||
|
|
||||||
boolean shouldTransfer = chatResponse.getShouldTransfer() != null && chatResponse.getShouldTransfer();
|
boolean shouldTransfer = chatResponse.getShouldTransfer() != null && chatResponse.getShouldTransfer();
|
||||||
|
if (shouldTransfer) {
|
||||||
if (!shouldTransfer) {
|
|
||||||
shouldTransfer = transferService.shouldTransferToManual(
|
shouldTransfer = transferService.shouldTransferToManual(
|
||||||
message.getContent(),
|
message.getContent(),
|
||||||
confidence,
|
confidence,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
server:
|
server:
|
||||||
port: 8080
|
port: 8883
|
||||||
|
|
||||||
spring:
|
spring:
|
||||||
datasource:
|
datasource:
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
server:
|
server:
|
||||||
port: 8080
|
port: 8883
|
||||||
|
|
||||||
spring:
|
spring:
|
||||||
datasource:
|
datasource:
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ wecom:
|
||||||
callback-url: /wecom/callback
|
callback-url: /wecom/callback
|
||||||
|
|
||||||
transfer:
|
transfer:
|
||||||
enabled: false
|
enabled: true
|
||||||
keywords:
|
keywords:
|
||||||
- 人工
|
- 人工
|
||||||
- 转人工
|
- 转人工
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue