UNPKG

chaite

Version:

core for chatgpt-plugin and karin-plugin-chatgpt

4 lines (3 loc) 7.71 kB
import{d as G,r as d,s as m,x as A,c as K,o as c,e as l,u as a,J as H,w as u,y as J,a as x,E as r,C as k,O as C,b as I,V as T,t as S,F as W,W as $,H as Q,n as X,z as B,B as P,g as R,k as Y}from"./index-ODYIy7Xh.js";import{_ as n}from"./FormItemGridItem-Ca-3zMXQ.js";import{N as Z}from"./DynamicTags-QRruA4X5.js";import{N as ee,a as ae}from"./CollapseItem-Dh60zBP9.js";import{N as q}from"./InputNumber-B7iAvbv4.js";import{_ as le}from"./FormItem-Bn6KO6SV.js";import{N as F}from"./Grid-Bjr6q9HT.js";import"./prop-BjyUHhTu.js";const te={class:"ml-2 text-xs"},oe={style:{display:"flex","justify-content":"flex-end","margin-top":"24px"}},se=G({__name:"ChannelFormModal",props:{show:Boolean,editMode:Boolean,initialData:{type:Object,default:()=>({})},preProcessorOptions:{type:Array,default:()=>[]},postProcessorOptions:{type:Array,default:()=>[]}},emits:["update:show","submit"],setup(U,{emit:O}){const f=U,w=O,h=d(),v=m({get:()=>f.show,set:s=>w("update:show",s)}),j={name:{required:!0,trigger:["blur","input"],message:"请输入渠道名称"},adapterType:{required:!0,trigger:["blur","change"],message:"请选择客户端类型"},"options.baseUrl":{required:!0,trigger:["blur","input"],message:"请输入基础URL"},"options.apiKey":{required:!0,trigger:["blur","input"],message:"请输入API密钥"}},o=d({adapterType:"openai",models:[],weight:1,priority:0,status:"enabled",options:{baseUrl:"",apiKey:"",multipleKeyStrategy:"random",proxy:"",preProcessorIds:[],postProcessorIds:[]},description:"",name:"",modelType:"settings"}),z=m(()=>{const s=Array.isArray(o.value.models)?o.value.models:[];if(s.length===0||new Set(s).size!==s.length)return"error"}),D=m(()=>{const s=Array.isArray(o.value.models)?o.value.models:[];return s.length===0?"请至少添加一个模型":new Set(s).size!==s.length?"模型名称不能重复":""}),y=d(!0),i=d([]),p=d(""),g=d(""),b=m({get:()=>o.value.status==="enabled",set:s=>M(s)});A(()=>f.initialData,s=>{f.editMode&&s&&(o.value={...s},i.value=[...s.models||[]],g.value=(s.models||[]).join(", "))},{immediate:!0});function M(s){o.value.status=s?"enabled":"disabled"}function N(s){o.value.models=[...s]}function E(){p.value.trim()&&(i.value.push(p.value.trim()),N(i.value),p.value="")}function L(s){const e=s.split(",").map(t=>t.trim()).filter(Boolean);o.value.models=e,i.value=e}function V(){h.value?.validate().then(s=>{if(Array.isArray(s)){console.error(s);return}w("submit",o.value),v.value=!1})}const _=m({get:()=>{const s=o.value.options?.apiKey;return Array.isArray(s)?s.join(` `):s||""},set:s=>{o.value.options||(o.value.options={});const e=s.split(` `).map(t=>t.trim()).filter(Boolean);o.value.options.apiKey=e.length>1?e:e[0]||""}});return A(v,s=>{!s&&!f.editMode&&(o.value={adapterType:"openai",models:[],weight:1,priority:0,status:"enabled",options:{baseUrl:"",apiKey:"",multipleKeyStrategy:"random",proxy:"",preProcessorIds:[],postProcessorIds:[]},description:""},i.value=[],g.value="",p.value="")}),(s,e)=>(c(),K("div",null,[l(a(H),{show:v.value,"onUpdate:show":e[16]||(e[16]=t=>v.value=t),preset:"card",style:{width:"700px","max-width":"90vw"}},{default:u(()=>[l(a(J),{title:U.editMode?"编辑渠道":"添加渠道"},{default:u(()=>[l(a(le),{ref_key:"formRef",ref:h,rules:j,model:o.value},{default:u(()=>[l(a(F),{cols:24,"x-gap":12,"y-gap":16,responsive:"screen","item-responsive":""},{default:u(()=>[l(a(n),{span:"24 s:12 m:16",label:"名称",path:"name"},{default:u(()=>[l(a(r),{value:o.value.name,"onUpdate:value":e[0]||(e[0]=t=>o.value.name=t),placeholder:"请输入渠道名称"},null,8,["value"])]),_:1}),l(a(n),{span:"24 s:12 m:8",label:"适配器类型",path:"adapterType"},{default:u(()=>[l(a(k),{value:o.value.adapterType,"onUpdate:value":e[1]||(e[1]=t=>o.value.adapterType=t),options:[{label:"OpenAI",value:"openai"},{label:"Gemini",value:"gemini"},{label:"Claude",value:"claude"}],placeholder:"请选择适配器类型"},null,8,["value"])]),_:1}),l(a(n),{span:"24 s:12 m:16",label:"BaseURL",path:"options.baseUrl"},{default:u(()=>[l(a(r),{value:o.value.options.baseUrl,"onUpdate:value":e[2]||(e[2]=t=>o.value.options.baseUrl=t),placeholder:"请输入基础URL"},null,8,["value"])]),_:1}),l(a(n),{span:"24",label:"API密钥",path:"options.apiKey"},{default:u(()=>[l(a(r),{value:_.value,"onUpdate:value":e[3]||(e[3]=t=>_.value=t),type:"textarea",placeholder:"请输入API密钥,多个密钥请每行输入一个"},null,8,["value"])]),_:1}),l(a(n),{span:"24 s:12 m:8",label:"支持模型",path:"models","validation-status":z.value,feedback:D.value},{default:u(()=>[l(a(C),{vertical:""},{default:u(()=>[l(a(C),{align:"center",class:"mb-2"},{default:u(()=>[l(a(T),{value:y.value,"onUpdate:value":e[4]||(e[4]=t=>y.value=t),size:"small"},null,8,["value"]),x("span",te,S(y.value?"标签模式":"文本模式"),1)]),_:1}),y.value?(c(),K(W,{key:0},[l(a(Z),{value:i.value,"onUpdate:value":[e[5]||(e[5]=t=>i.value=t),N]},null,8,["value"]),l(a(r),{value:p.value,"onUpdate:value":e[6]||(e[6]=t=>p.value=t),class:"mt-2",placeholder:"输入模型名称后按回车添加",onKeydown:$(Q(E,["prevent"]),["enter"])},null,8,["value","onKeydown"])],64)):(c(),I(a(r),{key:1,value:g.value,"onUpdate:value":[e[7]||(e[7]=t=>g.value=t),L],placeholder:"请输入支持的模型列表,以逗号分隔"},null,8,["value"]))]),_:1})]),_:1},8,["validation-status","feedback"])]),_:1}),l(a(ee),{class:"mt-4"},{default:u(()=>[l(a(ae),{title:"高级设置",name:"advanced"},{default:u(()=>[l(a(F),{cols:24,"x-gap":12,"y-gap":16,responsive:"screen","item-responsive":""},{default:u(()=>[l(a(n),{span:"24 s:12 m:8",label:"状态",path:"status"},{default:u(()=>[l(a(B),{align:"center"},{default:u(()=>[l(a(T),{value:b.value,"onUpdate:value":[e[8]||(e[8]=t=>b.value=t),M]},null,8,["value"]),x("span",null,S(b.value?"启用":"禁用"),1)]),_:1})]),_:1}),l(a(n),{span:"24 s:12 m:8",label:"多密钥策略",path:"options.multipleKeyStrategy"},{default:u(()=>[l(a(k),{value:o.value.options.multipleKeyStrategy,"onUpdate:value":e[9]||(e[9]=t=>o.value.options.multipleKeyStrategy=t),options:[{label:"随机",value:"random"},{label:"轮询",value:"round-robin"},{label:"会话哈希",value:"conversation-hash"}],placeholder:"请选择多密钥策略"},null,8,["value"])]),_:1}),l(a(n),{span:"24 s:12 m:8",label:"代理",path:"options.proxy"},{default:u(()=>[l(a(r),{value:o.value.options.proxy,"onUpdate:value":e[10]||(e[10]=t=>o.value.options.proxy=t),placeholder:"请输入代理地址(可选)"},null,8,["value"])]),_:1}),l(a(n),{span:"24 s:12 m:8",label:"优先级",path:"priority"},{default:u(()=>[l(a(q),{value:o.value.priority,"onUpdate:value":e[11]||(e[11]=t=>o.value.priority=t)},null,8,["value"])]),_:1}),l(a(n),{span:"24 s:12 m:8",label:"权重",path:"weight"},{default:u(()=>[l(a(q),{value:o.value.weight,"onUpdate:value":e[12]||(e[12]=t=>o.value.weight=t)},null,8,["value"])]),_:1}),l(a(n),{span:"24",label:"描述",path:"description"},{default:u(()=>[l(a(r),{value:o.value.description,"onUpdate:value":e[13]||(e[13]=t=>o.value.description=t),type:"textarea",placeholder:"请输入渠道描述"},null,8,["value"])]),_:1}),b.value?X("",!0):(c(),I(a(n),{key:0,span:"24",label:"禁用原因",path:"disabledReason"},{default:u(()=>[l(a(r),{value:o.value.disabledReason,"onUpdate:value":e[14]||(e[14]=t=>o.value.disabledReason=t),placeholder:"请输入禁用原因"},null,8,["value"])]),_:1}))]),_:1})]),_:1})]),_:1}),x("div",oe,[l(a(B),null,{default:u(()=>[l(a(P),{onClick:e[15]||(e[15]=t=>v.value=!1)},{default:u(()=>e[17]||(e[17]=[R(" 取消 ")])),_:1}),l(a(P),{type:"primary",onClick:V},{default:u(()=>e[18]||(e[18]=[R(" 确定 ")])),_:1})]),_:1})])]),_:1},8,["model"])]),_:1},8,["title"])]),_:1},8,["show"])]))}}),fe=Y(se,[["__scopeId","data-v-dd5f228f"]]);export{fe as default};