Files
YG_FT/frontend/dist/assets/DatasetCreateView-EpTuKq1F.js

3 lines
7.5 KiB
JavaScript
Raw Normal View History

import{E as H}from"./el-alert-DCeNzQ04.js";import{a as Q,E as W}from"./el-form-item-SSeqyTAb.js";import{E as X}from"./index-BBcwoX6C.js";import{E as Y}from"./index-C7hG1muh.js";import{E as Z,b as ee}from"./el-radio-group-C0DYSItT.js";import{E as te}from"./el-switch-Caq0t2I2.js";import{E as ae}from"./el-upload-C8Jo1oua.js";import{v as le}from"./directive-COAzVUTb.js";import{d as oe,G as se,K as ne,e as U,w as l,y as f,j,z as ie,o as _,s as a,x as m,c as V,M as z,g as k,q as u,ad as ue,aa as b,A as g,v as re,ac as de}from"./index-Dq6jPnBF.js";import"./el-progress-Bfrh9EEb.js";import{P as me}from"./PageCard-ChBwig1D.js";import{b as pe,u as A,c as F,e as ce}from"./dataset-DbAEb7ec.js";import{_ as fe}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./vnode-mg6izvAi.js";import"./castArray-MugqytcL.js";import"./_baseClone-DVLNguQR.js";import"./raf-BV6Sit1E.js";import"./index-czD5JTxt.js";import"./index-VqqV1S6i.js";import"./omit-DdM_zsdI.js";import"./validator-Dj0EyMKa.js";import"./el-card-D_O9Zi70.js";const _e={style:{width:"100%"}},ve={class:"file-info"},ye={class:"file-name"},ge={class:"file-size"},we={key:1,class:"record-count"},Ve=".json,.jsonl",ke=oe({__name:"DatasetCreateView",setup(be){const D=de(),N=re(),x=f(),E=f(!1),C=f(!1),w=j(()=>!!D.params.id),y=j(()=>D.params.id),t=ie({name:"",description:"",dataset_type:"train",storage:"local",minio_endpoint:"",minio_bucket:"",minio_access_key:"",minio_secret_key:"",minio_ssl:!1}),r=f([]),d=f(0),v=f(null),p=f(""),M={name:[{required:!0,message:"请输入数据集名称",trigger:"blur"},{max:20,message:"不超过 20 字符",trigger:"blur"}],description:[{max:50,message:"不超过 50 字符",trigger:"blur"}]};async function O(i){var o;const e=i.raw;if(!e)return;const n=(o=e.name.split(".").pop())==null?void 0:o.toLowerCase();if(n!=="json"&&n!=="jsonl"){g.warning("仅支持 JSON/JSONL 格式");return}if(e.size>200*1024*1024){g.warning("单文件不能超过 200MB");return}r.value=[e],await R(e)}async function R(i){try{const n=(await i.text()).trim().split(`
`).filter(Boolean);d.value=n.length;let o=0;for(const c of n)try{JSON.parse(c).instruction!==void 0&&o++}catch{}o>0&&o===n.length?(v.value=!0,p.value="符合 Alpaca 格式(含 instruction 字段)"):o>0?(v.value=!0,p.value=`部分符合 Alpaca 格式${o}/${n.length}`):(v.value=!1,p.value="未检测到标准 Alpaca 格式(缺少 instruction 字段),仍可上传")}catch{d.value=0,v.value=null,p.value="文件解析失败"}}function I(){return Promise.resolve()}function K(){r.value=[],d.value=0,v.value=null,p.value=""}async function L(){if(y.value){E.value=!0;try{const i=await pe(y.value);Object.assign(t,{name:i.name||"",description:i.description||"",dataset_type:i.type==="eval"?"eval":"train",storage:i.storage_type||"local"}),d.value=i.count||0}catch{}finally{E.value=!1}}}async function h(){x.value&&await x.value.validate(async i=>{if(i){if(!w.value&&r.value.length===0){g.warning("请至少上传一个数据集文件");return}C.value=!0;try{const e={name:t.name,type:t.dataset_type,storage_type:t.storage,description:t.description,count:d.value};if(t.storage==="minio"&&(e.minio_config={endpoint:t.minio_endpoint,bucket:t.minio_bucket,access_key:t.minio_access_key,secret_key:t.minio_secret_key,ssl:t.minio_ssl}),w.value&&y.value)await A(y.value,e),r.value.length>0&&await F(y.value,r.value),g.success("更新成功");else{const n=await ce(e),o=(n==null?void 0:n.id)||n;r.value.length>0&&(await F(o,r.value),await A(o,{count:d.value})),g.success("上传成功")}N.push("/dataset")}catch{}finally{C.value=!1}}})}function J(){N.back()}return se(L),(i,e)=>{const n=X,o=Q,c=ee,S=Z,q=te,P=ae,B=Y,G=H,T=W,$=le;return ne((_(),U(me,{title:w.value?"编辑数据集":"上传数据集"},{default:l(()=>[a(T,{ref_key:"formRef",ref:x,model:t,rules:M,"label-width":"120px",style:{"max-width":"640px"}},{default:l(()=>[a(o,{label:"数据集名称",prop:"name"},{default:l(()=>[a(n,{modelValue:t.name,"onUpdate:modelValue":e[0]||(e[0]=s=>t.name=s),placeholder:"请输入数据集名称",maxlength:"20","show-word-limit":""},null,8,["modelValue"])]),_:1}),a(o,{label:"数据集描述"},{default:l(()=>[a(n,{modelValue:t.description,"onUpdate:modelValue":e[1]||(e[1]=s=>t.description=s),type:"textarea",rows:2,maxlength:"50","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1}),a(o,{label:"数据集类型"},{default:l(()=>[a(S,{modelValue:t.dataset_type,"onUpdate:modelValue":e[2]||(e[2]=s=>t.dataset_type=s)},{default:l(()=>[a(c,{value:"train"},{default:l(()=>[...e[9]||(e[9]=[m("训练集",-1)])]),_:1}),a(c,{value:"eval"},{default:l(()=>[...e[10]||(e[10]=[m("评测集",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),a(o,{label:"上传方式"},{default:l(()=>[a(S,{modelValue:t.storage,"onUpdate:modelValue":e[3]||(e[3]=s=>t.storage=s)},{default:l(()=>[a(c,{value:"local"},{default:l(()=>[...e[11]||(e[11]=[m("本地",-1)])]),_:1}),a(c,{value:"cloud"},{default:l(()=>[...e[12]||(e[12]=[m("云平台",-1)])]),_:1}),a(c,{value:"minio"},{default:l(()=>[...e[13]||(e[13]=[m("MinIO",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),t.storage==="minio"?(_(),V(z,{key:0},[a(o,{label:"Endpoint"},{default:l(()=>[a(n,{modelValue:t.minio_endpoint,"onUpdate:modelValue":e[4]||(e[4]=s=>t.minio_endpoint=s),placeholder:"如http://minio:9000"},null,8,["modelValue"])]),_:1}),a(o,{label:"Bucket"},{default:l(()=>[a(n,{modelValue:t.minio_bucket,"onUpdate:modelValue":e[5]||(e[5]=s=>t.minio_bucket=s),placeholder:"请输入 Bucket 名称"},null,8,["modelValue"])]),_:1}),a(o,{label:"Access Key"},{default:l(()=>[a(n,{modelValue:t.minio_access_key,"onUpdate:modelValue":e[6]||(e[6]=s=>t.minio_access_key=s),placeholder:"请输入 Access Key"},null,8,["modelValue"])]),_:1}),a(o,{label:"Secret Key"},{default:l(()=>[a(n,{modelValue:t.minio_secret_key,"onUpdate:modelValue":e[7]||(e[7]=s=>t.minio_secret_key=s),type:"password","show-password":"",placeholder:"请输入 Secret Key"},null,8,["modelValue"])]),_:1}),a(o,{label:"启用 SSL"},{default:l(()=>[a(q,{modelValue:t.minio_ssl,"onUpdate:modelValue":e[8]||(e[8]=s=>t.minio_ssl=s)},null,8,["modelValue"])]),_:1})],64)):k("",!0),