From bd6f8a95585a91934590812ada4b4899d065d246 Mon Sep 17 00:00:00 2001
From: ageer <ageerle@163.com>
Date: 星期五, 28 三月 2025 22:25:32 +0800
Subject: [PATCH] fix(小程序): 1. 修复小程序一直停留在加载页面 2. 修复小程序无法正常对话

---
 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/listener/WebSocketEventListener.java |   19 ++++++++-----------
 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatMessageBo.java                  |   13 +++++++------
 ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/handler/PlusWebSocketHandler.java    |    2 +-
 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatMessageVo.java                  |    6 ++++++
 ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatMessage.java                       |    6 ++++++
 script/sql/update/update20250328.sql                                                                    |    2 ++
 6 files changed, 30 insertions(+), 18 deletions(-)

diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/handler/PlusWebSocketHandler.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/handler/PlusWebSocketHandler.java
index 7aec0bf..00de76e 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/handler/PlusWebSocketHandler.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/handler/PlusWebSocketHandler.java
@@ -61,7 +61,7 @@
         }
         ChatCompletion chatCompletion = ChatCompletion
             .builder()
-            .model(ChatCompletion.Model.GPT_3_5_TURBO.getName())
+            .model("gpt-4o-mini")
             .messages(messages)
             .temperature(0.2)
             .stream(true)
diff --git a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/listener/WebSocketEventListener.java b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/listener/WebSocketEventListener.java
index 08088c4..15c4723 100644
--- a/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/listener/WebSocketEventListener.java
+++ b/ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/listener/WebSocketEventListener.java
@@ -9,6 +9,7 @@
 import okhttp3.sse.EventSourceListener;
 import org.ruoyi.common.chat.constant.OpenAIConst;
 import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse;
+import org.ruoyi.common.chat.entity.chat.Message;
 import org.springframework.web.socket.TextMessage;
 import org.springframework.web.socket.WebSocketSession;
 
@@ -57,7 +58,12 @@
         ObjectMapper mapper = new ObjectMapper();
         // 璇诲彇Json
         ChatCompletionResponse completionResponse = mapper.readValue(data, ChatCompletionResponse.class);
-        String delta = mapper.writeValueAsString(completionResponse.getChoices().get(0).getDelta());
+        String delta = "";
+        try {
+            delta = mapper.writeValueAsString(completionResponse.getChoices().get(0).getDelta());
+        }catch (Exception e){
+            log.error("杞崲澶辫触{}",e.getMessage());
+        }   
         session.sendMessage(new TextMessage(delta));
     }
 
@@ -75,18 +81,9 @@
             return;
         }
         ResponseBody body = response.body();
-
-
         if (Objects.nonNull(body)) {
             // 杩斿洖闈炴祦寮忓洖澶嶅唴瀹�
-            if(response.code() == OpenAIConst.SUCCEED_CODE){
-                ObjectMapper mapper = new ObjectMapper();
-                ChatCompletionResponse completionResponse = mapper.readValue(body.string(), ChatCompletionResponse.class);
-                String delta = mapper.writeValueAsString(completionResponse.getChoices().get(0).getMessage().getContent());
-                session.sendMessage(new TextMessage(delta));
-            }else {
-                log.error("Socket杩炴帴寮傚父data锛歿}锛屽紓甯革細{}", body.string(), t);
-            }
+            log.error("Socket杩炴帴寮傚父data锛歿}锛屽紓甯革細{}", body.string(), t);
         } else {
             log.error("Socket杩炴帴寮傚父data锛歿}锛屽紓甯革細{}", response, t);
         }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatMessage.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatMessage.java
index eb42845..b60a087 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatMessage.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatMessage.java
@@ -38,6 +38,12 @@
     private Long UserId;
 
     /**
+     * 瀵硅瘽瑙掕壊
+     */
+    private String role;
+
+
+    /**
      * 娑堟伅鍐呭
      */
     @NotBlank(message = "娑堟伅鍐呭涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatMessageBo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatMessageBo.java
index b105a59..4610ab8 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatMessageBo.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatMessageBo.java
@@ -30,13 +30,17 @@
     /**
      * 鐢ㄦ埛ID
      */
-    @NotBlank(message = "鐢ㄦ埛ID", groups = { AddGroup.class, EditGroup.class })
-    private Long UserId;
+    private Long userId;
 
     /**
      * 鐢ㄦ埛鍚嶇О
      */
-    private String UserName;
+    private String userName;
+
+    /**
+     * 瀵硅瘽瑙掕壊
+     */
+    private String role;
 
     /**
      * 娑堟伅鍐呭
@@ -52,19 +56,16 @@
     /**
      * 绱 Tokens
      */
-    @NotNull(message = "绱 Tokens涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
     private Integer totalTokens;
 
     /**
      * 妯″瀷鍚嶇О
      */
-    @NotBlank(message = "妯″瀷鍚嶇О涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
     private String modelName;
 
     /**
      * 澶囨敞
      */
-    @NotBlank(message = "澶囨敞涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
     private String remark;
 
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatMessageVo.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatMessageVo.java
index 3d4d06c..641e0f7 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatMessageVo.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatMessageVo.java
@@ -47,6 +47,12 @@
     private String userName;
 
     /**
+     * 瀵硅瘽瑙掕壊
+     */
+    private String role;
+
+
+    /**
      * 娑堟伅鍐呭
      */
     @NotBlank(message = "娑堟伅鍐呭涓嶈兘涓虹┖", groups = { AddGroup.class, EditGroup.class })
diff --git a/script/sql/update/update20250328.sql b/script/sql/update/update20250328.sql
new file mode 100644
index 0000000..3f703ee
--- /dev/null
+++ b/script/sql/update/update20250328.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `chat_message`
+    ADD COLUMN `role` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '瀵硅瘽瑙掕壊' AFTER `content`;

--
Gitblit v1.9.3