mirror of
https://gitcode.com/ageerle/ruoyi-ai.git
synced 2026-03-28 12:03:43 +08:00
Merge remote-tracking branch 'origin/main'
This commit is contained in:
21
README.md
21
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)
|
||||
|
||||
## 贡献者
|
||||
<a href="https://github.com/ageerle/ruoyi-ai/graphs/contributors">
|
||||
<img src="https://contrib.rocks/image?repo=ageerle/ruoyi-ai" />
|
||||
</a>
|
||||
|
||||
#### 如何参与开源项目
|
||||
|
||||
贡献使开源社区成为一个学习、激励和创造的绝佳场所。你所作的任何贡献都是**非常感谢**的。
|
||||
|
||||
@@ -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<String> 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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user