1 line
5.2 KiB
JavaScript
1 line
5.2 KiB
JavaScript
import{D as e,E as t,On as n,_ as r,b as i,ct as a,g as o,gn as s,k as c,mt as l,qt as u,tr as d,v as f,vn as p,y as m}from"./runtime-core.esm-bundler-DkysjgTd.js";import{n as h}from"./objectWithoutProperties-BjoYlK0I.js";import{t as g}from"./use-access-CQdD7p8C.js";import{n as _,t as v}from"./form-CZK1ilUa.js";import{t as y}from"./select-DyNDAEL2.js";import{M as b,p as x,w as S}from"./console-BEstjdZV.js";import{a as C}from"./config-provider-D1kcLCP5.js";import{t as w}from"./alert-CkUknOsQ.js";import{t as T}from"./button-B2y2NpJm.js";import{t as E}from"./tag-BFecLZmQ.js";import{n as D,t as O}from"./descriptions-BP4B3brJ.js";var k={class:`p-5`},A={key:0,class:`mt-1 text-xs text-orange-500`},j={class:`mt-1 text-xs text-gray-500`},M=c({__name:`model-plan`,setup(c){let{hasAccessByCodes:M}=g(),N=o(()=>M([`model:write`])),P=p(!1),F=p([]),I=p(null),L=p([]),R=s({answer_ids:[],judge_id:``,vision_id:``,fallback_ids:[],judge_mode:`shadow`}),z=o(()=>F.value.filter(e=>e.kind!==`comfyui`&&e.enabled).map(e=>({value:e.id,label:`${e.name}(${e.kind})`}))),B=o(()=>z.value.filter(e=>{var t;return(t=F.value.find(t=>t.id===e.value))==null?void 0:t.capabilities.includes(`vision`)})),V={shadow:`照常发主模型的回复,裁判只在后台打分、不改变任何行为。先量出现有回复的真实水平,再决定要不要花第二份钱。`,score_only:`用裁判的绝对分和风险做路由:低分或高风险转人工审核,不做二选一。`,arbitrate:`完整的 best-of-N:并发问多个模型,按裁判选出的赢家发送。成本约 2.3 倍。`};function H(){return U.apply(this,arguments)}function U(){return U=h(function*(){P.value=!0;try{let e=yield x();F.value=e.models,L.value=e.judge_modes,I.value=e.roles;let t=e=>(e||``).split(`,`).map(e=>e.trim()).filter(Boolean);Object.assign(R,{answer_ids:t(e.roles.answer_ids),fallback_ids:t(e.roles.fallback_ids),judge_id:e.roles.judge_id||``,vision_id:e.roles.vision_id||``,judge_mode:e.roles.judge_mode||`shadow`})}finally{P.value=!1}}),U.apply(this,arguments)}function W(){return G.apply(this,arguments)}function G(){return G=h(function*(){if(R.answer_ids.length===0){C.warning(`至少要指定一个答题模型`);return}let e=yield S({answer_ids:R.answer_ids.join(`,`),judge_id:R.judge_id,vision_id:R.vision_id,fallback_ids:R.fallback_ids.join(`,`),judge_mode:R.judge_mode});I.value=e.roles,C.success(`已保存为 v${e.version},网关 20 秒内自动生效`)}),G.apply(this,arguments)}return a(H),(a,o)=>(l(),i(`div`,k,[e(n(w),{class:`mb-4`,type:`warning`,"show-icon":``,message:`编排是追加版本,不是原地修改`,description:`每次保存都产生一个新版本号,回滚就是指回旧版本。网关每 20 秒重读一次,不用重启。`}),e(n(b),{title:`当前生效的编排`,class:`mb-4`,loading:P.value},{default:u(()=>[I.value?(l(),f(n(O),{key:0,column:2,size:`small`,bordered:``},{default:u(()=>[e(n(D),{label:`版本`},{default:u(()=>[t(`v`+d(I.value.version),1)]),_:1}),e(n(D),{label:`裁判模式`},{default:u(()=>[e(n(E),{color:I.value.judge_mode===`arbitrate`?`red`:I.value.judge_mode===`score_only`?`orange`:`blue`},{default:u(()=>[t(d(I.value.judge_mode),1)]),_:1},8,[`color`])]),_:1}),e(n(D),{label:`答题模型`},{default:u(()=>[t(d(I.value.answer_ids||`—`),1)]),_:1}),e(n(D),{label:`裁判模型`},{default:u(()=>[t(d(I.value.judge_id||`—`),1)]),_:1})]),_:1})):m(``,!0)]),_:1},8,[`loading`]),e(n(b),{title:`修改编排`},{default:u(()=>[e(n(v),{model:R,layout:`vertical`},{default:u(()=>[e(n(_),{label:`答题模型(多选 = 并发提问,按顺序第一个是主模型)`},{default:u(()=>[e(n(y),{value:R.answer_ids,"onUpdate:value":o[0]||(o[0]=e=>R.answer_ids=e),mode:`multiple`,options:z.value,disabled:!N.value,placeholder:`至少选一个`},null,8,[`value`,`options`,`disabled`]),R.answer_ids.length>1?(l(),i(`p`,A,` 选了 `+d(R.answer_ids.length)+` 个 = 每条回复都要付 `+d(R.answer_ids.length)+` 份生成费用。 建议先跑一段影子模式,用调用统计里的分数分布判断值不值。 `,1)):m(``,!0)]),_:1}),e(n(_),{label:`裁判模型(给回复打绝对分和风险等级)`},{default:u(()=>[e(n(y),{value:R.judge_id,"onUpdate:value":o[1]||(o[1]=e=>R.judge_id=e),options:z.value,disabled:!N.value,"allow-clear":``,placeholder:`不选则不做评审`},null,8,[`value`,`options`,`disabled`])]),_:1}),e(n(_),{label:`裁判模式`},{default:u(()=>[e(n(y),{value:R.judge_mode,"onUpdate:value":o[2]||(o[2]=e=>R.judge_mode=e),disabled:!N.value,options:L.value.map(e=>({value:e,label:e}))},null,8,[`value`,`disabled`,`options`]),r(`p`,j,d(V[R.judge_mode]),1)]),_:1}),e(n(_),{label:`媒体消息专用模型(需具备视觉能力,留空则从答题池里挑)`},{default:u(()=>[e(n(y),{value:R.vision_id,"onUpdate:value":o[3]||(o[3]=e=>R.vision_id=e),options:B.value,disabled:!N.value,"allow-clear":``},null,8,[`value`,`options`,`disabled`])]),_:1}),e(n(_),{label:`降级链(主链全挂时按顺序尝试)`},{default:u(()=>[e(n(y),{value:R.fallback_ids,"onUpdate:value":o[4]||(o[4]=e=>R.fallback_ids=e),mode:`multiple`,options:z.value,disabled:!N.value},null,8,[`value`,`options`,`disabled`])]),_:1}),N.value?(l(),f(n(T),{key:0,type:`primary`,onClick:W},{default:u(()=>[...o[5]||(o[5]=[t(`保存为新版本`,-1)])]),_:1})):m(``,!0)]),_:1},8,[`model`])]),_:1})]))}});export{M as default}; |