From bd6f8a95585a91934590812ada4b4899d065d246 Mon Sep 17 00:00:00 2001 From: ageer Date: Fri, 28 Mar 2025 22:25:32 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E5=B0=8F=E7=A8=8B=E5=BA=8F):=201.=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B0=8F=E7=A8=8B=E5=BA=8F=E4=B8=80=E7=9B=B4?= =?UTF-8?q?=E5=81=9C=E7=95=99=E5=9C=A8=E5=8A=A0=E8=BD=BD=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=202.=20=E4=BF=AE=E5=A4=8D=E5=B0=8F=E7=A8=8B=E5=BA=8F=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=AD=A3=E5=B8=B8=E5=AF=B9=E8=AF=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../chat/handler/PlusWebSocketHandler.java | 2 +- .../chat/listener/WebSocketEventListener.java | 19 ++++++++----------- .../org/ruoyi/system/domain/ChatMessage.java | 6 ++++++ .../ruoyi/system/domain/bo/ChatMessageBo.java | 13 +++++++------ .../ruoyi/system/domain/vo/ChatMessageVo.java | 6 ++++++ script/sql/update/update20250328.sql | 2 ++ 6 files changed, 30 insertions(+), 18 deletions(-) create mode 100644 script/sql/update/update20250328.sql 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 7aec0bfb..00de76e7 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 @@ public class PlusWebSocketHandler extends AbstractWebSocketHandler { } 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 08088c47..15c47231 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.EventSource; 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 @@ public class WebSocketEventListener extends EventSourceListener { 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 @@ public class WebSocketEventListener extends EventSourceListener { 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 eb42845d..b60a0870 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 @@ -37,6 +37,12 @@ public class ChatMessage extends BaseEntity { @NotBlank(message = "用户ID", groups = { AddGroup.class, EditGroup.class }) private Long UserId; + /** + * 对话角色 + */ + private String role; + + /** * 消息内容 */ 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 b105a592..4610ab81 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 @@ public class ChatMessageBo extends BaseEntity { /** * 用户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 @@ public class ChatMessageBo extends BaseEntity { /** * 累计 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 3d4d06cc..641e0f7f 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 @@ -46,6 +46,12 @@ public class ChatMessageVo implements Serializable { @NotBlank(message = "用户名称") private String userName; + /** + * 对话角色 + */ + private String role; + + /** * 消息内容 */ diff --git a/script/sql/update/update20250328.sql b/script/sql/update/update20250328.sql new file mode 100644 index 00000000..3f703eea --- /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`;