2026-07-25 22:41:16 +08:00
|
|
|
import{E as U}from"./index-B2Z3XS2S.js";import{E as j}from"./el-tag-11zBoTqA.js";import{a as W,E as Y}from"./el-table-48yEgKcK.js";import{v as H}from"./directive-D_bJoBNR.js";import{d as Q,D as X,G as Z,c as P,e as k,w as i,y as C,o as b,s as n,q as r,x as s,aa as d,f as c,aN as ee,aO as A,aP as te,g as ae,K as le,z as ie,v as ne,A as N}from"./index-C8bRaOsd.js";import{E as oe}from"./index-CKkhcTW-.js";import"./el-scrollbar-CMp13_RQ.js";import"./el-popper-BY86ZM1h.js";import"./el-tooltip-l0sNRNKZ.js";import"./el-checkbox-Jsj5DifU.js";import{D as R}from"./DataTablePage-BByewB8Y.js";import{g as se,a as re,b as de,c as ue,d as me,e as pe,f as fe}from"./model-CCFfanoR.js";import{s as ce,a as _e,m as ge,b as be}from"./status-Dl1fykxa.js";import{_ as ye}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./_baseClone-vUmDCUMu.js";import"./index-DE1Gc93o.js";import"./_baseIteratee-7-PMrTPE.js";import"./castArray-CJvOrS5l.js";import"./debounce-BADwekKz.js";import"./toNumber-Bt8UgFrr.js";import"./index-BpW9Z31J.js";import"./raf-BqR8BX9r.js";import"./validator-DZBWmtBZ.js";import"./index-BIY0gTx5.js";import"./clamp-CNwRTQDt.js";import"./index-CMlv-HLm.js";import"./scroll-DL9cY7fX.js";import"./index-CoLjyrxq.js";import"./index-BRf1Q2lS.js";import"./omit-BHHw65tB.js";import"./el-card-BXAZ-Y4u.js";import"./el-pagination-Ca9Xqxww.js";import"./el-select-DzauTPwe.js";import"./vnode-B9WOR-0a.js";import"./index-BVldZEzQ.js";const ve={class:"model-manage-page"},he={class:"capsule-tabs"},we={class:"capsule-tabs"},ke={class:"runtime-panel"},Ce={class:"panel-title"},Me={class:"action-buttons"},xe=Q({__name:"ModelManageView",setup(Ee){const M=ne(),m=C("config"),_=C(!1),v=C([]),h=C([]),x=ie({});function Te(t){return t}function ze(t){return t}function E(t){return String(t.id||t.name)}function g(t){const e=E(t);return x[e]||(x[e]={artifacts:[],lineage:{parents:[],children:[]},exportJobs:[],loading:!1,loaded:!1}),x[e]}function T(t){return t?new Date(t).toLocaleString("zh-CN"):"-"}function S(t){const e=Number(t||0);return e<=0?"-":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/1024/1024).toFixed(1)} MB`:`${(e/1024/1024/1024).toFixed(2)} GB`}function J(t){return{fine_tuned_from:"由基座模型微调生成",merged_from_adapter:"由 Adapter 合并导出"}[t||""]||t||"-"}function O(t){return{adapter:"Adapter 权重",merged_model:"合并模型",quantized_model:"量化模型"}[t||""]||t||"-"}async function w(){_.value=!0;try{v.value=await se()||[]}finally{_.value=!1}}async function z(){_.value=!0;try{const t=await re();h.value=(t==null?void 0:t.models)||[]}finally{_.value=!1}}function D(){m.value==="config"?w():z()}async function L(t,e=!1){const l=g(t);if(!(l.loading||l.loaded&&!e)){l.loading=!0;try{const p=t.id||t.name,[f,u,$]=await Promise.all([de(p),ue(p),me(p)]);l.artifacts=f||[],l.lineage={parents:(u==null?void 0:u.parents)||[],children:(u==null?void 0:u.children)||[]},l.exportJobs=$||[],l.loaded=!0}finally{l.loading=!1}}}function V(t,e){e.some(l=>E(l)===E(t))&&L(t)}async function B(t){await pe(t.id),v.value=v.value.filter(e=>e.id!==t.id),await w(),N.success("删除成功")}async function q(t){await oe.confirm(`确定要删除模型“${t.name}”的权重文件吗?合并模型不受影响。`,"确认删除",{type:"warning"}),await fe(t.id||t.name,"lora"),h.value=h.value.filter(e=>e.name!==t.name&&e.id!==t.id),await z(),N.success("权重已删除")}function F(t){var e,l;M.push({path:"/model-manage/merge",query:{model:t.name,method:((l=(e=t.train_methods)==null?void 0:e[0])==null?void 0:l.name)||"lora"}})}function I(t){M.push(`/model-manage/${t.id}/edit`)}function K(){m.value==="config"&&M.push("/model-manage/create")}function G(){m.value==="config"?w():z()}return X(m,D),Z(D),(t,e)=>{const l=Y,p=j,f=U,u=W,$=H;return b(),P("div",ve,[m.value==="config"?(b(),k(R,{key:0,title:"模型",data:v.value,loading:_.value,searchable:"","search-fields":["name","description"],"create-text":"添加模型","delete-fn":B,"row-key":"id",onCreate:K,onRefresh:w},{title:i(()=>[r("div",he,[r("button",{class:"capsule-tab-item active",onC
|