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