办学质量监测教学评价系统
ageerle
2025-03-13 f91ea8c1ca793d1b791f2b63ab30d6ea2c4a675a
ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java
@@ -98,33 +98,36 @@
        SSEEventSourceListener openAIEventSourceListener = new SSEEventSourceListener(sseEmitter);
        // 获取对话消息列表
        List<Message> messages = chatRequest.getMessages();
        try {
            String chatString = null;
            Object content = messages.get(messages.size() - 1).getContent();
            if (content instanceof List<?> listContent) {
                if (!listContent.isEmpty() && listContent.get(0) instanceof Content) {
                    chatString = ((Content) listContent.get(0)).getText();
                }
            } else if (content instanceof String) {
                chatString = (String) content;
            }
            String configValue = getKey("enabled");
            if (Boolean.parseBoolean(configValue)) {
                // 判断文本是否合规
                String type = textReview(chatString);
                // 审核状态 1 代表合法
                if (!"1".equals(type) && StringUtils.isNotEmpty(type)) {
                    throw new BaseException("文本不合规,请修改!");
                }
            }
            if (StpUtil.isLogin()) {
                LocalCache.CACHE.put("userId", getUserId());
                Object content = messages.get(messages.size() - 1).getContent();
                if (content instanceof List<?> listContent) {
                    if (!listContent.isEmpty() && listContent.get(0) instanceof Content) {
                        chatString = ((Content) listContent.get(0)).getText();
                    }
                } else if (content instanceof String) {
                    chatString = (String) content;
                }
                ChatMessageBo chatMessageBo = new ChatMessageBo();
                chatMessageBo.setUserId(getUserId());
                chatMessageBo.setModelName(chatRequest.getModel());
                chatMessageBo.setContent(chatString);
                String configValue = getKey("enabled");
                if (Boolean.parseBoolean(configValue)) {
                    // 判断文本是否合规
                    String type = textReview(chatString);
                    // 审核状态 1 代表合法
                    if (!"1".equals(type) && StringUtils.isNotEmpty(type)) {
                        throw new BaseException("文本不合规,请修改!");
                    }
                }
                String model = chatRequest.getModel();
                // 如果是gpts系列模型
                if (chatRequest.getModel().startsWith("gpt-4-gizmo")) {
@@ -137,7 +140,6 @@
                } else {
                    openAiStreamClient = chatConfig.createOpenAiStreamClient(sysModel.getApiHost(), sysModel.getApiKey());
                    // 模型设置默认提示词
                    if (StringUtils.isNotEmpty(sysModel.getSystemPrompt())) {
                        Message sysMessage = Message.builder().content(sysModel.getSystemPrompt()).role(Message.Role.SYSTEM).build();
                        messages.add(sysMessage);
@@ -150,10 +152,10 @@
                    }
                }
            }
            String configValue = configService.getConfigValue("zhipu", "key");
            String zhipuValue = configService.getConfigValue("zhipu", "key");
            // 添加联网信息
            if(StringUtils.isNotEmpty(configValue)){
                ClientV4 client = new ClientV4.Builder(configValue)
                ClientV4 client = new ClientV4.Builder(zhipuValue)
                        .networkConfig(300, 100, 100, 100, TimeUnit.SECONDS)
                        .connectionPool(new okhttp3.ConnectionPool(8, 1, TimeUnit.SECONDS))
                        .build();