From be8574891bb59d9cc4cae97e8ac3232d05f182e9 Mon Sep 17 00:00:00 2001 From: dengzedong <dengzedong@email> Date: 星期五, 21 二月 2025 15:39:56 +0800 Subject: [PATCH] 测试训练之后,如果结果符合标准,可以直接保存.miail文件 --- src/views/model/mpk/file/MpkRun.vue | 61 +++++++++++++++++++++++++++++- 1 files changed, 59 insertions(+), 2 deletions(-) diff --git a/src/views/model/mpk/file/MpkRun.vue b/src/views/model/mpk/file/MpkRun.vue index 2b9039c..908d883 100644 --- a/src/views/model/mpk/file/MpkRun.vue +++ b/src/views/model/mpk/file/MpkRun.vue @@ -110,6 +110,7 @@ <!-- </el-table-column>--> </el-table> <el-divider content-position="left">模型运行结果</el-divider> + <el-button type="primary" size="small" link @click="saveModel" v-if="showSaveModel && formData.methodName === 'train'">下载模型(.miail)</el-button> <el-input v-model="modelRunResult" placeholder="" rows="4" type="textarea" /> <div style="display: flex;flex-direction: row;justify-content: end;margin-top: 16px"> <el-button :loading="modelRunloading" type="primary" @click="modelRun()">运行</el-button> @@ -121,6 +122,7 @@ import * as MpkApi from '@/api/model/mpk/mpk' import {FormRules} from "element-plus"; import {getAccessToken, getTenantId} from "@/utils/auth"; + import download from "@/utils/download"; const staticDir = ref(import.meta.env.VITE_STATIC_DIR) const { t } = useI18n() // 国际化 @@ -167,6 +169,7 @@ return e; }) } + } defineExpose({ open }) // 提供 open 方法,用于打开弹窗 @@ -260,7 +263,8 @@ // 运行 const modelRun = async () => { modelRunResult.value = '' -// 校验表单 + showSaveModel.value = false + // 校验表单 if (!formRef) return const valid = await formRef.value.validate() if (!valid) return @@ -302,10 +306,63 @@ data.model = undefined } - modelRunResult.value = await MpkApi.modelRun(data) + let result = await MpkApi.modelRun(data) + + modelRunResult.value = result; message.success('运行成功') + // 训练方法 + if (formData.methodName === 'train') { + result = JSON.parse(result); + // 返回结果正确 + if (result?.status_code === '100' && result?.models?.model_path) { + // 有预测方法 + if (methodList.value.some(e => e.methodName === 'predict')) { + saveModelParams.modelResult = result + saveModelParams.model = result?.models + showSaveModel.value = true + } + } + } } finally { modelRunloading.value = false } } + + const showSaveModel = ref(false) + + const saveModelParams = reactive({ + pyName: '', + className: '', + methodName: '', + uuids: [], + modelSettings: [], + predModelSettings: [], + hasModel: false, + model: undefined, + modelResult: undefined, + dataLength: undefined, + resultKey: undefined, + }) + + const saveModel = async () => { + saveModelParams.className = formData.className + saveModelParams.pyName = formData.pyName + saveModelParams.modelSettings = formData.modelSettings + const predMethod = methodList.value.find(e => e.methodName === 'predict'); + saveModelParams.methodName = predMethod.methodName + saveModelParams.resultKey = predMethod.resultKey + //predModelSettings + if (predMethod.methodSettings && predMethod.methodSettings.length > 0) { + saveModelParams.predModelSettings = predMethod.methodSettings.map(e => { + e.settingValue = e.value; + return e; + }) + } + saveModelParams.hasModel = predMethod.model === 1 + + saveModelParams.dataLength = predMethod.dataLength + + const data = await MpkApi.saveModel(saveModelParams) + download.downloadFile(data, saveModelParams.pyName + '.miail') + } </script> -- Gitblit v1.9.3