办学质量监测教学评价系统
fix(小程序): 1. 修复小程序一直停留在加载页面 2. 修复小程序无法正常对话
已修改5个文件
已添加1个文件
48 ■■■■■ 文件已修改
ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/handler/PlusWebSocketHandler.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-chat/src/main/java/org/ruoyi/common/chat/listener/WebSocketEventListener.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/ChatMessage.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/bo/ChatMessageBo.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/domain/vo/ChatMessageVo.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
script/sql/update/update20250328.sql 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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`;