办学质量监测教学评价系统
ageerle
2025-04-29 b1ff44df4bc71f8f8be7dc913089c910d85d44d0
feat: sse对话样式优化
已修改3个文件
13 ■■■■ 文件已修改
ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/util/SSEUtil.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/listener/SSEEventSourceListener.java
@@ -12,6 +12,7 @@
import okhttp3.sse.EventSourceListener;
import org.jetbrains.annotations.NotNull;
import org.ruoyi.chat.service.chat.IChatCostService;
import org.ruoyi.chat.util.SSEUtil;
import org.ruoyi.common.chat.entity.chat.ChatCompletionResponse;
import org.ruoyi.common.chat.request.ChatRequest;
import org.ruoyi.common.core.utils.SpringUtils;
@@ -84,10 +85,10 @@
                    modelName = completionResponse.getModel();
                }
                stringBuffer.append(content);
                emitter.send(content);
                emitter.send(data);
            }
        } catch (Exception e) {
            emitter.completeWithError(e);
            log.error(e.getMessage(), e);
        }
    }
ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/service/chat/impl/SseServiceImpl.java
@@ -11,6 +11,7 @@
import org.ruoyi.chat.service.chat.IChatCostService;
import org.ruoyi.chat.service.chat.ISseService;
import org.ruoyi.chat.util.IpUtil;
import org.ruoyi.chat.util.SSEUtil;
import org.ruoyi.common.chat.config.LocalCache;
import org.ruoyi.common.chat.entity.Tts.TextToSpeech;
import org.ruoyi.common.chat.entity.chat.ChatCompletion;
@@ -88,7 +89,7 @@
            switchModelAndHandle(chatRequest,sseEmitter);
        } catch (Exception e) {
            log.error(e.getMessage(),e);
            sseEmitter.completeWithError(e);
            SSEUtil.sendErrorEvent(sseEmitter,e.getMessage());
        }
        return sseEmitter;
    }
ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/chat/util/SSEUtil.java
@@ -21,11 +21,8 @@
     * @param errorMessage 错误信息
     */
    public static void sendErrorEvent(ResponseBodyEmitter sseEmitter, String errorMessage) {
        SseEmitter.SseEventBuilder event = SseEmitter.event()
                .name("error")
                .data(errorMessage);
        try {
            sseEmitter.send(event);
            sseEmitter.send(errorMessage);
        } catch (IOException e) {
            log.error("SSE发送失败: {}", e.getMessage());
        }