import Ve from"./LayoutExperience-m_6O_--w.js";import Ue from"./ContentContainer-Ccan82yM.js";import{C as ve,H as Le}from"./CardItem-C8Aq2jlY.js";/* empty css */import{S as me}from"./index-DQnxzLQF.js";import"./index-CH4harNy.js";import{S as W,O as ee,a as Ce,T as fe}from"./index-DfG3xZUT.js";import"./index-Dg5DYmdG.js";/* empty css */import"./index-Dr87gjkO.js";/* empty css */import"./index-MWvsC21f.js";import{F as Z,a as J}from"./index-D42u9gmJ.js";import{q as Ie,E as $e,F as Ae,G as Ee,H as Oe,I as De,J as Be,K as Se,L as xe,M as Fe,N as Te,O as Re,P as qe,Q as Pe,R as Ge,S as Xe,T as de,U as He,V as ze,W as Ne}from"./rgflow-dify-C0QiHv2O.js";import{M as Q,B as se,_ as le}from"./index-CZgt6gUt.js";import{M as q}from"./index-DYVHHYYR.js";import{e as H,j as m,x as N,s as _,o,A as l,a as f,D as a,c as C,F as O,Z as R,I as D,J as k,p as z,q as L,X as G,E as ne}from"./vue-vendor-BdC0yijC.js";import{c as ye}from"./icon-map-D83d39Ln.js";import{_ as ge}from"./DeleteModal-BEI_RKTj.js";/* empty css */import{I as ae}from"./index-Cngm-rvJ.js";import{I as Ke}from"./index-nlTXBUje.js";import{E as be}from"./index-DIO7s5-r.js";import"./Header-tkTaRFmu.js";import"./use-platform-information-CCFvVYoR.js";/* empty css */import"./use-logout-BuTcf7YW.js";import"./use-current-user-zms2zUjo.js";import"./login-DFmm7rHm.js";import"./use-merge-state-OcpGs99s.js";import"./index.es-Bqanj1By.js";import"./index-lSGBaeFz.js";import"./index-B3z4cY-J.js";import"./index-BehirOWx.js";import"./responsive-observe-4ACH6YSC.js";const Ye={class:"section"},je={__name:"SystemSetting",props:{show_modal:Boolean},emits:["ragClose"],setup(b,{emit:B}){const p=b,U=B,g=H(()=>p.show_modal),M=m("vertical"),n=m({llm_id:"",embd_id:"",img2txt_id:"",asr_id:"",rerank_id:"",tts_id:""}),e=m(),I=m(),x=m(),S=m(!1),$=async()=>{try{const u=await $e();u.code/1===0&&(n.value={...u.data})}catch(u){console.log(u)}},A=async()=>{try{const u=await Ie(),s={};for(const c in u.data)if(Object.hasOwnProperty.call(u.data,c)){const r=u.data[c];s[c]=r.filter(h=>h.available===!0)}e.value=s,I.value={BAAI:[u.data.BAAI[1]],FastEmbed:u.data.FastEmbed,Xinference:u.data.Xinference,youdao:u.data.Youdao},x.value={BAAI:[u.data.BAAI[1]],youdao:u.data.Youdao}}catch{}finally{}},V=async()=>{try{S.value=!0;const u=await Ae(n.value);u.code/1==0&&u.data?(q.success("更新成功"),i()):q.error(u.message)}catch(u){console.log(u)}finally{S.value=!1}},y=()=>{V()},i=()=>{U("ragClose")};return N(async()=>{await A(),await $()}),(u,s)=>{const c=ee,r=W,h=J,w=Ce,d=Z,E=Q;return o(),_(E,{visible:g.value,"onUpdate:visible":s[6]||(s[6]=t=>g.value=t),"title-align":"start","align-center":!1,"esc-to-close":!1,top:"15vh",width:"30vw","ok-loading":S.value,onBeforeCancel:i,onOk:y},{title:l(()=>s[7]||(s[7]=[f("div",{class:"model-title"},"系统模型管理设置",-1)])),default:l(()=>[f("div",Ye,[a(d,{model:n.value,layout:M.value},{default:l(()=>[a(h,{field:"chatModal",label:"聊天模型"},{default:l(()=>[a(r,{modelValue:n.value.llm_id,"onUpdate:modelValue":s[0]||(s[0]=t=>n.value.llm_id=t),"allow-clear":""},{default:l(()=>[a(c)]),_:1},8,["modelValue"])]),_:1}),a(h,{field:"innerModal",label:"嵌入模型"},{default:l(()=>[a(r,{modelValue:n.value.embd_id,"onUpdate:modelValue":s[1]||(s[1]=t=>n.value.embd_id=t),"allow-clear":""},{default:l(()=>[(o(!0),C(O,null,R(I.value,(t,P)=>(o(),_(w,{label:P,key:P},{default:l(()=>[(o(!0),C(O,null,R(t,v=>(o(),_(c,{key:v.fid,disabled:!v.available,value:v.llm_name},{default:l(()=>[D(k(v.llm_name),1)]),_:2},1032,["disabled","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(h,{field:"img2txt",label:"Img2txt模型"},{default:l(()=>[a(r,{modelValue:n.value.img2txt_id,"onUpdate:modelValue":s[2]||(s[2]=t=>n.value.img2txt_id=t),"allow-clear":""},{default:l(()=>[a(c)]),_:1},8,["modelValue"])]),_:1}),a(h,{field:"sequence2txt",label:"Sequence2txt模型"},{default:l(()=>[a(r,{modelValue:n.value.asr_id,"onUpdate:modelValue":s[3]||(s[3]=t=>n.value.asr_id=t),"allow-clear":""},{default:l(()=>[a(c)]),_:1},8,["modelValue"])]),_:1}),a(h,{field:"rerank",label:"Rerank模型"},{default:l(()=>[a(r,{modelValue:n.value.rerank_id,"onUpdate:modelValue":s[4]||(s[4]=t=>n.value.rerank_id=t),"allow-clear":""},{default:l(()=>[(o(!0),C(O,null,R(x.value,(t,P)=>(o(),_(w,{label:P,key:P},{default:l(()=>[(o(!0),C(O,null,R(t,v=>(o(),_(c,{key:v.fid,disabled:!v.available,value:v.llm_name},{default:l(()=>[D(k(v.llm_name),1)]),_:2},1032,["disabled","value"]))),128))]),_:2},1032,["label"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(h,{field:"tts",label:"TTS模型"},{default:l(()=>[a(r,{modelValue:n.value.tts_id,"onUpdate:modelValue":s[5]||(s[5]=t=>n.value.tts_id=t),"allow-clear":""},{default:l(()=>[a(c)]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model","layout"])])]),_:1},8,["visible","ok-loading"])}}},Ze={class:"section"},Je={__name:"SystemSetting",props:{show_modal:Boolean},emits:["difyClose"],setup(b,{emit:B}){const p=b,U=B,g=H(()=>p.show_modal),M=m("vertical"),n=m({llm:{model:"",model_type:"llm",provider:""},embd:{model:"",model_type:"text-embedding",provider:""},speech2txt:{model:"",model_type:"speech2text",provider:""},rerank:{model:"",model_type:"rerank",provider:""},tts:{model:"",model_type:"tts",provider:""}}),e=m(!1),I=()=>{const w=Object.values(n.value);i({model_settings:w})},x=()=>{U("difyClose")},S=m([]),$=m([]),A=m([]),V=m([]),y=m([]),i=async w=>{var d;e.value=!0;try{(await xe(w)).result==="success"&&(q.success("修改成功"),x())}catch(E){q.error((d=E.response)==null?void 0:d.data.message)}finally{e.value=!1}},u=async()=>{var w;try{const d=await Ee();d.data&&(S.value=((w=d.data[0])==null?void 0:w.models)||[],n.value.llm.provider=d.data.provider,S.value.length&&(n.value.llm.model=S.value[0].model,n.value.llm.model_type=S.value[0].model_type))}catch(d){console.log(d)}},s=async()=>{var w;try{const d=await Oe();d.data&&(n.value.embd.provider=d.data.provider,$.value=((w=d.data[0])==null?void 0:w.models)||[],$.value.length&&(n.value.embd.model=$.value[0].model,n.value.embd.model_type=$.value[0].model_type))}catch(d){console.log(d)}},c=async()=>{var w;try{const d=await De();d.data&&(A.value=((w=d.data[0])==null?void 0:w.models)||[],n.value.rerank.provider=d.data.provider,A.value.length&&(n.value.rerank.model=A.value[0].model,n.value.rerank.model_type=A.value[0].model_type))}catch(d){console.log(d)}},r=async()=>{var w;try{const d=await Be();d.data&&(n.value.speech2txt.provider=d.data.provider,V.value=((w=d.data[0])==null?void 0:w.models)||[],V.value.length&&(n.value.speech2txt.model=V.value[0].model,n.value.speech2txt.model_type=V.value[0].model_type))}catch(d){console.log(d)}},h=async()=>{var w;try{const d=await Se();d.data&&(n.value.tts.provider=d.data.provider,y.value=((w=d.data[0])==null?void 0:w.models)||[],y.value.length&&(n.value.tts.model=y.value[0].model,n.value.tts.model_type=y.value[0].model_type))}catch(d){console.log(d)}};return N(async()=>{await u(),await s(),await c(),await r(),await h()}),(w,d)=>{const E=ee,t=W,P=J,v=Z,oe=Q;return o(),_(oe,{visible:g.value,"onUpdate:visible":d[5]||(d[5]=T=>g.value=T),"title-align":"start","align-center":!1,"esc-to-close":!1,top:"15vh",width:"30vw","ok-loading":e.value,onBeforeCancel:x,onOk:I},{title:l(()=>d[6]||(d[6]=[f("div",{class:"model-title"},"系统模型管理设置",-1)])),default:l(()=>[f("div",Ze,[a(v,{model:n.value,layout:M.value},{default:l(()=>[a(P,{field:"",label:"系统推理模型"},{default:l(()=>[a(t,{modelValue:n.value.llm.model,"onUpdate:modelValue":d[0]||(d[0]=T=>n.value.llm.model=T)},{default:l(()=>[(o(!0),C(O,null,R(S.value,T=>(o(),_(E,{key:T.model,Value:T.model},{default:l(()=>[D(k(T.model),1)]),_:2},1032,["Value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(P,{field:"",label:"Embedding 模型"},{default:l(()=>[a(t,{modelValue:n.value.embd.model,"onUpdate:modelValue":d[1]||(d[1]=T=>n.value.embd.model=T)},{default:l(()=>[(o(!0),C(O,null,R($.value,T=>(o(),_(E,{key:T.model,Value:T.model},{default:l(()=>[D(k(T.model),1)]),_:2},1032,["Value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(P,{field:"",label:"Rerank 模型"},{default:l(()=>[a(t,{modelValue:n.value.rerank.model,"onUpdate:modelValue":d[2]||(d[2]=T=>n.value.rerank.model=T)},{default:l(()=>[(o(!0),C(O,null,R(A.value,T=>(o(),_(E,{key:T.model,Value:T.model},{default:l(()=>[D(k(T.model),1)]),_:2},1032,["Value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(P,{field:"",label:"语音转文本模型"},{default:l(()=>[a(t,{modelValue:n.value.speech2txt.model,"onUpdate:modelValue":d[3]||(d[3]=T=>n.value.speech2txt.model=T)},{default:l(()=>[(o(!0),C(O,null,R(V.value,T=>(o(),_(E,{key:T.model,Value:T.model},{default:l(()=>[D(k(T.model),1)]),_:2},1032,["Value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(P,{field:"",label:"文本转语音模型"},{default:l(()=>[a(t,{modelValue:n.value.tts.model,"onUpdate:modelValue":d[4]||(d[4]=T=>n.value.tts.model=T)},{default:l(()=>[(o(!0),C(O,null,R(y.value,T=>(o(),_(E,{key:T.model,Value:T.model},{default:l(()=>[D(k(T.model),1)]),_:2},1032,["Value"]))),128))]),_:1},8,["modelValue"])]),_:1})]),_:1},8,["model","layout"])])]),_:1},8,["visible","ok-loading"])}}},Qe={__name:"TopSetting",emits:["changeType"],setup(b,{emit:B}){const p=B,U=m([{label:"助手",value:"assistant"},{label:"智能体",value:"agent"}]),g=m("assistant"),M=m(!1),n=m(!1),e=$=>{p("changeType",$)},I=()=>{g.value==="assistant"&&(M.value=!0),g.value==="agent"&&(n.value=!0)},x=()=>{M.value=!1},S=()=>{n.value=!1};return($,A)=>{const V=ee,y=W,i=z("icon-settings"),u=se,s=me;return o(),C(O,null,[a(s,{size:"large"},{default:l(()=>[a(y,{style:{width:"200px","background-color":"var(--color-bg-5)"},modelValue:g.value,"onUpdate:modelValue":A[0]||(A[0]=c=>g.value=c),onChange:e},{default:l(()=>[(o(!0),C(O,null,R(U.value,c=>(o(),_(V,{key:c.value,value:c.value},{default:l(()=>[D(k(c.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"]),a(u,{type:"primary",size:"large",onClick:I},{icon:l(()=>[a(i)]),default:l(()=>[D(" "+k($.$t("management.setModel")),1)]),_:1})]),_:1}),M.value?(o(),_(je,{key:0,show_modal:M.value,onRagClose:x},null,8,["show_modal"])):L("",!0),n.value?(o(),_(Je,{key:1,show_modal:n.value,onDifyClose:S},null,8,["show_modal"])):L("",!0)],64)}}},We={class:"collapse-item"},el={class:"name"},ll={class:"tag"},al={__name:"CollapseItem",props:{models:{type:Object,required:!0}},emits:["toDeleteLLm"],setup(b,{emit:B}){const p=B,U=g=>{p("toDeleteLLm",g)};return(g,M)=>{const n=fe,e=z("icon-delete");return o(),C("div",We,[f("div",el,k(b.models.name),1),f("div",ll,[a(n,null,{default:l(()=>[D(k(b.models.type),1)]),_:1})]),a(e,{class:"delete-icon",onClick:M[0]||(M[0]=I=>U(b.models.name))})])}}},ol=le(al,[["__scopeId","data-v-c29dc0b4"]]);function ue(b=1e3){const B=m(b);return{beforeEnter:M=>{M.style.maxHeight=0},enter:(M,n)=>{M.offsetHeight,M.style.transition="max-height 0.5s ease",M.style.maxHeight=`${B.value}px`,n()},leave:(M,n)=>{M.style.transition="max-height 0.5s ease",M.style.maxHeight=0,n()}}}const tl={class:"model-list"},nl={class:"list-header"},dl={class:"list-info"},sl=["src"],ul={class:"info-desc"},il={class:"name"},rl={class:"desc"},ml={class:"list-tools"},cl={key:0,class:"list-collapse"},_l={__name:"ModelList",props:{model_item:{request:!0,type:Object},model_name:{request:!0,type:String}},emits:["showMore","updateAddModelRG","toAddModel"],setup(b,{emit:B}){const p=b,U=B,g=m(!1),M=m(""),{beforeEnter:n,enter:e,leave:I}=ue(1e3),x=()=>{U("toAddModel",p.model_name)},S=()=>{g.value=!0},$=()=>{M.value?y():V()},A=u=>{U("showMore",u)},V=async()=>{try{const u=await Te({llm_factory:p.model_name});u.code/1==0&&u.data?(q.success("删除成功"),U("updateAddModelRG"),g.value=!1):q.error("删除失败")}catch(u){console.log(u)}},y=async()=>{try{const u=await Fe({llm_factory:p.model_name,llm_name:M.value});u.code/1==0&&u.data?(q.success("删除成功"),U("updateAddModelRG"),M.value="",g.value=!1):q.error("删除失败")}catch(u){console.log(u)}},i=u=>{M.value=u,g.value=!0};return(u,s)=>{const c=z("icon-plus"),r=se,h=z("icon-down"),w=z("icon-up"),d=z("icon-delete"),E=me;return o(),C(O,null,[f("div",tl,[f("div",nl,[f("div",dl,[f("img",{class:"icon",src:G(ye)(b.model_item.name),alt:""},null,8,sl),f("div",ul,[f("div",il,k(b.model_name),1),f("div",rl,k(b.model_item.tags),1)])]),f("div",ml,[a(E,null,{default:l(()=>[["OpenAI-API-Compatible","HuggingFace","Xinference","Ollama"].includes(b.model_item.name)?(o(),_(r,{key:0,onClick:x},{icon:l(()=>[a(c)]),default:l(()=>[D(" "+k(u.$t("management.addModelBtn")),1)]),_:1})):L("",!0),["OpenAI","DeepSeek"].includes(b.model_item.name)?(o(),_(r,{key:1,onClick:x},{icon:l(()=>[a(c)]),default:l(()=>[s[3]||(s[3]=D(" API_Key "))]),_:1})):L("",!0),a(r,{onClick:s[0]||(s[0]=t=>A(b.model_item))},{default:l(()=>[D(k(u.$t("management.showMoreModelBtn"))+" ",1),b.model_item.showMore?(o(),_(h,{key:0})):L("",!0),b.model_item.showMore?L("",!0):(o(),_(w,{key:1}))]),_:1}),a(d,{class:"delete-icon",onClick:s[1]||(s[1]=t=>S(b.model_item.name))})]),_:1})])]),a(ne,{name:"expand-collapse",onBeforeEnter:G(n),onEnter:G(e),onLeave:G(I)},{default:l(()=>[b.model_item.showMore?(o(),C("div",cl,[(o(!0),C(O,null,R(b.model_item.llm,(t,P)=>(o(),_(ol,{key:P,models:t,onToDeleteLLm:i},null,8,["models"]))),128))])):L("",!0)]),_:1},8,["onBeforeEnter","onEnter","onLeave"])]),a(ge,{visible:g.value,onOk:$,onCancel:s[2]||(s[2]=t=>g.value=!1)},null,8,["visible"])],64)}}},pl=le(_l,[["__scopeId","data-v-21ff9a11"]]),vl={class:"section"},fl={__name:"ModalAdd_1",props:{show_modal:Boolean,model_data:Object},emits:["ragClose","updateModelList"],setup(b,{emit:B}){const p=b,U=B,g=H(()=>p.show_modal),M=m("vertical"),n=m(!1),e=m({model_type:"",llm_name:"",api_base:"",max_tokens:"",api_key:"",llm_factory:""}),I={model_type:[{required:!0,message:"模型类型必填"}],llm_name:[{required:!0,message:"模型名称必填"}],api_base:[{required:!0,message:"基础url必填"}],max_tokens:[{required:!0,message:"最大token数必填"}]},x=H(()=>p.model_data.model_types),S=async()=>{if(e.value.model_type&&e.value.llm_name&&e.value.api_base&&e.value.max_tokens){n.value=!0;const y=await A(e.value);y.code/1===0?(q.success("添加成功"),U("updateModelList"),$()):q.error(y.message),n.value=!1}else q.error("缺少必填项")},$=()=>{U("ragClose")},A=async y=>{try{return await Re(y)}catch(i){console.log(i)}},V=()=>{};return N(()=>{p.model_data.model_types.length&&(e.value.model_type=p.model_data.model_types[0]),e.value.llm_factory=p.model_data.name}),(y,i)=>{const u=ee,s=W,c=J,r=ae,h=Ke,w=Z,d=Q;return o(),_(d,{visible:g.value,"onUpdate:visible":i[5]||(i[5]=E=>g.value=E),"title-align":"start","align-center":!1,"esc-to-close":!1,"ok-loading":n.value,top:"15vh",width:"30vw",onBeforeCancel:$,onOk:S},{title:l(()=>i[6]||(i[6]=[f("div",{class:"model-title"},[f("b",null,"添加LLM")],-1)])),default:l(()=>[f("div",vl,[a(w,{model:e.value,ref:"formRef",rules:I,layout:M.value,onSubmit:V},{default:l(()=>[a(c,{field:"model_type",label:"模型类型"},{default:l(()=>[a(s,{modelValue:e.value.model_type,"onUpdate:modelValue":i[0]||(i[0]=E=>e.value.model_type=E)},{default:l(()=>[(o(!0),C(O,null,R(x.value,E=>(o(),_(u,{key:E,value:E},{default:l(()=>[D(k(E),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(c,{field:"llm_name",label:b.model_data.name=="Xinference"||b.model_data.name=="Ollama"?"模型UID":"模型名称"},{default:l(()=>[a(r,{modelValue:e.value.llm_name,"onUpdate:modelValue":i[1]||(i[1]=E=>e.value.llm_name=E),placeholder:"请输入模型名称"},null,8,["modelValue"])]),_:1},8,["label"]),a(c,{field:"api_base",label:"基础Url"},{default:l(()=>[a(r,{modelValue:e.value.api_base,"onUpdate:modelValue":i[2]||(i[2]=E=>e.value.api_base=E),placeholder:"请输入模型基础URL"},null,8,["modelValue"])]),_:1}),a(c,{field:"api_key",label:"API-Key"},{default:l(()=>[a(r,{modelValue:e.value.api_key,"onUpdate:modelValue":i[3]||(i[3]=E=>e.value.api_key=E),placeholder:"请输入apiKey(如果是本地部署的模型,请忽略它)"},null,8,["modelValue"])]),_:1}),a(c,{field:"max_tokens",label:"最大token数"},{default:l(()=>[a(h,{modelValue:e.value.max_tokens,"onUpdate:modelValue":i[4]||(i[4]=E=>e.value.max_tokens=E),placeholder:"这设置了模型输出的最大长度,以标记(单词或单词判断)的数量来衡量",min:0},null,8,["modelValue"])]),_:1})]),_:1},8,["model","layout"])])]),_:1},8,["visible","ok-loading"])}}},yl={class:"section"},gl={__name:"ModalAdd_2",props:{show_modal:Boolean,model_data:Object},emits:["ragClose","updateModelList"],setup(b,{emit:B}){const p=b,U=B,g=H(()=>p.show_modal),M=m("vertical"),n=m({api_key:"",base_url:"",llm_factory:""}),e={api_key:[{required:!0,message:"请输入api key(如果是本地部署的模型,请忽略它)"}]},I=m(!1);H(()=>p.model_data.model_types);const x=async()=>{if(n.value.api_key){I.value=!0;const A=await $(n.value);A.code/1===0?(q.success("添加成功"),U("updateModelList"),S()):q.error(A.message),I.value=!1}else q.error("缺少必填项")},S=()=>{U("ragClose")},$=async A=>{try{return await qe(A)}catch(V){console.log(V)}};return N(()=>{p.model_data.model_types.length&&(n.value.model_type=p.model_data.model_types[0]),n.value.llm_factory=p.model_data.name}),(A,V)=>{const y=ae,i=J,u=Z,s=Q;return o(),_(s,{visible:g.value,"onUpdate:visible":V[2]||(V[2]=c=>g.value=c),"title-align":"start","align-center":!1,"esc-to-close":!1,top:"15vh",width:"30vw","ok-loading":I.value,onBeforeCancel:S,onOk:x},{title:l(()=>V[3]||(V[3]=[f("div",{class:"model-title"},[f("b",null,"修改")],-1)])),default:l(()=>[f("div",yl,[a(u,{model:n.value,ref:"formRef",rules:e,layout:M.value},{default:l(()=>[a(i,{field:"api_key",label:"API-Key"},{default:l(()=>[a(y,{modelValue:n.value.api_key,"onUpdate:modelValue":V[0]||(V[0]=c=>n.value.api_key=c),placeholder:"请输入apiKey(如果是本地部署的模型,请忽略它)"},null,8,["modelValue"])]),_:1}),b.model_data.name==="OpenAI"?(o(),_(i,{key:0,field:"base_url",label:"Base-Url"},{default:l(()=>[a(y,{modelValue:n.value.base_url,"onUpdate:modelValue":V[1]||(V[1]=c=>n.value.base_url=c),placeholder:"https://api.openai.com/v1"},null,8,["modelValue"])]),_:1})):L("",!0)]),_:1},8,["model","layout"])])]),_:1},8,["visible","ok-loading"])}}},bl={class:"model-body"},kl={class:"body-item"},hl={class:"item-title"},Ml={class:"title"},wl={key:0},Vl={class:"body-item"},Ul={class:"item-title"},Ll={class:"title"},Cl={key:0,class:"card-list"},Il={class:"labels"},$l={class:"desc"},Al={__name:"MessageBody",setup(b){const{beforeEnter:B,enter:p,leave:U}=ue(1e3),g=m([]);m([{id:"1",name:"OpenAl",keyword:"LLM,TEXT",desc:"EMBEDDING,SPEECH2TEXT,MODERATION",img_src:"modelFrame4"},{id:"2",name:"Moonshot",keyword:"LLM,TEXT EMBEDDING",desc:"",img_src:"modelFrame5"},{id:"3",name:"ZHIPU-AI",keyword:"LLM,TEXT",desc:"EMBEDDING,SPEECH2TEXT,MODERATION",img_src:"modelFrame6"},{id:"4",name:"BaiChuan",keyword:"LLM,TEXT EMBEDDING",desc:"",img_src:"modelFrame7"},{id:"5",name:"DeepSeek",keyword:"LLM",desc:"",img_src:"modelFrame8"},{id:"6",name:"Mistral",keyword:"LLM,TEXT EMBEDDING",desc:"",img_src:"modelFrame9"},{id:"7",name:"StepFun",keyword:"LLM",desc:"",img_src:"modelFrame10"}]);const M=m({}),n=m({}),e=m([]),I=m(!0),x=m(!0),S=m(!1),$=m({}),A=m(!1),V=m({}),y=()=>{I.value=!I.value,I.value||g.value.forEach(t=>{t.show_more=!1})},i=()=>{x.value=!x.value},u=t=>{n.value[t.name].showMore=!n.value[t.name].showMore},s=async()=>{try{const t=await Pe();if(t.code/1===0){for(const P in t.data)t.data[P].showMore=!1,t.data[P].name=P;n.value={...t.data},console.log(n.value)}}catch(t){console.log(t)}},c=async()=>{try{const t=await Ge();if(t.code/1===0){M.value=t.data;const P=Object.keys(n.value);P.length?e.value=t.data.filter(v=>["OpenAI","Ollama","DeepSeek","OpenAI-API-Compatible","Xinference","HuggingFace"].includes(v.name)).filter(v=>!P.includes(v.name)):e.value=t.data.filter(v=>["OpenAI","Ollama","DeepSeek","OpenAI-API-Compatible","Xinference","HuggingFace"].includes(v.name))}}catch(t){console.log(t)}},r=async()=>{await s(),await c()},h=t=>{const P=M.value.find(v=>v.name===t);w(P)},w=async t=>{["OpenAI-API-Compatible","HuggingFace","Xinference","Ollama"].includes(t.name)&&(S.value=!0,$.value=t),["OpenAI","DeepSeek"].includes(t.name)&&(A.value=!0,V.value=t)},d=()=>{S.value=!1,$.value={}},E=()=>{A.value=!1,V.value={}};return N(async()=>{await s(),await c()}),(t,P)=>{const v=z("icon-up"),oe=z("icon-down"),T=be,ie=z("icon-plus"),re=se;return o(),C(O,null,[f("div",bl,[f("div",kl,[f("div",hl,[f("div",Ml,k(t.$t("management.addedModel")),1),f("div",{class:"icon",onClick:y},[I.value?(o(),C(O,{key:0},[D(k(t.$t("management.upBtn"))+" ",1),a(v)],64)):L("",!0),I.value?L("",!0):(o(),C(O,{key:1},[D(k(t.$t("management.downBtn"))+" ",1),a(oe)],64))])]),a(ne,{name:"expand-collapse",onBeforeEnter:G(B),onEnter:G(p),onLeave:G(U)},{default:l(()=>[I.value?(o(),C("div",wl,[(o(!0),C(O,null,R(n.value,(Y,te)=>(o(),_(pl,{key:te,model_item:Y,model_name:te,onShowMore:u,onUpdateAddModelRG:r,onToAddModel:h},{default:l(()=>[D(k(t.index),1)]),_:2},1032,["model_item","model_name"]))),128)),Object.keys(n.value).length?L("",!0):(o(),_(T,{key:0,class:"empty-list"}))])):L("",!0)]),_:1},8,["onBeforeEnter","onEnter","onLeave"])]),f("div",Vl,[f("div",Ul,[f("div",Ll,k(t.$t("management.unaddModel")),1),f("div",{class:"icon",onClick:i},[x.value?(o(),C(O,{key:0},[D(k(t.$t("management.upBtn"))+" ",1),a(v)],64)):L("",!0),x.value?L("",!0):(o(),C(O,{key:1},[D(k(t.$t("management.downBtn"))+" ",1),a(oe)],64))])]),a(ne,{name:"expand-collapse",onBeforeEnter:G(B),onEnter:G(p),onLeave:G(U)},{default:l(()=>[x.value?(o(),C("div",Cl,[(o(!0),C(O,null,R(e.value,Y=>(o(),_(ve,{key:Y.id,name:Y.name,img_src:Y.img_src,is_model:""},{labels:l(()=>[f("div",Il,k(Y.keyword),1)]),description:l(()=>[f("div",$l,k(Y.tags),1)]),bottom:l(()=>[a(re,{onClick:te=>w(Y)},{icon:l(()=>[a(ie)]),default:l(()=>[D(k(t.$t("management.addModelBtn")),1)]),_:2},1032,["onClick"])]),_:2},1032,["name","img_src"]))),128))])):L("",!0)]),_:1},8,["onBeforeEnter","onEnter","onLeave"]),e.value.length?L("",!0):(o(),_(T,{key:0,class:"empty-list"}))])]),S.value?(o(),_(fl,{key:0,show_modal:S.value,model_data:$.value,onRagClose:d,onUpdateModelList:r},null,8,["show_modal","model_data"])):L("",!0),A.value?(o(),_(gl,{key:1,show_modal:A.value,model_data:V.value,onRagClose:E,onUpdateModelList:r},null,8,["show_modal","model_data"])):L("",!0)],64)}}},El=le(Al,[["__scopeId","data-v-f8f90ee6"]]),Ol={class:"collapse-item"},Dl={class:"name"},Bl={class:"tag"},Sl={__name:"CollapseItem",props:{models:{type:Object,required:!0}},emits:["toDeleteLLm"],setup(b,{emit:B}){const p=B,U=g=>{p("toDeleteLLm",g)};return(g,M)=>{const n=fe,e=z("icon-delete");return o(),C("div",Ol,[f("div",Dl,k(b.models.model),1),f("div",Bl,[a(n,null,{default:l(()=>[D(k(b.models.model_type),1)]),_:1})]),a(e,{class:"delete-icon",onClick:M[0]||(M[0]=I=>U(b.models))})])}}},xl=le(Sl,[["__scopeId","data-v-0b61c642"]]),Fl={class:"model-list"},Tl={class:"list-header"},Rl={class:"list-info"},ql=["src"],Pl={class:"info-desc"},Gl={class:"name"},Xl={class:"desc"},Hl={class:"list-tools"},zl={key:0,class:"list-collapse"},Nl={__name:"ModelList",props:{model_item:{request:!0,type:Object},model_name:{request:!0,type:String}},emits:["showMore","updateAddModelDify","toAddModel"],setup(b,{emit:B}){const p=b,U=B,g=m(!1),M=m({}),{beforeEnter:n,enter:e,leave:I}=ue(1e3),x=()=>{U("toAddModel",p.model_name)},S=async()=>{await A()},$=y=>{U("showMore",y)},A=async()=>{try{await Xe(M.value.provider,{model:M.value.model,model_type:M.value.model_type}),M.value={},g.value=!1,q.success("删除成功")}catch{}finally{U("updateAddModelDify"),delete_llm_name.value={},g.value=!1}},V=y=>{M.value={model:y.model,model_type:y.model_type,provider:y.provider.provider},g.value=!0};return(y,i)=>{const u=z("icon-plus"),s=se,c=z("icon-down"),r=z("icon-up"),h=me;return o(),C(O,null,[f("div",Fl,[f("div",Tl,[f("div",Rl,[f("img",{class:"icon",src:G(ye)(b.model_name),alt:""},null,8,ql),f("div",Pl,[f("div",Gl,k(b.model_name),1),f("div",Xl,k(b.model_item.supported_model_types.join(",")),1)])]),f("div",Hl,[a(h,null,{default:l(()=>[["OpenAI-API-compatible","HuggingFace","Xorbits Inference","Ollama"].includes(b.model_name)?(o(),_(s,{key:0,onClick:x},{icon:l(()=>[a(u)]),default:l(()=>[D(" "+k(y.$t("management.addModelBtn")),1)]),_:1})):L("",!0),["OpenAI","DeepSeek"].includes(b.model_item.name)?(o(),_(s,{key:1,onClick:x},{icon:l(()=>[a(u)]),default:l(()=>[i[2]||(i[2]=D(" API_Key "))]),_:1})):L("",!0),a(s,{onClick:i[0]||(i[0]=w=>$(b.model_item))},{default:l(()=>[D(k(y.$t("management.showMoreModelBtn"))+" ",1),b.model_item.showMore?(o(),_(c,{key:0})):L("",!0),b.model_item.showMore?L("",!0):(o(),_(r,{key:1}))]),_:1})]),_:1})])]),a(ne,{name:"expand-collapse",onBeforeEnter:G(n),onEnter:G(e),onLeave:G(I)},{default:l(()=>[b.model_item.showMore?(o(),C("div",zl,[(o(!0),C(O,null,R(b.model_item.llm,(w,d)=>(o(),_(xl,{key:d,models:w,onToDeleteLLm:V},null,8,["models"]))),128))])):L("",!0)]),_:1},8,["onBeforeEnter","onEnter","onLeave"])]),a(ge,{visible:g.value,onOk:S,onCancel:i[1]||(i[1]=w=>g.value=!1)},null,8,["visible"])],64)}}},Kl=le(Nl,[["__scopeId","data-v-eef490d8"]]),Yl={class:"model-title"},jl={class:"section"},Zl={__name:"ModalAdd_1",props:{show_modal:Boolean,model_data:Object},emits:["difyClose","updateModelList"],setup(b,{emit:B}){const p=b,U=B,g=H(()=>p.show_modal),M=m("vertical"),n=m(!1),e=m({model_type:"",model:"",credentials:{api_key:"",model_uid:"",server_url:""},load_balancing:{configs:[],enabled:!1}}),I={model_type:[{required:!0,message:"模型类型必填"}],model:[{required:!0,message:"模型名称必填"}],"credentials.server_url":[{required:!0,message:"服务器URL必填"}],"credentials.model_uid":[{required:!0,message:"模型UID必填"}]},x=H(()=>p.model_data.supported_model_types),S=async()=>{try{if(e.value.model_type&&e.value.model&&e.value.credentials.server_url&&e.value.credentials.model_uid){n.value=!0;const y=await A(p.model_data.provider,e.value);y&&y.result==="success"?(q.success("添加成功"),U("updateModelList"),$()):q.error(y.message),n.value=!1}else q.error("缺少必填项")}catch{}finally{n.value=!1}},$=()=>{U("difyClose")},A=async(y,i)=>{var u,s;try{return await de(y,i)}catch(c){console.log(c),q.error((s=(u=c.response)==null?void 0:u.data)==null?void 0:s.message)}},V=()=>{};return N(()=>{p.model_data.supported_model_types.length&&(e.value.model_type=p.model_data.supported_model_types[0])}),(y,i)=>{const u=ee,s=W,c=J,r=ae,h=Z,w=Q;return o(),_(w,{visible:g.value,"onUpdate:visible":i[5]||(i[5]=d=>g.value=d),"title-align":"start","align-center":!1,"esc-to-close":!1,"ok-loading":n.value,top:"15vh",width:"30vw",onBeforeCancel:$,onOk:S},{title:l(()=>[f("div",Yl,[f("b",null,"添加  "+k(p.model_data.label.en_US),1)])]),default:l(()=>[f("div",jl,[a(h,{model:e.value,ref:"formRef",rules:I,layout:M.value,onSubmit:V},{default:l(()=>[a(c,{field:"model_type",label:"模型类型"},{default:l(()=>[a(s,{modelValue:e.value.model_type,"onUpdate:modelValue":i[0]||(i[0]=d=>e.value.model_type=d)},{default:l(()=>[(o(!0),C(O,null,R(x.value,d=>(o(),_(u,{key:d,value:d},{default:l(()=>[D(k(d),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(c,{field:"model",label:"模型名称"},{default:l(()=>[a(r,{modelValue:e.value.model,"onUpdate:modelValue":i[1]||(i[1]=d=>e.value.model=d),placeholder:"请输入模型名称"},null,8,["modelValue"])]),_:1}),a(c,{field:"credentials.server_url",label:"服务器Url"},{default:l(()=>[a(r,{modelValue:e.value.credentials.server_url,"onUpdate:modelValue":i[2]||(i[2]=d=>e.value.credentials.server_url=d),placeholder:"请输入服务器地址"},null,8,["modelValue"])]),_:1}),a(c,{field:"credentials.model_uid",label:"模型UID"},{default:l(()=>[a(r,{modelValue:e.value.credentials.model_uid,"onUpdate:modelValue":i[3]||(i[3]=d=>e.value.credentials.model_uid=d),placeholder:"请输入模型UID"},null,8,["modelValue"])]),_:1}),a(c,{field:"api_key",label:"API密钥"},{default:l(()=>[a(r,{modelValue:e.value.credentials.api_key,"onUpdate:modelValue":i[4]||(i[4]=d=>e.value.credentials.api_key=d),placeholder:"请输入API密钥"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","layout"])])]),_:1},8,["visible","ok-loading"])}}},Jl={class:"model-title"},Ql={class:"section"},Wl={__name:"ModalAdd_2",props:{show_modal:Boolean,model_data:Object},emits:["difyClose","updateModelList"],setup(b,{emit:B}){const p=b,U=B,g=H(()=>p.show_modal),M=m("vertical"),n=m(!1),e=m({model_type:"",model:"",credentials:{openai_api_key:"",openai_api_base:"",openai_organization:""},load_balancing:{configs:[],enabled:!1}}),I={model_type:[{required:!0,message:"模型类型必填"}],model:[{required:!0,message:"模型名称必填"}],"credentials.openai_api_key":[{required:!0,message:"API Key必填"}]},x=H(()=>p.model_data.supported_model_types),S=async()=>{try{if(e.value.model_type&&e.value.model&&e.value.credentials.openai_api_key){n.value=!0;const y=await A(p.model_data.provider,e.value);y&&y.result==="success"&&(U("updateModelList"),$()),n.value=!1}else q.error("缺少必填项")}catch{}finally{n.value=!1}},$=()=>{U("difyClose")},A=async(y,i)=>{var u,s;try{return await de(y,i)}catch(c){console.log(c),q.error((s=(u=c.response)==null?void 0:u.data)==null?void 0:s.message)}},V=()=>{};return N(()=>{p.model_data.supported_model_types.length&&(e.value.model_type=p.model_data.supported_model_types[0])}),(y,i)=>{const u=ee,s=W,c=J,r=ae,h=Z,w=Q;return o(),_(w,{visible:g.value,"onUpdate:visible":i[5]||(i[5]=d=>g.value=d),"title-align":"start","align-center":!1,"esc-to-close":!1,"ok-loading":n.value,top:"15vh",width:"30vw",onBeforeCancel:$,onOk:S},{title:l(()=>[f("div",Jl,[f("b",null,"添加  "+k(p.model_data.label.en_US),1)])]),default:l(()=>[f("div",Ql,[a(h,{model:e.value,ref:"formRef",rules:I,layout:M.value,onSubmit:V},{default:l(()=>[a(c,{field:"model_type",label:"模型类型"},{default:l(()=>[a(s,{modelValue:e.value.model_type,"onUpdate:modelValue":i[0]||(i[0]=d=>e.value.model_type=d)},{default:l(()=>[(o(!0),C(O,null,R(x.value,d=>(o(),_(u,{key:d,value:d},{default:l(()=>[D(k(d),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(c,{field:"model",label:"模型名称"},{default:l(()=>[a(r,{modelValue:e.value.model,"onUpdate:modelValue":i[1]||(i[1]=d=>e.value.model=d),placeholder:"请输入模型名称"},null,8,["modelValue"])]),_:1}),a(c,{field:"credentials.openai_api_key",label:"API Key"},{default:l(()=>[a(r,{modelValue:e.value.credentials.openai_api_key,"onUpdate:modelValue":i[2]||(i[2]=d=>e.value.credentials.openai_api_key=d),placeholder:"请输入API Key"},null,8,["modelValue"])]),_:1}),a(c,{field:"credentials.openai_organization",label:"组织 ID"},{default:l(()=>[a(r,{modelValue:e.value.credentials.openai_organization,"onUpdate:modelValue":i[3]||(i[3]=d=>e.value.credentials.openai_organization=d),placeholder:"请输入组织 ID"},null,8,["modelValue"])]),_:1}),a(c,{field:"credentials.openai_api_base",label:"API Base"},{default:l(()=>[a(r,{modelValue:e.value.credentials.openai_api_base,"onUpdate:modelValue":i[4]||(i[4]=d=>e.value.credentials.openai_api_base=d),placeholder:"请输入API Base"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","layout"])])]),_:1},8,["visible","ok-loading"])}}},ea={class:"model-title"},la={class:"section"},aa={__name:"ModalAdd_3",props:{show_modal:Boolean,model_data:Object},emits:["difyClose","updateModelList"],setup(b,{emit:B}){const p=b,U=B,g=H(()=>p.show_modal),M=m("vertical"),n=m(!1),e=m({model_type:"",model:"",credentials:{api_key:"",endpoint_url:"",context_size:"4096",function_calling_type:"no_call",max_tokens_to_sample:"4096",mode:"chat",stream_function_calling:"not_supported",stream_mode_delimiter:"\\n\\n",vision_support:"no_support"},load_balancing:{configs:[],enabled:!1}}),I={model_type:[{required:!0,message:"模型类型必填"}],model:[{required:!0,message:"模型名称必填"}],"credentials.endpoint_url":[{required:!0,message:"API endpoint URL必填"}],"credentials.context_size":[{required:!0,message:"模型上下文长度必填"}],"credentials.max_tokens_to_sample":[{required:!0,message:"最大token上限必填"}],"credentials.stream_mode_delimiter":[{required:!0,message:"流模式返回结果的分隔符必填"}]},x=m([{label:"补全",value:"completion"},{label:"对话",value:"chat"}]),S=m([{label:"Function Call",value:"function_call"},{label:"Tool Call",value:"tool_call"},{label:"不支持",value:"no_call"}]),$=m([{label:"不支持",value:"not_supported"},{label:"支持",value:"supported"}]),A=m([{label:"不支持",value:"no_support"},{label:"支持",value:"support"}]),V=H(()=>p.model_data.supported_model_types),y=async()=>{try{if(e.value.model_type&&e.value.model&&e.value.credentials.endpoint_url&&e.value.credentials.context_size&&e.value.credentials.max_tokens_to_sample&&e.value.credentials.stream_mode_delimiter){n.value=!0;const c=await u(p.model_data.provider,e.value);c&&c.result==="success"&&(U("updateModelList"),i()),n.value=!1}else q.error("缺少必填项")}catch{}finally{n.value=!1}},i=()=>{U("difyClose")},u=async(c,r)=>{var h,w;try{return await de(c,r)}catch(d){console.log(d),q.error((w=(h=d.response)==null?void 0:h.data)==null?void 0:w.message)}},s=()=>{};return N(()=>{p.model_data.supported_model_types.length&&(e.value.model_type=p.model_data.supported_model_types[0])}),(c,r)=>{const h=ee,w=W,d=J,E=ae,t=Z,P=Q;return o(),_(P,{visible:g.value,"onUpdate:visible":r[11]||(r[11]=v=>g.value=v),"title-align":"start","align-center":!1,"esc-to-close":!1,"ok-loading":n.value,top:"15vh",width:"30vw",onBeforeCancel:i,onOk:y},{title:l(()=>[f("div",ea,[f("b",null,"添加  "+k(p.model_data.label.en_US),1)])]),default:l(()=>[f("div",la,[a(t,{model:e.value,ref:"formRef",rules:I,layout:M.value,onSubmit:s},{default:l(()=>[a(d,{field:"model_type",label:"模型类型"},{default:l(()=>[a(w,{modelValue:e.value.model_type,"onUpdate:modelValue":r[0]||(r[0]=v=>e.value.model_type=v)},{default:l(()=>[(o(!0),C(O,null,R(V.value,v=>(o(),_(h,{key:v,value:v},{default:l(()=>[D(k(v),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(d,{field:"model",label:"模型名称"},{default:l(()=>[a(E,{modelValue:e.value.model,"onUpdate:modelValue":r[1]||(r[1]=v=>e.value.model=v),placeholder:"请输入模型名称"},null,8,["modelValue"])]),_:1}),a(d,{field:"api_key",label:"API Key"},{default:l(()=>[a(E,{modelValue:e.value.credentials.api_key,"onUpdate:modelValue":r[2]||(r[2]=v=>e.value.credentials.api_key=v),placeholder:"请输入API Key"},null,8,["modelValue"])]),_:1}),a(d,{field:"credentials.endpoint_url",label:"API endpoint URL"},{default:l(()=>[a(E,{modelValue:e.value.credentials.endpoint_url,"onUpdate:modelValue":r[3]||(r[3]=v=>e.value.credentials.endpoint_url=v),placeholder:"Base URL,e.g.https://api.openai.com/v1"},null,8,["modelValue"])]),_:1}),e.value.model_type==="llm"?(o(),_(d,{key:0,field:"credentials.mode",label:"Completion mode"},{default:l(()=>[a(w,{modelValue:e.value.credentials.mode,"onUpdate:modelValue":r[4]||(r[4]=v=>e.value.credentials.mode=v),"allow-clear":"",placeholder:"选择对话类型"},{default:l(()=>[(o(!0),C(O,null,R(x.value,v=>(o(),_(h,{key:v.value,value:v.value},{default:l(()=>[D(k(v.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1})):L("",!0),e.value.model_type!=="speech2text"?(o(),_(d,{key:1,field:"credentials.context_size",label:"模型上下文长度"},{default:l(()=>[a(E,{modelValue:e.value.credentials.context_size,"onUpdate:modelValue":r[5]||(r[5]=v=>e.value.credentials.context_size=v),placeholder:"请输入模型上下文长度"},null,8,["modelValue"])]),_:1})):L("",!0),e.value.model_type==="llm"?(o(),_(d,{key:2,field:"credentials.max_tokens_to_sample",label:"最大token上限"},{default:l(()=>[a(E,{modelValue:e.value.credentials.max_tokens_to_sample,"onUpdate:modelValue":r[6]||(r[6]=v=>e.value.credentials.max_tokens_to_sample=v)},null,8,["modelValue"])]),_:1})):L("",!0),e.value.model_type==="llm"?(o(),_(d,{key:3,field:"credentials.function_calling_type",label:"Function calling"},{default:l(()=>[a(w,{modelValue:e.value.credentials.function_calling_type,"onUpdate:modelValue":r[7]||(r[7]=v=>e.value.credentials.function_calling_type=v),"allow-clear":"",placeholder:"请选择"},{default:l(()=>[(o(!0),C(O,null,R(S.value,v=>(o(),_(h,{key:v.value,value:v.value},{default:l(()=>[D(k(v.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1})):L("",!0),e.value.model_type==="llm"?(o(),_(d,{key:4,field:"credentials.stream_function_calling",label:"Stream function calling"},{default:l(()=>[a(w,{modelValue:e.value.credentials.stream_function_calling,"onUpdate:modelValue":r[8]||(r[8]=v=>e.value.credentials.stream_function_calling=v),"allow-clear":"",placeholder:"请选择"},{default:l(()=>[(o(!0),C(O,null,R($.value,v=>(o(),_(h,{key:v.value,value:v.value},{default:l(()=>[D(k(v.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1})):L("",!0),e.value.model_type==="llm"?(o(),_(d,{key:5,field:"credentials.vision_support",label:"Vision 支持"},{default:l(()=>[a(w,{modelValue:e.value.credentials.vision_support,"onUpdate:modelValue":r[9]||(r[9]=v=>e.value.credentials.vision_support=v),"allow-clear":"",placeholder:"请选择"},{default:l(()=>[(o(!0),C(O,null,R(A.value,v=>(o(),_(h,{key:v.value,value:v.value},{default:l(()=>[D(k(v.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1})):L("",!0),e.value.model_type==="llm"?(o(),_(d,{key:6,field:"credentials.stream_mode_delimiter",label:"流模式返回结果的分隔符"},{default:l(()=>[a(E,{modelValue:e.value.credentials.stream_mode_delimiter,"onUpdate:modelValue":r[10]||(r[10]=v=>e.value.credentials.stream_mode_delimiter=v),placeholder:"请输入模型UID"},null,8,["modelValue"])]),_:1})):L("",!0)]),_:1},8,["model","layout"])])]),_:1},8,["visible","ok-loading"])}}},oa=le(aa,[["__scopeId","data-v-9178ccbe"]]),ta={class:"model-title"},na={class:"section"},da={__name:"ModalAdd_4",props:{show_modal:Boolean,model_data:Object},emits:["difyClose","updateModelList"],setup(b,{emit:B}){const p=b,U=B,g=H(()=>p.show_modal),M=m("vertical"),n=m(!1),e=m({model_type:"",model:"",credentials:{huggingfacehub_api_type:"hosted_inference_api",huggingfacehub_api_token:"",huggingfacehub_endpoint_url:"",task_type:""},load_balancing:{configs:[],enabled:!1}}),I={model_type:[{required:!0,message:"模型类型必填"}],model:[{required:!0,message:"模型名称必填"}],"credentials.huggingfacehub_api_token":[{required:!0,message:"API Token必填"}],"credentials.huggingfacehub_api_type":[{required:!0,message:"端点类型必填"}],"credentials.huggingfacehub_endpoint_url":[{required:!0,message:"端点URL必填"}],"credentials.task_type":[{required:!0,message:"Task必填"}]},x=m([{label:"Hosted Inference API",value:"hosted_inference_api"},{label:"Inference Endpoints",value:"inference_endpoints"}]),S=m([{label:"Text-to-Text Generation",value:"text2text-generation"},{label:"文本生成",value:"text-generation"}]),$=H(()=>p.model_data.supported_model_types),A=async()=>{try{let u=!1;if(e.value.credentials.huggingfacehub_api_type==="hosted_inference_api"&&(e.value.model_type&&e.value.model&&e.value.credentials.huggingfacehub_api_token?u=!0:u=!1),e.value.credentials.huggingfacehub_api_type==="inference_endpoints"&&(e.value.model_type&&e.value.model&&e.value.credentials.huggingfacehub_api_token&&e.value.credentials.huggingfacehub_endpoint_url&&e.value.credentials.task_type?u=!0:u=!1),u){n.value=!0;const s=await y(p.model_data.provider,e.value);s&&s.result==="success"&&(U("updateModelList"),V()),n.value=!1}else q.error("缺少必填项")}catch{}finally{n.value=!1}},V=()=>{U("difyClose")},y=async(u,s)=>{var c,r;try{return await de(u,s)}catch(h){console.log(h),q.error((r=(c=h.response)==null?void 0:c.data)==null?void 0:r.message)}},i=()=>{};return N(()=>{p.model_data.supported_model_types.length&&(e.value.model_type=p.model_data.supported_model_types[0])}),(u,s)=>{const c=ee,r=W,h=J,w=ae,d=Z,E=Q;return o(),_(E,{visible:g.value,"onUpdate:visible":s[6]||(s[6]=t=>g.value=t),"title-align":"start","align-center":!1,"esc-to-close":!1,"ok-loading":n.value,top:"15vh",width:"30vw",onBeforeCancel:V,onOk:A},{title:l(()=>[f("div",ta,[f("b",null,"添加  "+k(p.model_data.label.en_US),1)])]),default:l(()=>[f("div",na,[a(d,{model:e.value,ref:"formRef",rules:I,layout:M.value,onSubmit:i},{default:l(()=>[a(h,{field:"model_type",label:"模型类型"},{default:l(()=>[a(r,{modelValue:e.value.model_type,"onUpdate:modelValue":s[0]||(s[0]=t=>e.value.model_type=t)},{default:l(()=>[(o(!0),C(O,null,R($.value,t=>(o(),_(c,{key:t,value:t},{default:l(()=>[D(k(t),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(h,{field:"model",label:"模型名称"},{default:l(()=>[a(w,{modelValue:e.value.model,"onUpdate:modelValue":s[1]||(s[1]=t=>e.value.model=t),placeholder:"请输入模型名称"},null,8,["modelValue"])]),_:1}),a(h,{field:"credentials.huggingfacehub_api_type",label:"端点类型"},{default:l(()=>[a(r,{modelValue:e.value.credentials.huggingfacehub_api_type,"onUpdate:modelValue":s[2]||(s[2]=t=>e.value.credentials.huggingfacehub_api_type=t)},{default:l(()=>[(o(!0),C(O,null,R(x.value,t=>(o(),_(c,{key:t.value,value:t.value},{default:l(()=>[D(k(t.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(h,{field:"credentials.huggingfacehub_api_token",label:"API Token"},{default:l(()=>[a(w,{modelValue:e.value.credentials.huggingfacehub_api_token,"onUpdate:modelValue":s[3]||(s[3]=t=>e.value.credentials.huggingfacehub_api_token=t),placeholder:"请输入API Token"},null,8,["modelValue"])]),_:1}),e.value.credentials.huggingfacehub_api_type==="inference_endpoints"?(o(),_(h,{key:0,field:"credentials.huggingfacehub_endpoint_url",label:"端点 URL"},{default:l(()=>[a(w,{modelValue:e.value.credentials.huggingfacehub_endpoint_url,"onUpdate:modelValue":s[4]||(s[4]=t=>e.value.credentials.huggingfacehub_endpoint_url=t),placeholder:"请输入端点 URL"},null,8,["modelValue"])]),_:1})):L("",!0),e.value.credentials.huggingfacehub_api_type==="inference_endpoints"?(o(),_(h,{key:1,field:"credentials.task_type",label:"Task"},{default:l(()=>[a(r,{modelValue:e.value.credentials.task_type,"onUpdate:modelValue":s[5]||(s[5]=t=>e.value.credentials.task_type=t),placeholder:"请选择"},{default:l(()=>[(o(!0),C(O,null,R(S.value,t=>(o(),_(c,{key:t.value,value:t.value},{default:l(()=>[D(k(t.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1})):L("",!0)]),_:1},8,["model","layout"])])]),_:1},8,["visible","ok-loading"])}}},sa=le(da,[["__scopeId","data-v-1e5dee75"]]),ua={class:"model-title"},ia={class:"section"},ra={__name:"ModalAdd_5",props:{show_modal:Boolean,model_data:Object},emits:["difyClose","updateModelList"],setup(b,{emit:B}){const p=b,U=B,g=H(()=>p.show_modal),M=m("vertical"),n=m(!1),e=m({model_type:"",model:"",credentials:{base_url:"",context_size:"4096",max_tokens:"4096",mode:"chat",vision_support:!1},load_balancing:{configs:[],enabled:!1}}),I={model_type:[{required:!0,message:"模型类型必填"}],model:[{required:!0,message:"模型名称必填"}],"credentials.base_url":[{required:!0,message:"基础 URL必填"}],"credentials.context_size":[{required:!0,message:"模型上下文长度必填"}],"credentials.max_tokens":[{required:!0,message:"最大token上限必填"}],"credentials.stream_mode_delimiter":[{required:!0,message:"流模式返回结果的分隔符必填"}]},x=m([{label:"补全",value:"completion"},{label:"对话",value:"chat"}]),S=m([{label:"不支持",value:!1},{label:"支持",value:!0}]),$=H(()=>p.model_data.supported_model_types),A=async()=>{try{let u=!1;if(e.value.model_type==="llm"&&e.value.model&&e.value.credentials.base_url&&e.value.credentials.context_size&&e.value.credentials.max_tokens&&(u=!0),e.value.model_type==="text-embedding"&&e.value.model&&e.value.credentials.base_url&&e.value.credentials.context_size&&(u=!0),u){n.value=!0;const s=await y(p.model_data.provider,e.value);s&&s.result==="success"&&(U("updateModelList"),V()),n.value=!1}else q.error("缺少必填项")}catch{}finally{n.value=!1}},V=()=>{U("difyClose")},y=async(u,s)=>{var c,r;try{return await de(u,s)}catch(h){console.log(h),q.error((r=(c=h.response)==null?void 0:c.data)==null?void 0:r.message)}},i=()=>{};return N(()=>{p.model_data.supported_model_types.length&&(e.value.model_type=p.model_data.supported_model_types[0])}),(u,s)=>{const c=ee,r=W,h=J,w=ae,d=Z,E=Q;return o(),_(E,{visible:g.value,"onUpdate:visible":s[7]||(s[7]=t=>g.value=t),"title-align":"start","align-center":!1,"esc-to-close":!1,"ok-loading":n.value,top:"15vh",width:"30vw",onBeforeCancel:V,onOk:A},{title:l(()=>[f("div",ua,[f("b",null,"添加  "+k(p.model_data.label.en_US),1)])]),default:l(()=>[f("div",ia,[a(d,{model:e.value,ref:"formRef",rules:I,layout:M.value,onSubmit:i},{default:l(()=>[a(h,{field:"model_type",label:"模型类型"},{default:l(()=>[a(r,{modelValue:e.value.model_type,"onUpdate:modelValue":s[0]||(s[0]=t=>e.value.model_type=t)},{default:l(()=>[(o(!0),C(O,null,R($.value,t=>(o(),_(c,{key:t,value:t},{default:l(()=>[D(k(t),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1}),a(h,{field:"model",label:"模型名称"},{default:l(()=>[a(w,{modelValue:e.value.model,"onUpdate:modelValue":s[1]||(s[1]=t=>e.value.model=t),placeholder:"请输入模型名称"},null,8,["modelValue"])]),_:1}),a(h,{field:"credentials.base_url",label:"基础 URL"},{default:l(()=>[a(w,{modelValue:e.value.credentials.base_url,"onUpdate:modelValue":s[2]||(s[2]=t=>e.value.credentials.base_url=t),placeholder:"Ollama server的基础URL"},null,8,["modelValue"])]),_:1}),e.value.model_type==="llm"?(o(),_(h,{key:0,field:"credentials.mode",label:"模型类型"},{default:l(()=>[a(r,{modelValue:e.value.credentials.mode,"onUpdate:modelValue":s[3]||(s[3]=t=>e.value.credentials.mode=t),placeholder:"选择对话类型","allow-clear":""},{default:l(()=>[(o(!0),C(O,null,R(x.value,t=>(o(),_(c,{key:t.value,value:t.value},{default:l(()=>[D(k(t.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1})):L("",!0),a(h,{field:"credentials.context_size",label:"模型上下文长度"},{default:l(()=>[a(w,{modelValue:e.value.credentials.context_size,"onUpdate:modelValue":s[4]||(s[4]=t=>e.value.credentials.context_size=t),placeholder:"请输入模型上下文长度"},null,8,["modelValue"])]),_:1}),e.value.model_type==="llm"?(o(),_(h,{key:1,field:"credentials.max_tokens",label:"最大token上限"},{default:l(()=>[a(w,{modelValue:e.value.credentials.max_tokens,"onUpdate:modelValue":s[5]||(s[5]=t=>e.value.credentials.max_tokens=t)},null,8,["modelValue"])]),_:1})):L("",!0),e.value.model_type==="llm"?(o(),_(h,{key:2,field:"credentials.vision_support",label:"Vision 支持"},{default:l(()=>[a(r,{modelValue:e.value.credentials.vision_support,"onUpdate:modelValue":s[6]||(s[6]=t=>e.value.credentials.vision_support=t),"allow-clear":"",placeholder:"请选择"},{default:l(()=>[(o(!0),C(O,null,R(S.value,t=>(o(),_(c,{key:t.value,value:t.value},{default:l(()=>[D(k(t.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["modelValue"])]),_:1})):L("",!0)]),_:1},8,["model","layout"])])]),_:1},8,["visible","ok-loading"])}}},ma=le(ra,[["__scopeId","data-v-42678865"]]),ca={class:"model-title"},_a={class:"section"},pa={__name:"ModalAdd_6",props:{show_modal:Boolean,model_data:Object},emits:["difyClose","updateModelList"],setup(b,{emit:B}){const p=b,U=B,g=H(()=>p.show_modal),M=m("vertical"),n=m(!1),e=m({config_from:"predefined-model",credentials:{api_key:"",endpoint_url:""},load_balancing:{configs:[],enabled:!1}}),I={"credentials.api_key":[{required:!0,message:"API Key必填"}]};H(()=>p.model_data.supported_model_types);const x=async()=>{try{if(e.value.credentials.api_key){n.value=!0;const V=await $(p.model_data.provider,e.value);V&&V.result==="success"&&(U("updateModelList"),S()),n.value=!1}else q.error("缺少必填项")}catch{}finally{n.value=!1}},S=()=>{U("difyClose")},$=async(V,y)=>{var i,u;try{return await He(V,y)}catch(s){console.log(s),q.error((u=(i=s.response)==null?void 0:i.data)==null?void 0:u.message)}},A=()=>{};return N(()=>{}),(V,y)=>{const i=ae,u=J,s=Z,c=Q;return o(),_(c,{visible:g.value,"onUpdate:visible":y[2]||(y[2]=r=>g.value=r),"title-align":"start","align-center":!1,"esc-to-close":!1,"ok-loading":n.value,top:"15vh",width:"30vw",onBeforeCancel:S,onOk:x},{title:l(()=>[f("div",ca,[f("b",null,"设置  "+k(p.model_data.label.en_US),1)])]),default:l(()=>[f("div",_a,[a(s,{model:e.value,ref:"formRef",rules:I,layout:M.value,onSubmit:A},{default:l(()=>[a(u,{field:"credentials.api_key",label:"API Key"},{default:l(()=>[a(i,{modelValue:e.value.credentials.api_key,"onUpdate:modelValue":y[0]||(y[0]=r=>e.value.credentials.api_key=r),placeholder:"请输入API Key"},null,8,["modelValue"])]),_:1}),a(u,{field:"credentials.endpoint_url",label:"自定义 API endpoint 地址"},{default:l(()=>[a(i,{modelValue:e.value.credentials.endpoint_url,"onUpdate:modelValue":y[1]||(y[1]=r=>e.value.credentials.endpoint_url=r),placeholder:"Base URL"},null,8,["modelValue"])]),_:1})]),_:1},8,["model","layout"])])]),_:1},8,["visible","ok-loading"])}}},va={class:"model-body"},fa={class:"body-item"},ya={class:"item-title"},ga={class:"title"},ba={key:0},ka={class:"body-item"},ha={class:"item-title"},Ma={class:"title"},wa={key:0,class:"card-list"},Va={class:"labels"},Ua={class:"desc"},La={__name:"MessageBody",setup(b){const{beforeEnter:B,enter:p,leave:U}=ue(1e3);m([]),m([{id:"1",name:"OpenAl",keyword:"LLM,TEXT",desc:"EMBEDDING,SPEECH2TEXT,MODERATION",img_src:"modelFrame4"},{id:"2",name:"Moonshot",keyword:"LLM,TEXT EMBEDDING",desc:"",img_src:"modelFrame5"},{id:"3",name:"ZHIPU-AI",keyword:"LLM,TEXT",desc:"EMBEDDING,SPEECH2TEXT,MODERATION",img_src:"modelFrame6"},{id:"4",name:"BaiChuan",keyword:"LLM,TEXT EMBEDDING",desc:"",img_src:"modelFrame7"},{id:"5",name:"DeepSeek",keyword:"LLM",desc:"",img_src:"modelFrame8"},{id:"6",name:"Mistral",keyword:"LLM,TEXT EMBEDDING",desc:"",img_src:"modelFrame9"},{id:"7",name:"StepFun",keyword:"LLM",desc:"",img_src:"modelFrame10"}]);const g=m({}),M=m([]),n=m([]),e=m(!0),I=m(!0),x=m(!1),S=m({}),$=m(!1),A=m({}),V=m(!1),y=m({}),i=m(!1),u=m({}),s=m(!1),c=m({}),r=m(!1),h=m({}),w=()=>{e.value=!e.value},d=()=>{I.value=!I.value},E=async F=>{if(F.showMore){g.value.forEach(K=>{K.provider===F.provider&&(K.showMore=!1)});return}const X=await t(F.provider);X.data&&g.value.forEach(K=>{K.provider===F.provider&&(K.showMore=!0,K.llm=X.data)})},t=async F=>{try{return await Ne(F)}catch(X){console.log(X)}},P=async()=>{try{const F=await ze();F.data&&(n.value=F.data,M.value=F.data.filter(X=>["openai","ollama","deepseek","openai_api_compatible","xinference","huggingface_hub"].includes(X.provider)).filter(X=>X.custom_configuration.status==="no-configure"),g.value=F.data.filter(X=>["openai","ollama","deepseek","openai_api_compatible","xinference","huggingface_hub"].includes(X.provider)).filter(X=>X.custom_configuration.status==="active").map(X=>({...X,showMore:!1})))}catch(F){console.log(F)}},v=async()=>{await P()},oe=F=>{const X=n.value.find(K=>K.label.en_US===F);T(X)},T=async F=>{["xinference"].includes(F.provider)&&(x.value=!0,S.value=F),["openai_api_compatible"].includes(F.provider)&&($.value=!0,A.value=F),["openai"].includes(F.provider)&&(V.value=!0,y.value=F),["huggingface_hub"].includes(F.provider)&&(i.value=!0,u.value=F),["ollama"].includes(F.provider)&&(s.value=!0,c.value=F),["deepseek"].includes(F.provider)&&(r.value=!0,h.value=F)},ie=()=>{x.value=!1,S.value={}},re=()=>{V.value=!1,y.value={}},Y=()=>{$.value=!1,A.value={}},te=()=>{i.value=!1,u.value={}},ke=()=>{s.value=!1,c.value={}},he=()=>{r.value=!1,h.value={}};return N(()=>{P()}),(F,X)=>{const K=z("icon-up"),ce=z("icon-down"),_e=be,Me=z("icon-plus"),we=se;return o(),C(O,null,[f("div",va,[f("div",fa,[f("div",ya,[f("div",ga,k(F.$t("management.addedModel")),1),f("div",{class:"icon",onClick:w},[e.value?(o(),C(O,{key:0},[D(k(F.$t("management.upBtn"))+" ",1),a(K)],64)):L("",!0),e.value?L("",!0):(o(),C(O,{key:1},[D(k(F.$t("management.downBtn"))+" ",1),a(ce)],64))])]),a(ne,{name:"expand-collapse",onBeforeEnter:G(B),onEnter:G(p),onLeave:G(U)},{default:l(()=>[e.value?(o(),C("div",ba,[(o(!0),C(O,null,R(g.value,(j,pe)=>(o(),_(Kl,{key:pe,model_item:j,model_name:j.label.en_US,onShowMore:E,onUpdateAddModelDify:v,onToAddModel:oe},{default:l(()=>[D(k((F.key,F.index)),1)]),_:2},1032,["model_item","model_name"]))),128)),g.value.length?L("",!0):(o(),_(_e,{key:0,class:"empty-list"}))])):L("",!0)]),_:1},8,["onBeforeEnter","onEnter","onLeave"])]),f("div",ka,[f("div",ha,[f("div",Ma,k(F.$t("management.unaddModel")),1),f("div",{class:"icon",onClick:d},[I.value?(o(),C(O,{key:0},[D(k(F.$t("management.upBtn"))+" ",1),a(K)],64)):L("",!0),I.value?L("",!0):(o(),C(O,{key:1},[D(k(F.$t("management.downBtn"))+" ",1),a(ce)],64))])]),a(ne,{name:"expand-collapse",onBeforeEnter:G(B),onEnter:G(p),onLeave:G(U)},{default:l(()=>[I.value?(o(),C("div",wa,[(o(!0),C(O,null,R(M.value,j=>(o(),_(ve,{key:j.id,name:j.label.en_US,img_src:j.img_src,is_model:""},{labels:l(()=>[f("div",Va,k(j.supported_model_types.join(",")),1)]),description:l(()=>[f("div",Ua,k(j.description&&j.description.zh_Hans),1)]),bottom:l(()=>[a(we,{onClick:pe=>T(j)},{icon:l(()=>[a(Me)]),default:l(()=>[D(k(F.$t("management.addModelBtn")),1)]),_:2},1032,["onClick"])]),_:2},1032,["name","img_src"]))),128))])):L("",!0)]),_:1},8,["onBeforeEnter","onEnter","onLeave"]),M.value.length?L("",!0):(o(),_(_e,{key:0,class:"empty-list"}))])]),x.value?(o(),_(Zl,{key:0,show_modal:x.value,model_data:S.value,onDifyClose:ie,onUpdateModelList:v},null,8,["show_modal","model_data"])):L("",!0),V.value?(o(),_(Wl,{key:1,show_modal:V.value,model_data:y.value,onDifyClose:re,onUpdateModelList:v},null,8,["show_modal","model_data"])):L("",!0),$.value?(o(),_(oa,{key:2,show_modal:$.value,model_data:A.value,onDifyClose:Y,onUpdateModelList:v},null,8,["show_modal","model_data"])):L("",!0),i.value?(o(),_(sa,{key:3,show_modal:i.value,model_data:u.value,onDifyClose:te,onUpdateModelList:v},null,8,["show_modal","model_data"])):L("",!0),s.value?(o(),_(ma,{key:4,show_modal:s.value,model_data:c.value,onDifyClose:ke,onUpdateModelList:v},null,8,["show_modal","model_data"])):L("",!0),r.value?(o(),_(pa,{key:5,show_modal:r.value,model_data:h.value,onDifyClose:he,onUpdateModelList:v},null,8,["show_modal","model_data"])):L("",!0)],64)}}},Ca=le(La,[["__scopeId","data-v-c67a10a8"]]),ro={__name:"Model",setup(b){const B=m("assistant"),p=U=>{B.value=U,console.log(B.value)};return(U,g)=>(o(),_(Ve,null,{default:l(()=>[a(Ue,null,{default:l(()=>[a(Le,{title:U.$t("management.modelTitle"),tips:U.$t("management.modelDesc")},{setting:l(()=>[a(Qe,{onChangeType:p})]),_:1},8,["title","tips"]),B.value==="assistant"?(o(),_(El,{key:0})):L("",!0),B.value==="agent"?(o(),_(Ca,{key:1})):L("",!0)]),_:1})]),_:1}))}};export{ro as default};