Files
YG_FT/frontend/dist/assets/ModelCreateView-I9BFI2qF.js
2026-07-21 11:11:04 +08:00

2 lines
6.4 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{a as S,E as j}from"./el-form-item-BCGHWWEr.js";import{E as F}from"./index-DIc4JAau.js";import{E as N}from"./index-CvV3lMhj.js";import{E as G,a as T}from"./el-select-BxbHSoSW.js";import{E as $,b as z}from"./el-radio-group-xQDLaPdN.js";import{v as Y}from"./directive-DpNCSVjv.js";import{d as H,aN as J,G as Q,K as W,e as m,w as t,y as _,j as P,z as X,o as n,s as o,c as V,ad as U,f as Z,M as b,x as i,aa as ee,A as w,v as le,ac as ae}from"./index-BYkWxQIk.js";import"./el-scrollbar-Dc6NVUlJ.js";import"./el-popper-CH-5nvKD.js";/* empty css */import{P as oe}from"./PageCard-CpmwMuco.js";import{c as te,f as re,u as ue,h as ne}from"./model-QAe7Qrai.js";import"./castArray-j4qYoqmg.js";import"./_baseClone-BHCmlOrP.js";import"./raf-DvNAB6YI.js";import"./index-CMHvcH47.js";import"./index-BdMmiJIJ.js";import"./index-B-vAs-FR.js";import"./vnode-p1CrQgfy.js";import"./index-CD1DSa6s.js";import"./index-CnkeFGDp.js";import"./scroll-omk9EOhU.js";import"./clamp-z56vzo_d.js";import"./toNumber-C_8Vj9e5.js";import"./_baseIteratee-BBbQXU-s.js";import"./omit-DIEVeOei.js";import"./el-card-Bdh7v7FQ.js";import"./_plugin-vue_export-helper-DlAUqK2U.js";const De=H({__name:"ModelCreateView",setup(ie){const k=ae(),E=le(),f=_(),c=_(!1),g=_(!1),y=P(()=>!!k.params.id),d=P(()=>k.params.id),v=_([]),l=X({name:"",type:"LLM",purpose:"inference",model_source:"local",description:"",path:"",api_url:"",api_key:"",online_model_name:""}),q={name:[{required:!0,message:"请输入模型名称",trigger:"blur"},{max:100,message:"不超过 100 字符",trigger:"blur"}],type:[{required:!0,message:"请选择模型类型",trigger:"change"}],purpose:[{required:!0,message:"请选择模型用途",trigger:"change"}]};function I(){return l.model_source==="local"?{path:[{required:!0,message:"请选择本地模型路径",trigger:"change"}]}:{api_url:[{required:!0,message:"请输入 API 地址",trigger:"blur"}],api_key:[{required:!0,message:"请输入 API Key",trigger:"blur"}],online_model_name:[{required:!0,message:"请输入模型名称",trigger:"blur"}]}}const A=Object.entries(J).map(([r,e])=>({value:r,label:e}));async function C(){if(d.value){c.value=!0;try{const r=await te(d.value),e=r.model_source==="online"?"api":r.model_source||"local";Object.assign(l,{name:r.name||"",type:r.type||"LLM",purpose:r.purpose||"inference",model_source:e,description:r.description||"",path:r.path||"",api_url:r.api_url||"",api_key:r.api_key||"",online_model_name:r.model_name||""})}catch{}finally{c.value=!1}}}async function R(){try{const r=await re();v.value=(r==null?void 0:r.models)||[]}catch{v.value=[]}}async function O(){f.value&&await f.value.validate(async r=>{if(r){if(l.model_source==="local"&&!l.path){w.warning("请选择本地模型路径");return}g.value=!0;try{const e={name:l.name,type:l.type,purpose:l.purpose,model_source:l.model_source,description:l.description};l.model_source==="local"?e.path=l.path:(e.api_url=l.api_url,e.api_key=l.api_key,e.online_model_name=l.online_model_name),y.value&&d.value?(await ue(d.value,e),w.success("更新成功")):(await ne(e),w.success("创建成功")),E.push("/model-manage")}catch{}finally{g.value=!1}}})}function B(){E.back()}return Q(()=>{R(),C()}),(r,e)=>{const p=F,u=S,M=T,h=G,s=z,x=$,L=N,D=j,K=Y;return W((n(),m(oe,{title:y.value?"编辑模型":"添加模型"},{default:t(()=>[o(D,{ref_key:"formRef",ref:f,model:l,rules:{...q,...I()},"label-width":"120px",style:{"max-width":"640px"}},{default:t(()=>[o(u,{label:"模型名称",prop:"name"},{default:t(()=>[o(p,{modelValue:l.name,"onUpdate:modelValue":e[0]||(e[0]=a=>l.name=a),placeholder:"请输入模型名称",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),o(u,{label:"模型类型",prop:"type"},{default:t(()=>[o(h,{modelValue:l.type,"onUpdate:modelValue":e[1]||(e[1]=a=>l.type=a),placeholder:"请选择模型类型",style:{width:"100%"}},{default:t(()=>[(n(!0),V(b,null,U(Z(A),a=>(n(),m(M,{key:a.value,label:a.label,value:a.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),o(u,{label:"模型用途",prop:"purpose"},{default:t(()=>[o(x,{modelValue:l.purpose,"onUpdate:modelValue":e[2]||(e[2]=a=>l.purpose=a)},{default:t(()=>[o(s,{value:"training"},{default:t(()=>[...e[9]||(e[9]=[i("训练基座",-1)])]),_:1}),o(s,{value:"inference"},{default:t(()=>[...e[10]||(e[10]=[i("推理对比",-1)])]),_:1}),o(s,{value:"evaluation"},{default:t(()=>[...e[11]||(e[11]=[i("评测",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),o(u,{label:"模型来源",prop:"model_source"},{default:t(()=>[o(x,{modelValue:l.model_source,"onUpdate:modelValue":e[3]||(e[3]=a=>l.model_source=a)},{default:t(()=>[o(s,{value:"local"},{default:t(()=>[...e[12]||(e[12]=[i("本地模型",-1)])]),_:1}),o(s,{value:"api"},{default:t(()=>[...e[13]||(e[13]=[i("在线模型",-1)])]),_:1})]),_:1},8,["modelValue"])]),_:1}),l.model_source==="local"?(n(),m(u,{key:0,label:"本地模型路径",prop:"path"},{default:t(()=>[o(h,{modelValue:l.path,"onUpdate:modelValue":e[4]||(e[4]=a=>l.path=a),placeholder:"请选择本地模型路径",filterable:"",style:{width:"100%"}},{default:t(()=>[(n(!0),V(b,null,U(v.value,a=>(n(),m(M,{key:a.path,label:`${a.name} (${a.path})`,value:a.path},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1})):(n(),V(b,{key:1},[o(u,{label:"API 地址",prop:"api_url"},{default:t(()=>[o(p,{modelValue:l.api_url,"onUpdate:modelValue":e[5]||(e[5]=a=>l.api_url=a),placeholder:"如https://api.openai.com/v1"},null,8,["modelValue"])]),_:1}),o(u,{label:"API Key",prop:"api_key"},{default:t(()=>[o(p,{modelValue:l.api_key,"onUpdate:modelValue":e[6]||(e[6]=a=>l.api_key=a),type:"password","show-password":"",placeholder:"请输入 API Key"},null,8,["modelValue"])]),_:1}),o(u,{label:"模型名称",prop:"online_model_name"},{default:t(()=>[o(p,{modelValue:l.online_model_name,"onUpdate:modelValue":e[7]||(e[7]=a=>l.online_model_name=a),placeholder:"如gpt-4、qwen-turbo"},null,8,["modelValue"])]),_:1})],64)),o(u,{label:"模型描述"},{default:t(()=>[o(p,{modelValue:l.description,"onUpdate:modelValue":e[8]||(e[8]=a=>l.description=a),type:"textarea",rows:3,maxlength:"500","show-word-limit":"",placeholder:"选填"},null,8,["modelValue"])]),_:1}),o(u,null,{default:t(()=>[o(L,{type:"primary",loading:g.value,onClick:O},{default:t(()=>[i(ee(y.value?"保存":"创建"),1)]),_:1},8,["loading"]),o(L,{onClick:B},{default:t(()=>[...e[14]||(e[14]=[i("取消",-1)])]),_:1})]),_:1})]),_:1},8,["model","rules"])]),_:1},8,["title"])),[[K,c.value]])}}});export{De as default};