修改文件上传管理员限制,修改通用智能与提示词部分的模型参数选择展示设置

This commit is contained in:
junleea 2025-04-23 15:11:16 +08:00
parent ead2961500
commit bf05991f5d
5 changed files with 220 additions and 25 deletions

View File

@ -29,7 +29,7 @@ const handle = (rawFile: any) => {
console.log(rawFile);
};
const allowedTypes = ['doc', 'docx', 'pdf', 'txt', 'png', 'jpg', 'jpeg','md', "epub", 'go', 'java', 'py', 'js', 'html', 'css', 'json', 'xml', 'yaml', 'yml'];
const userRole = localStorage.getItem('ms_role') || '';
interface UploadData {
upload_type: string;
auth_type: string;
@ -62,17 +62,27 @@ const headers = {
};
const beforeUpload = (file: any) => {
if(userRole == "admin"){
}
const fileExtension = file.name.split('.').pop().toLowerCase();
const isAllowedType = allowedTypes.includes(fileExtension);
if (!isAllowedType) {
if (!isAllowedType && userRole != "admin") {
ElMessage.error('不允许的文件类型,仅支持 doc, docx, pdf, txt, png, jpg, jpeg, md, epub 及代码文本格式');
return false;
}
}
if(!isAllowedType && userRole == "admin"){
//,
confirm('不允许的文件类型,是否继续上传?') ? isAllowedType : false;
}
//
const isLt2M = file.size / 1024 / 1024 < 5;
if (!isLt2M) {
if (!isLt2M && userRole != "admin") {
ElMessage.error('上传文件大小不能超过 5MB');
}
if(!isLt2M && userRole == "admin"){
//,
confirm('文件过大,是否继续上传?') ? isLt2M : false;
}
return isLt2M;
};

View File

@ -151,6 +151,7 @@ const getMyUserInfo = async (id) => {
localStorage.setItem("ms_imgurl", result["data"]["Avatar"]);
permiss.handleSet(keys);
localStorage.setItem("ms_keys", JSON.stringify(keys));
localStorage.setItem("ms_role", result["data"]["Role"]);
router.push("/");
//alert("video_func:" + localStorage.getItem("video_func")+" type:" +typeof(localStorage.getItem("video_func")));

View File

@ -111,6 +111,7 @@ const getMyUserInfo = async (id) => {
permiss.defaultList[result["data"]["Role"] == "admin" ? "admin" : "user"];
permiss.handleSet(keys);
localStorage.setItem("ms_keys", JSON.stringify(keys));
localStorage.setItem("ms_role", result["data"]["Role"]);
router.push("/");
//alert("video_func:" + localStorage.getItem("video_func")+" type:" +typeof(localStorage.getItem("video_func")));

View File

@ -100,18 +100,75 @@
:disabled="loading"
>发送</el-button
>
<div>
<p>模型参数</p>
<el-slider v-model="temperature" :min="0" :max="1" :step="0.1"
>temperature</el-slider
>
<el-slider
v-model="topP"
:min="0"
:max="1"
:step="0.1"
></el-slider>
</div>
<el-dropdown trigger="click" class="model-dropdown">
<span class="el-dropdown-link">
<span>模型参数</span>
<el-icon><ArrowDown /></el-icon>
</span>
<template #dropdown>
<div class="dropdown-content">
<div class="model-params">
<h4>模型参数
<el-tooltip
effect="dark"
placement="right"
content="建议仅调整 temperature 或 top_p 其中之一,不建议两者都修改"
>
<el-icon class="tip-icon"><QuestionFilled /></el-icon>
</el-tooltip>
</h4>
<!-- 温度参数 -->
<div class="param-item">
<div class="param-label">
<span>温度 (Temperature)</span>
<el-tooltip
effect="dark"
placement="right"
content="采样温度控制生成随机性0: 保守2: 随机)"
>
<el-icon class="tip-icon"><QuestionFilled /></el-icon>
</el-tooltip>
</div>
<el-slider
v-model="temperature"
:min="0"
:max="2"
:step="0.1"
:show-tooltip="false"
/>
<div class="param-value">{{ temperature.toFixed(1) }}</div>
</div>
<!-- Top P 参数 -->
<div class="param-item">
<div class="param-label">
<span>Top P</span>
<el-tooltip
effect="dark"
placement="right"
content="限制候选词范围0: 严格1: 宽松)"
>
<el-icon class="tip-icon"><QuestionFilled /></el-icon>
</el-tooltip>
</div>
<el-slider
v-model="topP"
:min="0"
:max="1"
:step="0.1"
:show-tooltip="false"
/>
<div class="param-value">{{ topP.toFixed(1) }}</div>
</div>
</div>
</div>
</template>
</el-dropdown>
</el-col>
<el-col :span="3" style="text-align: center">
<el-select v-model="selectModel" placeholder="选择模型">
@ -286,7 +343,7 @@ const sessionIsShow = ref(false);
const sessionName = ref("");
const ModelList = ref<Model[]>([]);
const selectModel = ref(0);
const temperature = ref(0.5);
const temperature = ref(0.8);
const topP = ref(0.9);
const selectedFiles = ref<File[]>([]); //
const selectFileVisible = ref(false); //
@ -1000,4 +1057,55 @@ const getFileListData = async () => {
.el-icon-document {
color: #409eff;
}
.model-dropdown {
margin-top: 10px;
}
.dropdown-content {
width: 400px;
padding: 10px;
}
.model-params {
margin-top: 10px;
}
.param-value {
margin-top: 5px;
text-align: right;
}
.param-item {
margin: 25px 0;
}
.param-label {
display: flex;
align-items: center;
margin-bottom: 8px;
color: #606266;
}
.tip-icon {
margin-left: 8px;
color: #909399;
cursor: help;
}
.param-value {
margin-top: 8px;
text-align: center;
font-weight: bold;
color: #409eff;
}
/* 自定义滑块样式 */
:deep(.el-slider__runway) {
height: 6px;
}
:deep(.el-slider__button) {
width: 16px;
height: 16px;
}
</style>

View File

@ -63,12 +63,60 @@
</div>
</div>
<div class="model-params">
<h4>模型参数</h4>
<el-slider v-model="temperature" :min="0" :max="1" :step="0.1"></el-slider>
<div class="param-value">{{ temperature }}</div>
<el-slider v-model="topP" :min="0" :max="1" :step="0.1"></el-slider>
<div class="param-value">{{ topP }}</div>
</div>
<h4>模型参数
<el-tooltip
effect="dark"
placement="right"
content="建议仅调整 temperature 或 top_p 其中之一,不建议两者都修改"
>
<el-icon class="tip-icon"><QuestionFilled /></el-icon>
</el-tooltip>
</h4>
<!-- 温度参数 -->
<div class="param-item">
<div class="param-label">
<span>温度 (Temperature)</span>
<el-tooltip
effect="dark"
placement="right"
content="采样温度控制生成随机性0: 保守2: 随机)"
>
<el-icon class="tip-icon"><QuestionFilled /></el-icon>
</el-tooltip>
</div>
<el-slider
v-model="temperature"
:min="0"
:max="2"
:step="0.1"
:show-tooltip="false"
/>
<div class="param-value">{{ temperature.toFixed(1) }}</div>
</div>
<!-- Top P 参数 -->
<div class="param-item">
<div class="param-label">
<span>Top P</span>
<el-tooltip
effect="dark"
placement="right"
content="限制候选词范围0: 严格1: 宽松)"
>
<el-icon class="tip-icon"><QuestionFilled /></el-icon>
</el-tooltip>
</div>
<el-slider
v-model="topP"
:min="0"
:max="1"
:step="0.1"
:show-tooltip="false"
/>
<div class="param-value">{{ topP.toFixed(1) }}</div>
</div>
</div>
</div>
</template>
</el-dropdown>
@ -375,8 +423,35 @@ onUnmounted(() => {
.model-params {
margin-top: 10px;
}
.param-label {
display: flex;
align-items: center;
margin-bottom: 8px;
color: #606266;
}
.tip-icon {
margin-left: 8px;
color: #909399;
cursor: help;
}
.param-value {
margin-top: 5px;
text-align: right;
margin-top: 8px;
text-align: center;
font-weight: bold;
color: #409eff;
}
/* 自定义滑块样式 */
:deep(.el-slider__runway) {
height: 6px;
}
:deep(.el-slider__button) {
width: 16px;
height: 16px;
}
</style>