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) 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); } 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 }) 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; } 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 }) 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`;