人脸识别与大模型问答

This commit is contained in:
jiang 2024-09-27 18:18:23 +08:00
parent 746d819d7f
commit b8ad37a16a
8 changed files with 143 additions and 39 deletions

View File

@ -57,6 +57,18 @@ export function uploadImgFiles(formData) {
})
}
// 删除菜单
export function uploadZipFiles(formData) {
return request({
url: '/ai/dataSet/uploadZipFiles',
method: 'post',
data: formData,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
}

View File

@ -20,20 +20,26 @@ export function getModelsById(modelId) {
// 查询菜单列表
export function insertModel(data) {
export function insertModel(formData) {
return request({
url: '/ai/dataSet/insertModel',
method: 'post',
data: data
data: formData,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
}
// 查询菜单列表
export function updateModel(data) {
export function updateModel(formData) {
return request({
url: '/ai/dataSet/updateModel',
method: 'post',
data: data
data: formData,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
}

View File

@ -90,11 +90,37 @@ export const constantRoutes = [
component: () => import('@/views/dataSet/dataSetCategory/index'),
hidden: true
},
{
path: '/dataSetAlgorithm',
component: () => import('@/views/dataSet/dataSetCategory/index'),
hidden: true
},
{
path: '/dataSetFile',
component: () => import('@/views/dataSet/dataSetFile/index'),
hidden: true
},
{
path: '/dataSetLabel',
component: () => import('@/views/dataSet/dataSetLabel/index'),
hidden: true
},
{
path: '/dataSetLog',
component: () => import('@/views/dataSet/dataSetLog/index'),
hidden: true
},
{
path: '/dataSetModel',
component: () => import('@/views/dataSet/dataSetModel/index'),
hidden: true
},
{
path: '/dataSetTask',
component: () => import('@/views/dataSet/dataSetTask/index'),
hidden: true
},
{
path: '/dataSetFile/dataset',
name: 'details',

View File

@ -138,7 +138,7 @@ service.interceptors.response.use(res => {
}).then(() => {
isRelogin.show = false
store.dispatch('LogOut').then(() => {
location.href = '/index'
location.href = '/login'
})
}).catch(() => {
isRelogin.show = false

View File

@ -36,7 +36,7 @@
<el-col :span="5" style="text-align: left">
<el-checkbox v-model="checked" style="margin-right: 5%;color: #FFFFFF" @change="changItem">全选</el-checkbox>
<el-button size="mini" @click="handleUpdate()">移动文件</el-button>
<el-button type="primary" size="mini" @click="handleDelete">删除文件</el-button>
<el-button type="primary" size="mini" @click="handleDelete()">删除文件</el-button>
<el-button type="primary" size="mini" @click="back()">返回</el-button>
</el-col>
<el-col :span="14" style="text-align: center">
@ -320,26 +320,24 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.fileIds = [];
Object.values(this.backLayout).forEach((item) => {
if (item.checked) {
this.fileIds.push(item.fileId);
}
})
if (row) {
this.fileIds.push(row.fileId);
} else {
Object.values(this.backLayout).forEach((item) => {
if (item.checked) {
this.fileIds.push(item.fileId);
}
})
}
if (!row && this.fileIds.length === 0) {
this.$modal.msgWarning("请选择数据");
return;
}
this.reset();
this.getAllDatasets();
this.open = true;
this.title = "选择数据集";
this.fileId = row.fileId;
},
handleCopy(row) {
this.reset();
this.getTreeselect();
getDatasetById(row.datasetId).then(response => {
this.form = response.data;
this.form.datasetId = undefined;
this.open = true;
this.title = "复制数据";
});
},
/** 提交按钮 */
submitForm: function () {
@ -348,10 +346,9 @@ export default {
return
}
let data = {
fileIds: this.fileId || this.fileIds,
fileIds: this.fileIds,
datasetId: this.datasetId
}
console.log(data);
updateFile(data).then(response => {
this.checked = false;
this.$modal.msgSuccess("修改成功");
@ -367,6 +364,10 @@ export default {
this.fileIds.push(item.fileId);
}
})
if (!row && this.fileIds.length === 0) {
this.$modal.msgWarning("请选择数据");
return;
}
const fileIds = row.fileId || this.fileIds
this.$modal.confirm('是否确认删除数据项?').then(function () {
return deleteFile(fileIds);

View File

@ -103,7 +103,7 @@
<el-row>
<el-col :span="24">
<el-form-item label="数据集名称" prop="datasetName">
<el-input v-model="form.datasetName" placeholder="请输入数据集名称"/>
<el-input v-model="form.datasetName" placeholder="请输入数据集名称" maxlength="30"/>
</el-form-item>
</el-col>
<el-col :span="24">
@ -130,7 +130,7 @@
type="textarea"
:autosize="{ minRows: 2, maxRows: 4}"
placeholder="请输入内容"
v-model="form.description"></el-input>
v-model="form.description" maxlength="200"></el-input>
</el-form-item>
</el-col>
</el-row>
@ -299,9 +299,8 @@ import {
} from "@/api/dataSet/dataSetFile"
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import {getCategories, uploadImgFiles} from "@/api/dataSet/dataSet";
import {getCategories, uploadImgFiles, uploadZipFiles} from "@/api/dataSet/dataSet";
import {parseTime} from "@/utils/ruoyi";
import {Loading} from "element-ui";
export default {
name: "index",
@ -471,7 +470,7 @@ export default {
getTreeselect() {
getCategories({}).then(response => {
this.menuOptions = [];
const menu = {datasetId: 0, categoryName: '主类目', children: []};
const menu = {categoryId: 0, categoryName: '主类目', children: []};
menu.children = this.handleTree(response.data, "categoryId");
this.menuOptions.push(menu);
});
@ -579,7 +578,6 @@ export default {
}
,
submitFile() {
if (!this.selectedDataset) {
this.$modal.msgWarning("请选择数据集");
return;
@ -589,7 +587,7 @@ export default {
let formData = new FormData();
formData.append('datasetId', this.selectedDataset);
if (this.fileImgList.length === 0) {
this.$modal.msgWarning("文件");
this.$modal.msgWarning("请选择文件");
return;
}
Object.values(this.fileImgList).forEach((file) => {
@ -602,6 +600,22 @@ export default {
this.getList();
})
} else {
let formData = new FormData();
formData.append('datasetId', this.selectedDataset);
if (this.fileZipList.length === 0) {
this.$modal.msgWarning("请选择文件");
return;
}
Object.values(this.fileZipList).forEach((file) => {
formData.append('files', file.raw);
});
uploadZipFiles(formData).then(response => {
this.$modal.closeLoading();
this.$modal.msgSuccess("上传成功");
this.openFile = false;
this.getList();
})
}
},

View File

@ -53,13 +53,19 @@
</el-table-column>
<el-table-column label="模型文件" min-width="120" align="center">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleDetails(scope.row)">下载</el-button>
<el-button size="mini" type="text"
@click="downloadFile('https://largesrevice.oss-cn-beijing.aliyuncs.com/'+scope.row.modelAddress,'')">
下载
</el-button>
</template>
</el-table-column>
<el-table-column label="使用手册" min-width="120" align="center">
<template slot-scope="scope">
<el-button size="mini" type="text" @click="handleDetails(scope.row)">下载</el-button>
<el-button size="mini" type="text" @click="handleDetails(scope.row)">查看</el-button>
<el-button size="mini" type="text"
@click="downloadFile('https://largesrevice.oss-cn-beijing.aliyuncs.com/'+scope.row.userGuide,'')">
下载
</el-button>
<!-- <el-button size="mini" type="text" @click="downloadFile('https://largesrevice.oss-cn-beijing.aliyuncs.com/'+scope.row.userGuide,'')">查看</el-button>-->
</template>
</el-table-column>
<el-table-column label="操作" min-width="120" align="center">
@ -348,14 +354,27 @@ export default {
submitForm: function () {
this.$refs["form"].validate(valid => {
if (valid) {
console.log(this.form)
let formData = new FormData();
for (let key in this.form) {
if (this.form.hasOwnProperty(key)) {
formData.append(key, this.form[key]);
}
}
Object.values(this.fileModelList).forEach((item) => {
formData.append("modelFile", item.raw)
})
Object.values(this.fileUserManualList).forEach((item) => {
formData.append("userGuideFile", item.raw)
})
if (this.form.modelId != undefined) {
updateModel(this.form).then(response => {
updateModel(formData).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
insertModel(this.form).then(response => {
insertModel(formData).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
@ -373,9 +392,14 @@ export default {
this.$modal.msgSuccess("删除成功");
}).catch(() => {
});
},
handleDetails(row) {
}, downloadFile(url, filename) {
var element = document.createElement('a');
element.href = url;
element.download = filename;
element.style.display = 'none';
document.body.appendChild(element);
element.click(); //
element.parentNode.removeChild(element); // DOM
}
}
}

View File

@ -1,5 +1,17 @@
<template>
<div class="body-container">
<el-menu class="el-menu-demo" mode="horizontal"
style="position: absolute;top:50px;left: 50px; background-color: transparent;width: 50%;font-size: 20px;border-bottom:none">
<el-submenu index="1" style="background-color: transparent">
<template slot="title">样本库</template>
<el-menu-item index="2-1" @click="handleClick('/dataSetCategory');">样本类型管理</el-menu-item>
<el-menu-item index="2-2" @click="handleClick('/dataSetFile');">数据集管理</el-menu-item>
<el-menu-item index="2-2" @click="handleClick('/dataSetTask');">标注任务分配</el-menu-item>
<el-menu-item index="2-2" @click="handleClick('/dataSetLog');">标注日志</el-menu-item>
<el-menu-item index="2-3" @click="handleClick('/dataSetModel');">模型管理</el-menu-item>
<el-menu-item index="2-3" @click="handleClick('/dataSetAlgorithm');">算法评价</el-menu-item>
</el-submenu>
</el-menu>
<div id="main">
<div id="main-left">
<div id="left-top">
@ -47,6 +59,15 @@ export default {
introVideo,
routeIcon,
rectAccessCountByMonth,
},
methods:{
handleClick(route) {
if (route === 'showPopup') {
this.showPopup();
} else {
this.$router.push(route);
}
},
}
}
</script>