From f91ea8c1ca793d1b791f2b63ab30d6ea2c4a675a Mon Sep 17 00:00:00 2001 From: ageerle Date: Thu, 13 Mar 2025 09:43:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9C=AA=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E6=97=A0=E6=B3=95=E4=BD=BF=E7=94=A8=E8=81=94=E7=BD=91?= =?UTF-8?q?=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ruoyi/controller/KnowledgeController.java | 2 +- .../system/service/impl/SseServiceImpl.java | 44 ++++++++++--------- .../service/impl/SysNoticeServiceImpl.java | 5 +++ 3 files changed, 29 insertions(+), 22 deletions(-) diff --git a/ruoyi-admin/src/main/java/org/ruoyi/controller/KnowledgeController.java b/ruoyi-admin/src/main/java/org/ruoyi/controller/KnowledgeController.java index 6f9f06b5..5ccaa43f 100644 --- a/ruoyi-admin/src/main/java/org/ruoyi/controller/KnowledgeController.java +++ b/ruoyi-admin/src/main/java/org/ruoyi/controller/KnowledgeController.java @@ -106,7 +106,7 @@ public class KnowledgeController extends BaseController { @GetMapping("/list") public TableDataInfo list(KnowledgeInfoBo bo, PageQuery pageQuery) { if(!StpUtil.isLogin()){ - throw new SecurityException("请先去登录!"); + return null; } bo.setUid(LoginHelper.getUserId()); return knowledgeInfoService.queryPageList(bo, pageQuery); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java index 634cb025..ed0c3500 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SseServiceImpl.java @@ -98,33 +98,36 @@ public class SseServiceImpl implements ISseService { SSEEventSourceListener openAIEventSourceListener = new SSEEventSourceListener(sseEmitter); // 获取对话消息列表 List 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 @@ public class SseServiceImpl implements ISseService { } 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 @@ public class SseServiceImpl implements ISseService { } } } - 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(); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java index 8ed0ba99..453d2559 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/service/impl/SysNoticeServiceImpl.java @@ -1,5 +1,6 @@ package org.ruoyi.system.service.impl; +import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -65,6 +66,10 @@ public class SysNoticeServiceImpl implements ISysNoticeService { */ @Override public SysNotice getNotice(SysNoticeBo notice) { + if(!StpUtil.isLogin()){ + return null; + } + LambdaQueryWrapper lqwState = Wrappers.lambdaQuery(); Long userId = LoginHelper.getLoginUser().getUserId();