diff --git a/.idea/AugmentWebviewStateStore.xml b/.idea/AugmentWebviewStateStore.xml index 88fc6f3..d408b67 100644 --- a/.idea/AugmentWebviewStateStore.xml +++ b/.idea/AugmentWebviewStateStore.xml @@ -3,7 +3,7 @@ diff --git a/backend-single/src/main/java/com/emotion/service/AiChatService.java b/backend-single/src/main/java/com/emotion/service/AiChatService.java index 495ea3f..c4d4de3 100644 --- a/backend-single/src/main/java/com/emotion/service/AiChatService.java +++ b/backend-single/src/main/java/com/emotion/service/AiChatService.java @@ -27,6 +27,16 @@ public interface AiChatService { */ String sendChatMessageForWebSocket(String conversationId, String message, String userId); + /** + * WebSocket方式发送聊天消息(只保存AI回复,带messageId) + * @param conversationId 会话ID + * @param messageId 用户消息ID + * @param message 用户消息内容 + * @param userId 用户ID + * @return AI回复内容 + */ + String sendChatMessageForWebSocket(String conversationId, String messageId, String message, String userId); + /** * 生成对话总结 * @param conversationId 会话ID diff --git a/backend-single/src/main/java/com/emotion/service/impl/AiChatServiceImpl.java b/backend-single/src/main/java/com/emotion/service/impl/AiChatServiceImpl.java index bc2d68e..85c0e30 100644 --- a/backend-single/src/main/java/com/emotion/service/impl/AiChatServiceImpl.java +++ b/backend-single/src/main/java/com/emotion/service/impl/AiChatServiceImpl.java @@ -149,7 +149,7 @@ public class AiChatServiceImpl implements AiChatService { log.info("WebSocket发送聊天消息: conversationId={}, userId={}, message={}", conversationId, userId, message); try { - // 调用Coze API + // 调用Coze API(不带messageId) String aiReply = sendMessage(conversationId, message, userId); // 注意:不保存用户消息,因为WebSocket处理器已经保存了 @@ -172,6 +172,38 @@ public class AiChatServiceImpl implements AiChatService { } } + @Override + public String sendChatMessageForWebSocket(String conversationId, String messageId, String message, String userId) { + log.info("WebSocket发送聊天消息(带messageId): conversationId={}, messageId={}, userId={}, message={}", + conversationId, messageId, userId, message); + + try { + // 调用Coze API(带messageId) + String aiReply = sendMessageWithMessageId(conversationId, messageId, message, userId); + + // 注意:不保存用户消息,因为WebSocket处理器已经保存了 + // 只保存AI回复 + Message aiMessage = new Message(); + aiMessage.setConversationId(conversationId); + aiMessage.setCreateBy(userId); // 设置创建人为当前用户 + aiMessage.setContent(aiReply); + aiMessage.setType("text"); + aiMessage.setSender("ai"); + aiMessage.setCozeRole("assistant"); + aiMessage.setCozeContentType("text"); + aiMessage = messageService.createMessage(aiMessage); + + log.info("WebSocket聊天消息处理完成(带messageId): userMessageId={}, aiMessageId={}", + messageId, aiMessage.getId()); + + return aiReply; + + } catch (Exception e) { + log.error("WebSocket发送聊天消息失败(带messageId)", e); + return "抱歉,我暂时无法回复,请稍后再试。"; + } + } + @Override public String generateConversationSummary(String conversationId, String userId) { log.info("生成对话总结: conversationId={}, userId={}", conversationId, userId); diff --git a/backend-single/src/main/java/com/emotion/service/impl/CozeApiCallServiceImpl.java b/backend-single/src/main/java/com/emotion/service/impl/CozeApiCallServiceImpl.java index 5bdc2b8..e41d906 100644 --- a/backend-single/src/main/java/com/emotion/service/impl/CozeApiCallServiceImpl.java +++ b/backend-single/src/main/java/com/emotion/service/impl/CozeApiCallServiceImpl.java @@ -233,7 +233,7 @@ public class CozeApiCallServiceImpl extends ServiceImpl -
+
-
+ + +
+ +