Files
YG_FT/frontend/dist/assets/DatasetCreateView-CCIPqE-L.js
wuyongtao 836343b29e feat: 新增 compute_gateway、compute_poller、agent 模块,重构前端 dist
- 新增 backend/app/modules/compute_gateway(client/sync)计算网关模块
- 新增 backend/app/workers/compute_poller 计算轮询 worker
- 新增 compute/agent/process_manager 进程管理器
- 新增 scripts/ 脚本目录
- 更新 Docker 部署配置(app/compute/nginx)
- 更新后端平台 API、数据库 SQL、core 配置
- 更新前端多个视图组件及 API 模块
- 重构 frontend/dist 构建产物(新 hash)
- 更新多项文档

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-22 20:26:16 +08:00

3 lines
7.5 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import{E as H}from"./el-alert-CoSdHkeK.js";import{a as Q,E as W}from"./el-form-item-Bq0n_p5a.js";import{E as X}from"./index-h5FkzAP_.js";import{E as Y}from"./index-BNsCyG4A.js";import{E as Z,b as ee}from"./el-radio-group-DxV9SE4w.js";import{E as te}from"./el-switch-DflKYtBf.js";import{E as ae}from"./el-upload-9Z6SSyNu.js";import{v as le}from"./directive-B1cwmVOz.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-Ds9AETjS.js";import"./el-progress-Dz5Z3t_E.js";import{P as me}from"./PageCard-CV3p14-x.js";import{b as pe,u as A,c as F,e as ce}from"./dataset-BWM6p-mU.js";import{_ as fe}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./vnode-CBiWHFw7.js";import"./castArray-BWI4UxBy.js";import"./_baseClone-CZxxnGCv.js";import"./raf-zQ00nuMI.js";import"./index-B0if-AHo.js";import"./index-BSbCLbaz.js";import"./omit-BzI1MV_K.js";import"./validator-D1MwuZXj.js";import"./el-card-D86TXgMv.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),t.storage==="local"?(_(),U(o,{key:1,label:"上传文件"},{default:l(()=>[u("div",_e,[a(P,{drag:"",accept:Ve,"auto-upload":!1,"show-file-list":!1,"http-request":I,"on-change":O},{tip:l(()=>[...e[14]||(e[14]=[u("div",{class:"el-upload__tip"},"仅支持 JSON/JSONL 格式,单文件不超过 200MB",-1)])]),default:l(()=>[e[15]||(e[15]=u("i",{class:"fa fa-cloud-upload",style:{"font-size":"32px",color:"#1890ff"}},null,-1)),e[16]||(e[16]=u("div",{class:"el-upload__text"},[m(" 将文件拖到此处,或"),u("em",null,"点击上传")],-1))]),_:1}),(_(!0),V(z,null,ue(r.value,s=>(_(),V("div",{key:s.name,class:"file-item"},[u("div",ve,[e[17]||(e[17]=u("i",{class:"fa fa-file-code-o"},null,-1)),u("span",ye,b(s.name),1),u("span",ge,b((s.size/1024).toFixed(1))+" KB",1)]),a(B,{link:"",type:"danger",size:"small",onClick:K},{default:l(()=>[...e[18]||(e[18]=[u("i",{class:"fa fa-times"},null,-1)])]),_:1})]))),128)),p.value?(_(),U(G,{key:0,title:p.value,type:v.value?"success":"warning",closable:!1,"show-icon":"",style:{"margin-top":"8px"}},null,8,["title","type"])):k("",!0),d.value?(_(),V("div",we,"解析到 "+b(d.value)+" 条记录",1)):k("",!0)])]),_:1})):k("",!0),a(o,null,{default:l(()=>[a(B,{type:"primary",loading:C.value,onClick:h},{default:l(()=>[m(b(w.value?"保存":"上传"),1)]),_:1},8,["loading"]),a(B,{onClick:J},{default:l(()=>[...e[19]||(e[19]=[m("取消",-1)])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1},8,["title"])),[[$,E.value]])}}}),Ge=fe(ke,[["__scopeId","data-v-85ac7099"]]);export{Ge as default};