/** * 由 Fantastic-admin 提供技术支持 * Powered by Fantastic-admin * Gitee https://gitee.com/hooray/fantastic-admin * Github https://github.com/hooray/fantastic-admin */ import{_ as ye}from"./index-7911c6db.js";import{A as M}from"./chatgpt-3275e912.js";import{u as ke}from"./utcformatTime-e76e5157.js";import{M as ce,b as ge,c as _e,Q as be}from"./index-66a830a3.js";import{d as we,r as k,Q as R,B as H,x as ve,o as c,c as S,e as l,f as t,R as q,S as $,b as u,k as n,a as K,w as N,I as x,t as f,U as J,E as V,W as xe,h as d,X as Ve,q as Z}from"./index-4eef28ae.js";const Te={style:{float:"right"}},Ue={class:"flex justify-end mr-5"},Ce={class:"flex justify-end mr-5"},Me=we({__name:"list",setup(he){const I=k(),O=k(),j=k(0),_=k(!1),h=k(!1),Y=k(!1),w=k(!1),E=k(["gpt-4","gpt-4-0613","gpt-4-32k","gpt-4-32k-0613","gpt-3.5-turbo","gpt-3.5-turbo-0613","gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-16k","code-davinci-002","ada","davinci"]),D=R({keyList:""}),y=R({key:"",model:"",status:"",page:1,size:10}),P=k(),v=k(0),s=R({key:"",model:"",maxModelTokens:null,maxResponseTokens:null,openaiProxyUrl:"",openaiTimeoutMs:null,weight:1,status:1}),ee=R({key:[{required:!0,message:"请填写您的chatgpt key",trigger:"blur"}],model:[{required:!0,message:"请选择当前key需要绑定的模型",trigger:"change"}],weight:[{required:!1,message:"请填写key的权重值",trigger:"blur"}],status:[{required:!0,message:"请选择key的启用状态",trigger:"change"}],maxModelTokens:[{required:!1,message:"请填写模型最大token数",trigger:"blur"}],maxResponseTokens:[{required:!1,message:"请填写最大回复token数",trigger:"blur"}],openaiProxyUrl:[{required:!1,message:"请填写指定代理地址",trigger:"blur"}]});function G(o){v.value=0,o==null||o.resetFields()}const le=H(()=>v.value?"更新秘钥":"新增秘钥"),Q=H(()=>v.value?"确认更新":"确认新增"),F=k([]);async function W(){}async function g(){try{h.value=!0;const o=await M.queryKeyList(y);h.value=!1;const{rows:a,count:m}=o.data;j.value=m,F.value=a}catch{h.value=!1}}async function te(o){const{id:a}=o;await M.deleteGptKey({id:a}),V({type:"success",message:"删除秘钥成功!"}),g()}function ae(o){v.value=o.id;const{key:a,modelName:m,model:i,weight:b,status:T,type:r,maxModelTokens:A,maxResponseTokens:L,openaiProxyUrl:U,openaiTimeoutMs:C}=o;xe(()=>{Object.assign(s,{key:a,modelName:m,model:i,weight:b,status:T,type:r,maxModelTokens:A,maxResponseTokens:L,openaiProxyUrl:U,openaiTimeoutMs:C})}),_.value=!0}function oe(o){o==null||o.resetFields(),g()}async function ne(o){o==null||o.validate(async a=>{a&&(v.value?(await M.updateGptKey({id:v.value,...s}),V({type:"success",message:"更新秘钥成功!"})):(await M.addGptKey(s),V({type:"success",message:"添加秘钥成功!"})),_.value=!1,g())})}function se(o){o==null||o.validate(async a=>{if(a){const{keyList:m}=D,i=m.split(` `);if(i.length>100)return V.error("批量添加key不能超过100个");if(!i.length)return V.error("请按要求填写您的key秘钥");const b=await M.builCreateGptKey({keyList:i});D.keyList="",V({type:"success",message:b.data}),w.value=!1,g()}})}return ve(()=>{g()}),(o,a)=>{const m=d("el-input"),i=d("el-form-item"),b=d("el-option"),T=d("el-select"),r=d("el-button"),A=d("Plus"),L=d("el-icon"),U=d("el-form"),C=ye,ue=d("el-alert"),p=d("el-table-column"),z=d("el-tag"),re=d("el-popconfirm"),ie=d("el-table"),de=d("el-pagination"),pe=d("el-row"),me=d("el-switch"),X=d("el-dialog"),B=Ve("loading");return c(),S("div",null,[l(C,null,{default:t(()=>[l(U,{ref_key:"formRef",ref:O,inline:!0,model:y},{default:t(()=>[l(i,{label:"key",prop:"key"},{default:t(()=>[l(m,{modelValue:y.key,"onUpdate:modelValue":a[0]||(a[0]=e=>y.key=e),placeholder:"sk-*** [模糊搜索]"},null,8,["modelValue"])]),_:1}),l(i,{label:"使用模型",prop:"model"},{default:t(()=>[l(T,{modelValue:y.model,"onUpdate:modelValue":a[1]||(a[1]=e=>y.model=e),placeholder:"请选择绑定的模型",clearable:""},{default:t(()=>[(c(!0),S(q,null,$(u(ce),e=>(c(),x(b,{key:e,label:e,value:e},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(i,{label:"启用状态",prop:"status"},{default:t(()=>[l(T,{modelValue:y.status,"onUpdate:modelValue":a[2]||(a[2]=e=>y.status=e),placeholder:"请选择key启用状态",clearable:""},{default:t(()=>[(c(!0),S(q,null,$(u(ge),e=>(c(),x(b,{key:e.value,label:e.label,value:e.value},null,8,["label","value"]))),128))]),_:1},8,["modelValue"])]),_:1}),l(i,null,{default:t(()=>[l(r,{type:"primary",onClick:g},{default:t(()=>[n(" 查询 ")]),_:1}),l(r,{onClick:a[3]||(a[3]=e=>oe(u(O)))},{default:t(()=>[n(" 重置 ")]),_:1})]),_:1}),K("span",Te,[l(r,{type:"success",onClick:a[4]||(a[4]=e=>w.value=!0)},{default:t(()=>[n(" 批量添加Key "),l(L,{class:"ml-3"},{default:t(()=>[l(A)]),_:1})]),_:1}),l(r,{type:"success",onClick:a[5]||(a[5]=e=>_.value=!0)},{default:t(()=>[n(" 添加Key "),l(L,{class:"ml-3"},{default:t(()=>[l(A)]),_:1})]),_:1})])]),_:1},8,["model"])]),_:1}),l(C,null,{default:t(()=>[l(ue,{"show-icon":"",title:"模块已废弃",description:"当前版本会在2.0之后废弃、本次保留是为了让你查询历史key、后续此模块会直接移除、新的key池在下方『模型池设置』中、详细配置可以查看提示或参考官方文档!",type:"error"})]),_:1}),l(C,{style:{width:"100%"}},{default:t(()=>[N((c(),x(ie,{border:"",data:u(F),style:{width:"100%"},size:"large"},{default:t(()=>[l(p,{prop:"key",label:"key秘钥",width:"470"}),l(p,{prop:"model",align:"center",label:"绑定模型",width:"160"},{default:t(e=>[l(z,{type:e.row.model.includes("gpt-4")?"success":""},{default:t(()=>[n(f(e.row.model),1)]),_:2},1032,["type"])]),_:1}),l(p,{prop:"status",align:"center",label:"启用状态",width:"90"},{default:t(e=>[l(z,{type:u(_e)[e.row.status]},{default:t(()=>[n(f(u(be)[e.row.status]),1)]),_:2},1032,["type"])]),_:1}),l(p,{prop:"keyDetail.totalAmount",align:"center",label:"账户总额",width:"90"},{default:t(e=>[l(r,{type:"info",text:""},{default:t(()=>[n(f(e.row.keyDetail.totalAmount||"-"),1)]),_:2},1024)]),_:1}),l(p,{prop:"keyDetail.useAmount",align:"center",label:"已用额度",width:"90"},{default:t(e=>[l(r,{type:"danger",text:""},{default:t(()=>[n(f(e.row.keyDetail.useAmount||"-"),1)]),_:2},1024)]),_:1}),l(p,{prop:"keyDetail.balance",align:"center",label:"剩余额度",width:"90"},{default:t(e=>[l(r,{type:"success",text:""},{default:t(()=>[n(f(e.row.keyDetail.balance||"-"),1)]),_:2},1024)]),_:1}),l(p,{prop:"keyDetail.expirDate",align:"center",label:"过期时间",width:"130"},{default:t(e=>[l(r,{type:"danger",text:""},{default:t(()=>[n(f(e.row.keyDetail.expirDate||"-"),1)]),_:2},1024)]),_:1}),l(p,{prop:"weight",align:"center",label:"秘钥权重",width:"90"}),l(p,{prop:"useCount",align:"center",label:"调用次数",width:"90"}),l(p,{prop:"keyStatus",align:"center",label:"key状态",width:"90"},{default:t(e=>[l(z,{type:e.row.keyDetail.status===1?"success":"danger"},{default:t(()=>[n(f(e.row.keyDetail.status===1?"正常工作":e.row.keyDetail.status===-1?"查询失败":"已被封禁"),1)]),_:2},1032,["type"])]),_:1}),l(p,{prop:"maxModelTokens",align:"center",label:"模型最大上下文",width:"140"},{default:t(e=>[l(r,{type:"info",text:""},{default:t(()=>[n(f(e.row.maxModelTokens||"-"),1)]),_:2},1024)]),_:1}),l(p,{prop:"maxResponseTokens",align:"center",label:"最大回复支持Token",width:"160"},{default:t(e=>[l(r,{type:"info",text:""},{default:t(()=>[n(f(e.row.maxResponseTokens||"-"),1)]),_:2},1024)]),_:1}),l(p,{prop:"openaiProxyUrl",align:"center",label:"绑定的代理地址",width:"230"},{default:t(e=>[l(r,{type:"info",text:""},{default:t(()=>[n(f(e.row.openaiProxyUrl||"-"),1)]),_:2},1024)]),_:1}),l(p,{prop:"createdAt",align:"center",label:"添加时间",width:"120"},{default:t(e=>[n(f(u(ke)(e.row.createdAt,"YYYY-MM-DD")),1)]),_:1}),l(p,{fixed:"right",label:"操作",width:"200"},{default:t(e=>[l(r,{link:"",type:"primary",size:"small",onClick:fe=>ae(e.row)},{default:t(()=>[n(" 变更 ")]),_:2},1032,["onClick"]),l(re,{title:"确认删除此秘钥么?",width:"180","icon-color":"red",onConfirm:fe=>te(e.row)},{reference:t(()=>[l(r,{link:"",type:"danger",size:"small"},{default:t(()=>[n(" 删除秘钥 ")]),_:1})]),_:2},1032,["onConfirm"])]),_:1})]),_:1},8,["data"])),[[B,u(h)]]),l(pe,{class:"flex justify-end mt-5"},{default:t(()=>[l(de,{"current-page":y.page,"onUpdate:currentPage":a[6]||(a[6]=e=>y.page=e),"page-size":y.size,"onUpdate:pageSize":a[7]||(a[7]=e=>y.size=e),class:"mr-5","page-sizes":[10,20,30,50],layout:"total, sizes, prev, pager, next, jumper",total:u(j),onSizeChange:g,onCurrentChange:g},null,8,["current-page","page-size","total"])]),_:1})]),_:1}),l(X,{modelValue:u(_),"onUpdate:modelValue":a[18]||(a[18]=e=>J(_)?_.value=e:null),"close-on-click-modal":!1,title:"批量添加秘钥",width:"670",onClose:a[19]||(a[19]=e=>G(u(P)))},{footer:t(()=>[K("span",Ue,[l(r,{onClick:a[16]||(a[16]=e=>_.value=!1)},{default:t(()=>[n("取消")]),_:1}),l(r,{type:"primary",onClick:a[17]||(a[17]=e=>ne(u(P)))},{default:t(()=>[n(f(u(Q)),1)]),_:1})])]),default:t(()=>[N((c(),x(U,{ref_key:"formPackageRef",ref:P,"label-position":"right","label-width":"120px",model:s,rules:ee},{default:t(()=>[l(i,{label:"key卡账号",prop:"key"},{default:t(()=>[l(m,{modelValue:s.key,"onUpdate:modelValue":a[8]||(a[8]=e=>s.key=e),placeholder:"请填写chatgpt key",onBlur:W},null,8,["modelValue"])]),_:1}),l(i,{label:"启用状态",prop:"status"},{default:t(()=>[l(me,{modelValue:s.status,"onUpdate:modelValue":a[9]||(a[9]=e=>s.status=e),"active-value":1,"inactive-value":0},null,8,["modelValue"])]),_:1}),l(i,{label:"绑定模型",prop:"model"},{default:t(()=>[l(T,{modelValue:s.model,"onUpdate:modelValue":a[10]||(a[10]=e=>s.model=e),filterable:"",clearable:"",placeholder:"请选用当前key绑定的模型"},{default:t(()=>[(c(!0),S(q,null,$(u(E),e=>(c(),x(b,{key:e,label:e,value:e},null,8,["label","value"]))),128))]),_:1},8,["modelValue"]),l(r,{type:"primary",class:"ml-5",onClick:W},{default:t(()=>[n(" 请指定当前key调用的模型 ")]),_:1})]),_:1}),l(i,{label:"轮询权重",prop:"weight"},{default:t(()=>[l(m,{modelValue:s.weight,"onUpdate:modelValue":a[11]||(a[11]=e=>s.weight=e),modelModifiers:{number:!0},placeholder:"请填写key的权重、数字越大使用评率越高!"},null,8,["modelValue"])]),_:1}),l(i,{label:"模型最大Token",prop:"maxModelTokens"},{default:t(()=>[l(m,{modelValue:s.maxModelTokens,"onUpdate:modelValue":a[12]||(a[12]=e=>s.maxModelTokens=e),modelModifiers:{number:!0},placeholder:"请填写模型最大Token、不填写默认使用默认!"},null,8,["modelValue"])]),_:1}),l(i,{label:"最大回复Token",prop:"maxResponseTokens"},{default:t(()=>[l(m,{modelValue:s.maxResponseTokens,"onUpdate:modelValue":a[13]||(a[13]=e=>s.maxResponseTokens=e),modelModifiers:{number:!0},placeholder:"请填写最大回复Token、不填写使用默认!"},null,8,["modelValue"])]),_:1}),l(i,{label:"指定代理",prop:"openaiProxyUrl"},{default:t(()=>[l(m,{modelValue:s.openaiProxyUrl,"onUpdate:modelValue":a[14]||(a[14]=e=>s.openaiProxyUrl=e),modelModifiers:{number:!0},placeholder:"请填写key的指定代理、不填写默认使用全局配置!"},null,8,["modelValue"])]),_:1}),l(i,{label:"超时时间",prop:"openaiTimeoutMs"},{default:t(()=>[l(m,{modelValue:s.openaiTimeoutMs,"onUpdate:modelValue":a[15]||(a[15]=e=>s.openaiTimeoutMs=e),modelModifiers:{number:!0},placeholder:"请填写key的超时时间单位(ms)、不填写默认使用全局配置!"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","rules"])),[[B,u(Y)]])]),_:1},8,["modelValue"]),l(X,{modelValue:u(w),"onUpdate:modelValue":a[23]||(a[23]=e=>J(w)?w.value=e:null),"close-on-click-modal":!1,title:u(le),width:"670",onClose:a[24]||(a[24]=e=>G(u(P)))},{footer:t(()=>[K("span",Ce,[l(r,{onClick:a[21]||(a[21]=e=>w.value=!1)},{default:t(()=>[n("取消")]),_:1}),l(r,{type:"primary",onClick:a[22]||(a[22]=e=>se(u(I)))},{default:t(()=>[n(f(u(Q)),1)]),_:1})])]),default:t(()=>[N((c(),x(U,{ref_key:"formBlukRef",ref:I,"label-position":"right","label-width":"120px",model:s},{default:t(()=>[l(i,{label:"key卡账号列表",prop:"keyList"},{default:t(()=>[l(m,{modelValue:D.keyList,"onUpdate:modelValue":a[20]||(a[20]=e=>D.keyList=e),type:"textarea",rows:8,placeholder:"请粘贴您的key秘钥列表、一行一个、批量添加的情况下我们将默认为您使用gpt-3.5-turbo模型、并且不会检测秘钥的有效期、请您自行校验!"},null,8,["modelValue"])]),_:1})]),_:1},8,["model"])),[[B,u(Y)]])]),_:1},8,["modelValue","title"])])}}});typeof Z=="function"&&Z(Me);export{Me as default};