feat/multi-channel-framework #17

Merged
MerCry merged 4 commits from feat/multi-channel-framework into main 2026-03-13 09:56:02 +00:00
1 changed files with 18 additions and 3 deletions
Showing only changes of commit d25859e754 - Show all commits

View File

@ -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();
@ -110,8 +125,8 @@ public class MessageRouterServiceImpl implements MessageRouterService {
double confidence = chatResponse.getConfidence() != null ? chatResponse.getConfidence() : 0.0; double confidence = chatResponse.getConfidence() != null ? chatResponse.getConfidence() : 0.0;
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();
boolean shouldTransfer =false;
if (!shouldTransfer) { if (!shouldTransfer) {
shouldTransfer = transferService.shouldTransferToManual( shouldTransfer = transferService.shouldTransferToManual(
message.getContent(), message.getContent(),