diff --git a/README.md b/README.md index c520351b..22ef61c1 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,7 @@ - [鸣谢](#鸣谢) ### 源码地址 +- 项目文档: https://doc.pandarobot.chat - 前端-后台管理: https://github.com/ageerle/ruoyi-admin - 前端-用户端: https://github.com/ageerle/ruoyi-web - 小程序端: https://github.com/ageerle/ruoyi-uniapp @@ -60,13 +61,13 @@ - 用户名: admin 密码:admin123 ### 特色功能 -1. 内置SSE、websocket等网络协议,支持对接OpenAI、Azure、ChatGLM、讯飞星火等大语言模型 -2. 支持接入个人微信或企业微信 -3. 支持易支付、微信支付和Stripe国际信用卡支付 -4. 提供邮箱登录和微信公众号登录 -5. 支持知识库功能,支持AI翻译、AI PPT制作、语音克隆和AI翻唱 -6. 提供完整的前端应用、后台管理以及小程序应用,全部开箱即用。基于MIT开源协议 - +1. 全套开源系统:提供完整的前端应用、后台管理以及小程序应用,基于MIT协议,开箱即用。 +2. 本地RAG方案:集成Milvus/Weaviate向量库、本地向量化模型与Ollama,实现本地化RAG +3. 丰富插件功能:支持联网、SQL查询及Text2API插件,扩展系统能力与应用场景。 +4. 丰富的模型集成:内置网络协议,可对接几十种大模型,并且也支持AI绘画功能。 +5. 强大的多媒体功能:支持AI翻译、PPT制作、语音克隆和翻唱等 +6. 扩展功能:支持将大模型接入个人或企业微信 +7. 支付功能:支持易支付、微信支付等多种支付方式 ### 项目演示 @@ -141,7 +142,6 @@ RuoYi-AI │ └─ ruoyi-common-web // web模块 ├─ ruoyi-modules // 模块组 │ └─ ruoyi-demo // 演示模块 -│ └─ ruoyi-generator // 代码生成模块 │ └─ ruoyi-system // 业务模块 ├─ .run // 执行脚本文件 ├─ .editorconfig // 编辑器编码格式配置 @@ -158,11 +158,6 @@ RuoYi-AI - [Naive UI](https://www.naiveui.com) - [RuoYi-Vue-Plus](https://gitee.com/dromara/RuoYi-Vue-Plus) -## 贡献者 - - - - #### 如何参与开源项目 贡献使开源社区成为一个学习、激励和创造的绝佳场所。你所作的任何贡献都是**非常感谢**的。 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysModelController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysModelController.java index dfe0284f..8cc53578 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysModelController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/controller/system/SysModelController.java @@ -25,12 +25,14 @@ import org.ruoyi.system.domain.vo.SysUserVo; import org.ruoyi.system.service.ISysModelService; import org.ruoyi.system.service.ISysPackagePlanService; import org.ruoyi.system.service.ISysUserService; +import org.ruoyi.system.util.DesensitizationUtil; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** * 系统模型 @@ -50,7 +52,6 @@ public class SysModelController extends BaseController { private final ISysUserService userService; - /** * 查询系统模型列表 - 全部 */ @@ -82,6 +83,14 @@ public class SysModelController extends BaseController { List array = new ArrayList<>(Arrays.asList(sysPackagePlanVo.getPlanDetail().split(","))); sysModelVos.removeIf(model -> !array.contains(model.getModelName())); } + sysModelVos.stream().map(vo -> { + String maskedApiHost = DesensitizationUtil.maskData(vo.getApiHost()); + String maskedApiKey = DesensitizationUtil.maskData(vo.getApiKey()); + vo.setApiHost(maskedApiHost); + vo.setApiKey(maskedApiKey); + return vo; + }) + .collect(Collectors.toList()); return R.ok(sysModelVos); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java new file mode 100644 index 00000000..bbcb1aad --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/ruoyi/system/util/DesensitizationUtil.java @@ -0,0 +1,19 @@ +package org.ruoyi.system.util; + + +public class DesensitizationUtil { + public static String maskData(String data) { + if (data == null || data.length() <= 4) { + return data; + } + int start = 2; + int end = data.length() - 2; + StringBuilder masked = new StringBuilder(); + masked.append(data, 0, start); + for (int i = start; i < end; i++) { + masked.append('*'); + } + masked.append(data.substring(end)); + return masked.toString(); + } +}