Files
YG_FT/frontend/dist/assets/ModelCreateView-Np2j_mdr.js
wuyongtao 9798b34717 feat: 重构前端 dist 构建产物,更新 Docker 配置及文档
- 重新构建 frontend/dist(新版 hash 替换旧版)
- 更新 docker 前端 Dockerfile 及 docker-compose 配置
- 新增 docs/team-development-plan.md 团队开发计划文档
- 更新 README、系统开发计划等文档
- 更新 LoginView 组件

Co-Authored-By: Claude <noreply@anthropic.com>
2026-07-21 12:36:33 +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-D5kF3B90.js";import{E as F}from"./index-TFUf94PZ.js";import{E as N}from"./index-BjEW7-SA.js";import{E as G,a as T}from"./el-select-Dl-FRZQd.js";import{E as $,b as z}from"./el-radio-group-BkCoTeQL.js";import{v as Y}from"./directive-DsZckUTJ.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-BKKvzUDD.js";import"./el-scrollbar-ClJnvz-9.js";import"./el-popper-D6_hxRbQ.js";/* empty css */import{P as oe}from"./PageCard-BoKXOzst.js";import{c as te,f as re,u as ue,h as ne}from"./model-gCK34aBo.js";import"./castArray-5uErZEc3.js";import"./_baseClone-B5RBzbh5.js";import"./raf-C-x62Pcl.js";import"./index-DLzof2Fz.js";import"./index-GAnQrJsQ.js";import"./index-CWUnzf90.js";import"./vnode-78qeDweP.js";import"./index-D5ryD3I5.js";import"./index-BDEF353-.js";import"./scroll-BkzZKETR.js";import"./clamp-CbbY8h6F.js";import"./toNumber-Dkj3QRv9.js";import"./_baseIteratee-BAilevJ_.js";import"./omit-BTSq4AYh.js";import"./el-card-CApHJ1Gj.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};