diff --git a/.idea/AugmentWebviewStateStore.xml b/.idea/AugmentWebviewStateStore.xml
index 4fc5ce0..3ab650a 100644
--- a/.idea/AugmentWebviewStateStore.xml
+++ b/.idea/AugmentWebviewStateStore.xml
@@ -3,7 +3,7 @@
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 136a259..20619af 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
@@ -109,10 +109,7 @@ public class AiChatServiceImpl implements AiChatService {
log.info("发送聊天消息: conversationId={}, userId={}, message={}", conversationId, userId, message);
try {
- // 调用Coze API
- String aiReply = sendMessage(conversationId, message, userId);
-
- // 保存用户消息
+ // 先保存用户消息
Message userMessage = new Message();
userMessage.setConversationId(conversationId);
userMessage.setCreateBy(userId);
@@ -121,6 +118,9 @@ public class AiChatServiceImpl implements AiChatService {
userMessage.setSender("user");
userMessage = messageService.createMessage(userMessage);
+ // 调用Coze API(传入messageId)
+ String aiReply = sendMessageWithMessageId(conversationId, userMessage.getId(), message, userId);
+
// 保存AI回复
Message aiMessage = new Message();
aiMessage.setConversationId(conversationId);
@@ -214,73 +214,97 @@ public class AiChatServiceImpl implements AiChatService {
}
}
+ /**
+ * 发送消息到Coze AI(带messageId)
+ */
+ private String sendMessageWithMessageId(String conversationId, String messageId, String userMessage, String userId) {
+ log.info("发送消息到Coze AI: conversationId={}, messageId={}, userId={}", conversationId, messageId, userId);
+
+ // 创建API调用记录(包含messageId)
+ CozeApiCall apiCall = createApiCallRecord(conversationId, messageId, userMessage, userId, "chat");
+
+ try {
+ return executeCozeApiCall(apiCall, conversationId, userMessage, userId);
+ } catch (Exception e) {
+ log.error("发送消息失败", e);
+ updateApiCallFailure(apiCall, e.getMessage());
+ return "抱歉,AI服务暂时不可用,请稍后再试。";
+ }
+ }
+
@Override
public String sendMessage(String conversationId, String userMessage, String userId) {
log.info("发送消息到Coze AI: conversationId={}, userId={}", conversationId, userId);
- // 创建API调用记录
- CozeApiCall apiCall = createApiCallRecord(conversationId, userMessage, userId, "chat");
+ // 创建API调用记录(不包含messageId,用于向后兼容)
+ CozeApiCall apiCall = createApiCallRecord(conversationId, null, userMessage, userId, "chat");
try {
- // 构建请求头
- HttpHeaders headers = new HttpHeaders();
- headers.set("Authorization", "Bearer " + cozeApiToken);
- headers.set("Content-Type", "application/json");
-
- // 构建请求体 - 使用正确的Coze API格式
- Map requestBody = buildCozeRequest(conversationId, userMessage, userId);
-
- // 更新API调用记录的请求信息
- updateApiCallRequest(apiCall, cozeBaseUrl + chatPath, requestBody, headers);
-
- HttpEntity