chaite
Version:
core for chatgpt-plugin and karin-plugin-chatgpt
5 lines (4 loc) • 47.1 kB
JavaScript
import{m as z,o as x,c as h,a as u,Z as re,d as ue,q as ie,s as de,$ as pe,e as a,w as t,a0 as me,t as P,u as l,D as ve,E as R,N as f,C as w,v as d,M as k,g as m,P as fe,Q as be,a1 as H,B as L,F,b as D,H as M,n as Q,j as I,I as Z,O as ge,G as J,k as xe}from"./index-D3SoE8bB.js";import{I as ye}from"./preview-open-DgCHDLwl.js";import{f as ce,s as we}from"./config-DODD3Tkn.js";import{f as ke}from"./presets-ChXh9F9_.js";import{f as he,u as Ue,a as Pe,d as Ie}from"./memory-Cs4cxffC.js";import{N as Me}from"./Alert-wir6kfwu.js";import{_ as b}from"./FormItem-yXZKI0f3.js";import{N as g}from"./Grid-B3ZO_4Zt.js";import{_ as r}from"./FormItemGridItem-D-Opymhq.js";import{N as v}from"./InputNumber-CRx3qCIC.js";import{N as y}from"./DynamicTags-CSrYGFn_.js";import"./prop-NnGblK-3.js";const Ce={style:{display:"inline-block"},viewBox:"0 0 48 48",width:"1.2em",height:"1.2em"};function Se(B,p){return x(),h("svg",Ce,[...p[0]||(p[0]=[u("path",{fill:"currentColor","fill-rule":"evenodd",d:"m16.871 33.044l-.873 11.66c-.062.82.667 1.383 1.318 1.018c4.613-2.584 19.062-12.074 26.386-32.932c.336-.957-.567-1.82-1.337-1.28c-4.326 3.03-13.78 9.29-19.623 10.484c0 0 3.742-2.6 5.981-6.588a1.2 1.2 0 0 0-.043-1.245L20.513 2.389c-.484-.697-1.478-.408-1.652.481l-2.543 12.937L4.384 26.223c-.598.522-.476 1.577.215 1.856zm21.104-4.596c-.756 1.055-2.384 3.224-3.887 4.55c-.3.265-.26.709.084.925l7.943 4.986c.478.3 1.123-.056 1.043-.576c-.37-2.383-1.434-7.351-4.125-9.959c-.3-.29-.819-.26-1.059.074","clip-rule":"evenodd"},null,-1)])])}const Re=z({name:"icon-park-outline-star-one",render:Se}),Le={style:{display:"inline-block"},viewBox:"0 0 48 48",width:"1.2em",height:"1.2em"};function De(B,p){return x(),h("svg",Le,[...p[0]||(p[0]=[u("path",{fill:"none",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"4",d:"M18 6H8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2Zm0 22H8a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V30a2 2 0 0 0-2-2Zm17-8a7 7 0 1 0 0-14a7 7 0 0 0 0 14Zm5 8H30a2 2 0 0 0-2 2v10a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V30a2 2 0 0 0-2-2Z"},null,-1)])])}const Be=z({name:"icon-park-outline-system",render:De}),$e={style:{display:"inline-block"},viewBox:"0 0 48 48",width:"1.2em",height:"1.2em"};function Te(B,p){return x(),h("svg",$e,[...p[0]||(p[0]=[re('<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-width="4"><path stroke-linejoin="round" d="M20 10H6a2 2 0 0 0-2 2v26a2 2 0 0 0 2 2h36a2 2 0 0 0 2-2v-2.5"></path><path d="M10 23h8m-8 8h24"></path><circle cx="34" cy="16" r="6" stroke-linejoin="round"></circle><path stroke-linejoin="round" d="M44 28.419C42.047 24.602 38 22 34 22s-5.993 1.133-8.05 3"></path></g>',1)])])}const je=z({name:"icon-park-outline-permissions",render:Te}),Fe={style:{display:"inline-block"},viewBox:"0 0 48 48",width:"1.2em",height:"1.2em"};function ze(B,p){return x(),h("svg",Fe,[...p[0]||(p[0]=[u("g",{fill:"none",stroke:"currentColor","stroke-linejoin":"round","stroke-width":"4"},[u("rect",{width:"24",height:"18",x:"12",y:"20",rx:"2"}),u("path",{"stroke-linecap":"round",d:"M18 20v-6c0-3.682 2.686-6 6-6c1.85 0 3.503.722 4.604 2a5.6 5.6 0 0 1 1.102 2M24 28v2M6 18v12m36-12v12"})],-1)])])}const Ne=z({name:"icon-park-outline-electronic-locks-open",render:ze}),We={style:{display:"inline-block"},viewBox:"0 0 48 48",width:"1.2em",height:"1.2em"};function Ge(B,p){return x(),h("svg",We,[...p[0]||(p[0]=[u("g",{fill:"none",stroke:"currentColor"},[u("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"4.667",d:"M19.036 44q-1.47-4.793-4.435-7.147c-2.965-2.353-7.676-.89-9.416-3.318s1.219-6.892 2.257-9.526s-3.98-3.565-3.394-4.313q.585-.748 7.609-4.316Q13.652 4 26.398 4C39.144 4 44 14.806 44 21.68c0 6.872-5.88 14.276-14.256 15.873q-1.123 1.636 3.24 6.447"}),u("path",{"stroke-linejoin":"round","stroke-width":"4",d:"M19.5 14.5q-.981 3.801.583 5.339q1.563 1.537 5.328 2.01q-.855 4.903 2.083 4.6q2.937-.302 3.53-2.44q4.59 1.29 4.976-2.16c.385-3.45-1.475-6.201-2.238-6.201s-2.738-.093-2.738-1.148s-2.308-1.65-4.391-1.65s-.83-1.405-3.69-.85q-2.86.555-3.443 2.5Z","clip-rule":"evenodd"}),u("path",{"stroke-linecap":"round","stroke-width":"4",d:"M30.5 25.5c-1.017.631-2.412 1.68-3 2.5c-1.469 2.05-2.66 3.298-2.92 4.608"})],-1)])])}const Ae=z({name:"icon-park-outline-brain",render:Ge}),He={class:"config-container"},Ke={class:"layout-container"},qe={class:"sidebar"},Ve={class:"version-info"},Ee={class:"content-area"},Oe={class:"preset-map-container"},Qe={class:"preset-map-keyword-container"},Ze={class:"simple-extension-status"},Je={class:"simple-extension-paths"},Ye={key:0},Xe={class:"action-bar",style:{"margin-top":"16px"}},_e={class:"action-bar"},el=ue({__name:"index",setup(B){const p=ie(),$=I("basic"),Y=I(null);function C(i){return()=>J(H,null,{default:()=>J(i)})}const X=[{label:"基础设置",key:"basic",icon:C(Be)},{label:"模型与对话",key:"llm",icon:C(je)},{label:"权限管理",key:"management",icon:C(Ne)},{label:"记忆配置",key:"memory",icon:C(Ae)},{label:"视觉配置",key:"vision",icon:C(ye)},{label:"Chaite配置",key:"chaite",icon:C(Re)}];function _(i){$.value=i}const o=Z({version:"3.0.0",basic:{toggleMode:"at",togglePrefix:"#chat",debug:!1,commandPrefix:"^#chatgpt"},bym:{enable:!1,hit:["bym"],probability:.02,defaultPreset:"",presetPrefix:"",presetMap:[],maxTokens:0,temperature:-1,sendReasoning:!1},llm:{defaultModel:"",embeddingModel:"gemini-embedding-exp-03-07",dimensions:0,defaultChatPresetId:"",enableCustomPreset:!1,customPresetUserWhiteList:[],customPresetUserBlackList:[],promptBlockWords:[],responseBlockWords:[],blockStrategy:"full",blockWordMask:"**",enableGroupContext:!1,groupContextLength:20,groupContextTemplatePrefix:`Latest several messages in the group chat:
| sender.card | sender.nickname | sender.user_id | sender.role | sender.title | time | messageId | raw_message |
|---|---|---|---|---|---|---|---|`,groupContextTemplateMessage:"| ${message.sender.card} | ${message.sender.nickname} | ${message.sender.user_id} | ${message.sender.role} | ${message.sender.title} | ${message.time} | ${message.messageId} | ${message.raw_message} |",groupContextTemplateSuffix:`
`},management:{blackGroups:[],whiteGroups:[],blackUsers:[],whiteUsers:[],defaultRateLimit:0},chaite:{dataDir:"data",processorsDirPath:"utils/processors",toolsDirPath:"utils/tools",cloudBaseUrl:"",cloudApiKey:"",authKey:"",host:"",port:48370},vision:{nonVisionStrategy:"tool",visionChannelId:"",imageDescriptionModel:"",imageDescriptionSystemPrompt:"You are an image analysis assistant. Answer questions about images accurately and thoroughly.",defaultQuestion:"请详细描述这张图片的内容,包括场景、人物、物体、文字、颜色等所有可见细节。",maxImageSize:10485760,enableGroupContextImages:!0}}),n=Z({database:"data/memory.db",vectorDimensions:1536,group:{enable:!1,enabledGroups:[],extractionModel:"",extractionPresetId:"",minMessageCount:80,maxMessageWindow:300,retrievalMode:"hybrid",hybridPrefer:"vector-first",historyPollInterval:300,historyBatchSize:120,promptHeader:"# 群聊长期记忆",promptItemTemplate:"- ${fact}${topicSuffix}",promptFooter:"",extractionSystemPrompt:"",extractionUserPrompt:"",vectorMaxDistance:0,textMaxBm25Score:0,maxFactsPerInjection:5,minImportanceForInjection:.3},user:{enable:!1,whitelist:[],blacklist:[],extractionModel:"",extractionPresetId:"",maxItemsPerInjection:5,maxRelevantItemsPerQuery:3,minImportanceForInjection:0,promptHeader:"# 用户画像",promptItemTemplate:"- ${value}",promptFooter:"",extractionSystemPrompt:"",extractionUserPrompt:""},extensions:{simple:{enable:!1,libraryPath:"",dictPath:"",useJieba:!1}}}),K=[{label:"自动识别 (推荐)",value:"auto"},{label:"Linux x64",value:"linux-x64"},{label:"Linux ARM64",value:"linux-arm64"},{label:"Windows x64",value:"win32-x64"},{label:"Windows x86 (32位)",value:"win32-ia32"},{label:"Windows ARM64",value:"win32-arm64"},{label:"macOS x64",value:"darwin-x64"}],c=I(null),W=I(!1),G=I(!1),S=I("auto"),T=I("");function q(i){i&&(typeof i.database=="string"&&(n.database=i.database),typeof i.vectorDimensions=="number"&&(n.vectorDimensions=i.vectorDimensions),i.group&&Object.assign(n.group,i.group),i.user&&Object.assign(n.user,i.user),i.extensions?.simple&&Object.assign(n.extensions.simple,i.extensions.simple))}async function ee(){const i=await ce();return i.isSuccess?p.success("配置加载成功"):p.error("配置加载失败"),Object.assign(o,i.data),Array.isArray(o.bym.presetMap)||(o.bym.presetMap=[]),i.data}async function le(){(await we(o)).isSuccess?p.success("配置保存成功"):p.error("配置保存失败")}async function ae(){try{const i=await he();i.isSuccess?q(i.data):p.error("记忆配置加载失败")}catch(i){console.error("Failed to load memory config:",i)}}async function te(){try{const i=await Ue(n);i.isSuccess?(p.success("记忆配置保存成功"),q(i.data),await N()):p.error(i.message||"记忆配置保存失败")}catch(i){console.error("Failed to update memory config:",i),p.error("记忆配置保存失败")}}async function N(){W.value=!0;try{const i=await Pe();i.isSuccess?c.value=i.data:p.error(i.message||"扩展状态获取失败")}catch(i){console.error("Failed to fetch simple extension status:",i),p.error("扩展状态获取失败")}finally{W.value=!1}}async function se(){const i={};S.value!=="auto"&&(i.assetKey=S.value),T.value.trim().length>0&&(i.assetName=T.value.trim()),G.value=!0;try{const e=await Ie(i);e.isSuccess?(p.success("扩展下载完成,记得保存配置并启用分词。"),e.data.assetKey&&K.some(A=>A.value===e.data.assetKey)?S.value=e.data.assetKey:S.value="auto",T.value="",n.extensions.simple.libraryPath=e.data.libraryPath,n.extensions.simple.dictPath=e.data.dictPath,await N()):p.error(e.message||"扩展下载失败")}catch(e){console.error("Failed to download simple extension:",e),p.error("扩展下载失败")}finally{G.value=!1}}const V=I([]);function oe(){ke({}).then(i=>{V.value=i.data.items||i.data}).catch(i=>{console.error(i)})}const j=ge(()=>V.value.map(i=>({label:i.name,value:i.id})));function E(i,e){return e.label.toLowerCase().includes(i.toLowerCase())}return de(async()=>{try{await Promise.all([ee(),ae()]),oe(),await N()}catch(i){console.error("加载配置失败:",i),p.error("配置加载失败")}}),(i,e)=>{const A=me,ne=pe("router-link");return x(),h("div",He,[a(l(f),{title:"系统配置",class:"main-card"},{default:t(()=>[u("div",Ke,[u("div",qe,[a(A,{value:$.value,"onUpdate:value":[e[0]||(e[0]=s=>$.value=s),_],options:X},null,8,["value"]),u("div",Ve,[u("span",null,"版本: "+P(o.version),1)])]),u("div",Ee,[a(l(ve),{ref_key:"tabsRef",ref:Y,value:$.value,"onUpdate:value":e[89]||(e[89]=s=>$.value=s),type:"line",animated:"",class:"responsive-tabs"},{default:t(()=>[a(l(R),{name:"basic",tab:"基础设置"},{default:t(()=>[a(l(f),{class:"inner-card"},{header:t(()=>[...e[90]||(e[90]=[u("div",{class:"card-header"},[u("div",{class:"card-header"},[u("div",{class:"card-title"}," 触发与命令 "),u("div",{class:"card-subtitle"}," 设置机器人的触发方式和基本命令 ")])],-1)])]),default:t(()=>[a(l(b),{"label-placement":"left","label-width":"auto",model:o.basic},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24 s:24 m:12",label:"触发方式",path:"toggleMode"},{default:t(()=>[a(l(w),{value:o.basic.toggleMode,"onUpdate:value":e[1]||(e[1]=s=>o.basic.toggleMode=s),options:[{label:"@ 触发",value:"at"},{label:"前缀触发",value:"prefix"}]},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"触发前缀",path:"togglePrefix"},{default:t(()=>[a(l(d),{value:o.basic.togglePrefix,"onUpdate:value":e[2]||(e[2]=s=>o.basic.togglePrefix=s),placeholder:"仅前缀触发时有效",disabled:o.basic.toggleMode!=="prefix"},null,8,["value","disabled"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"命令前缀",path:"commandPrefix"},{default:t(()=>[a(l(d),{value:o.basic.commandPrefix,"onUpdate:value":e[3]||(e[3]=s=>o.basic.commandPrefix=s),placeholder:"例如: ^#chatgpt"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"调试模式",path:"debug"},{default:t(()=>[a(l(k),{value:o.basic.debug,"onUpdate:value":e[4]||(e[4]=s=>o.basic.debug=s)},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1})]),_:1}),a(l(R),{name:"llm",tab:"模型与对话"},{default:t(()=>[a(l(f),{class:"inner-card mb-4"},{header:t(()=>[...e[91]||(e[91]=[u("div",{class:"card-header"},[u("div",{class:"card-title"}," 模型配置 "),u("div",{class:"card-subtitle"}," 设置默认使用的模型和嵌入模型 ")],-1)])]),default:t(()=>[a(l(b),{"label-placement":"left","label-width":"auto",model:o.llm},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24 s:24 m:12",label:"嵌入模型",path:"embeddingModel"},{default:t(()=>[a(l(d),{value:o.llm.embeddingModel,"onUpdate:value":e[5]||(e[5]=s=>o.llm.embeddingModel=s),placeholder:"输入嵌入模型名称"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"嵌入维度",path:"dimensions"},{default:t(()=>[a(l(v),{value:o.llm.dimensions,"onUpdate:value":e[6]||(e[6]=s=>o.llm.dimensions=s),clearable:"",placeholder:"0表示自动",min:0,style:{width:"100%"}},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"默认对话预设",path:"defaultChatPresetId"},{default:t(()=>[a(l(w),{value:o.llm.defaultChatPresetId,"onUpdate:value":e[7]||(e[7]=s=>o.llm.defaultChatPresetId=s),options:j.value,filterable:"",placeholder:"选择默认对话预设",clearable:""},null,8,["value","options"])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),a(l(f),{class:"inner-card mb-4"},{header:t(()=>[...e[92]||(e[92]=[u("div",{class:"card-header"},[u("div",{class:"card-title"}," 预设控制 "),u("div",{class:"card-subtitle"}," 设置用户预设切换权限 ")],-1)])]),default:t(()=>[a(l(b),{"label-placement":"left","label-width":"auto",model:o.llm},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24 s:24 m:12",label:"允许切换预设",path:"enableCustomPreset"},{default:t(()=>[a(l(k),{value:o.llm.enableCustomPreset,"onUpdate:value":e[8]||(e[8]=s=>o.llm.enableCustomPreset=s)},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"预设白名单用户",path:"customPresetUserWhiteList"},{default:t(()=>[a(l(y),{value:o.llm.customPresetUserWhiteList,"onUpdate:value":e[9]||(e[9]=s=>o.llm.customPresetUserWhiteList=s),placeholder:"输入用户ID并按回车添加"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"预设黑名单用户",path:"customPresetUserBlackList"},{default:t(()=>[a(l(y),{value:o.llm.customPresetUserBlackList,"onUpdate:value":e[10]||(e[10]=s=>o.llm.customPresetUserBlackList=s),placeholder:"输入用户ID并按回车添加"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),a(l(f),{class:"inner-card"},{header:t(()=>[...e[93]||(e[93]=[u("div",{class:"card-header"},[u("div",{class:"card-title"}," 伪人模式 "),u("div",{class:"card-subtitle"}," 设置和管理伪人模式配置 ")],-1)])]),default:t(()=>[a(l(b),{"label-placement":"left","label-width":"auto",model:o.bym},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24 s:24 m:12",label:"启用伪人模式",path:"enable"},{default:t(()=>[a(l(k),{value:o.bym.enable,"onUpdate:value":e[11]||(e[11]=s=>o.bym.enable=s)},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"伪人触发词",path:"hit","span-feedback":24},{feedback:t(()=>[...e[94]||(e[94]=[u("span",{class:"form-hint"},"包含这些词时将必定触发伪人模式",-1)])]),default:t(()=>[a(l(y),{value:o.bym.hit,"onUpdate:value":e[12]||(e[12]=s=>o.bym.hit=s),placeholder:"输入触发词并按回车添加"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"随机触发概率",path:"probability","span-feedback":24},{feedback:t(()=>[...e[95]||(e[95]=[u("span",{class:"form-hint"},"不包含触发词时随机触发的概率",-1)])]),default:t(()=>[a(l(v),{value:o.bym.probability,"onUpdate:value":e[13]||(e[13]=s=>o.bym.probability=s),min:0,max:1,step:.01,style:{width:"100%"}},{suffix:t(()=>[m(P((o.bym.probability*100).toFixed(0))+"% ",1)]),_:1},8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"默认预设",path:"defaultPreset","span-feedback":24},{feedback:t(()=>[...e[96]||(e[96]=[u("span",{class:"form-hint"},"伪人模式的默认预设",-1)])]),default:t(()=>[a(l(w),{value:o.bym.defaultPreset,"onUpdate:value":e[14]||(e[14]=s=>o.bym.defaultPreset=s),options:j.value,filterable:"","filter-option":E,placeholder:"选择默认预设",clearable:""},null,8,["value","options"])]),_:1}),a(l(r),{span:"24",label:"预设前缀",path:"presetPrefix","span-feedback":24},{feedback:t(()=>[...e[97]||(e[97]=[u("span",{class:"form-hint"},"会加在所有伪人模式预设前的通用前缀,可用于配置通用的伪人发言风格",-1)])]),default:t(()=>[a(l(d),{value:o.bym.presetPrefix,"onUpdate:value":e[15]||(e[15]=s=>o.bym.presetPrefix=s),type:"textarea",placeholder:"输入预设前缀",autosize:{minRows:3,maxRows:6}},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"最大Token数",path:"maxTokens","span-feedback":24},{feedback:t(()=>[...e[98]||(e[98]=[u("span",{class:"form-hint"},"大于0时会覆盖预设中的maxToken值",-1)])]),default:t(()=>[a(l(v),{value:o.bym.maxTokens,"onUpdate:value":e[16]||(e[16]=s=>o.bym.maxTokens=s),min:0,placeholder:"0表示不限制",style:{width:"100%"}},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"温度",path:"temperature","span-feedback":24},{feedback:t(()=>[...e[99]||(e[99]=[u("span",{class:"form-hint"},"大于等于0时会覆盖预设中的temperature值,-1表示使用预设值",-1)])]),default:t(()=>[a(l(v),{value:o.bym.temperature,"onUpdate:value":e[17]||(e[17]=s=>o.bym.temperature=s),min:-1,max:2,step:.1,placeholder:"-1表示使用预设值",style:{width:"100%"}},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"发送思考过程",path:"sendReasoning"},{default:t(()=>[a(l(k),{value:o.bym.sendReasoning,"onUpdate:value":e[18]||(e[18]=s=>o.bym.sendReasoning=s)},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"预设映射",path:"presetMap","span-feedback":24},{feedback:t(()=>[...e[105]||(e[105]=[u("span",{class:"form-hint"},"按优先级排序,消息包含特定关键词时使用对应的预设",-1)])]),default:t(()=>[u("div",Oe,[(x(!0),h(fe,null,be(o.bym.presetMap,(s,O)=>(x(),h("div",{key:O,class:"preset-map-item"},[u("div",Qe,[a(l(y),{value:s.keywords,"onUpdate:value":U=>s.keywords=U,placeholder:"添加关键词",class:"preset-map-keywords"},null,8,["value","onUpdate:value"])]),a(l(H),{class:"preset-map-arrow"},{default:t(()=>[...e[100]||(e[100]=[u("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24"},[u("path",{fill:"currentColor",d:"M16.01 11H4v2h12.01v3L20 12l-3.99-4z"})],-1)])]),_:1}),a(l(w),{value:s.presetId,"onUpdate:value":U=>s.presetId=U,class:"preset-map-preset",options:j.value,filterable:"","filter-option":E,placeholder:"选择预设",clearable:""},null,8,["value","onUpdate:value","options"]),a(l(v),{value:s.priority,"onUpdate:value":U=>s.priority=U,class:"preset-map-priority",min:0,placeholder:"优先级"},null,8,["value","onUpdate:value"]),a(l(k),{value:s.recall,"onUpdate:value":U=>s.recall=U,class:"preset-map-recall","default-value":!1},{checked:t(()=>[...e[101]||(e[101]=[m(" 撤回 ",-1)])]),unchecked:t(()=>[...e[102]||(e[102]=[m(" 保留 ",-1)])]),_:1},8,["value","onUpdate:value"]),a(l(L),{type:"error",quaternary:"",circle:"",class:"preset-map-delete",onClick:U=>o.bym.presetMap.splice(O,1)},{default:t(()=>[a(l(H),null,{default:t(()=>[...e[103]||(e[103]=[u("svg",{xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",viewBox:"0 0 24 24"},[u("path",{fill:"currentColor",d:"M19 6.41L17.59 5L12 10.59L6.41 5L5 6.41L10.59 12L5 17.59L6.41 19L12 13.41L17.59 19L19 17.59L13.41 12z"})],-1)])]),_:1})]),_:1},8,["onClick"])]))),128)),a(l(L),{type:"primary",dashed:"",class:"preset-map-add",onClick:e[19]||(e[19]=s=>o.bym.presetMap.push({keywords:[],presetId:"",priority:0,recall:!1}))},{default:t(()=>[...e[104]||(e[104]=[m(" 添加关键词预设映射 ",-1)])]),_:1})])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),a(l(f),{class:"inner-card"},{header:t(()=>[...e[106]||(e[106]=[u("div",{class:"card-header"},[u("div",{class:"card-title"}," 内容过滤 "),u("div",{class:"card-subtitle"}," 设置敏感词过滤规则 ")],-1)])]),default:t(()=>[a(l(b),{"label-placement":"left","label-width":"auto",model:o.llm},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24",label:"用户输入屏蔽词",path:"promptBlockWords"},{default:t(()=>[a(l(y),{value:o.llm.promptBlockWords,"onUpdate:value":e[20]||(e[20]=s=>o.llm.promptBlockWords=s),placeholder:"输入屏蔽词并按回车添加"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"回复屏蔽词",path:"responseBlockWords"},{default:t(()=>[a(l(y),{value:o.llm.responseBlockWords,"onUpdate:value":e[21]||(e[21]=s=>o.llm.responseBlockWords=s),placeholder:"输入屏蔽词并按回车添加"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"屏蔽策略",path:"blockStrategy"},{default:t(()=>[a(l(w),{value:o.llm.blockStrategy,"onUpdate:value":e[22]||(e[22]=s=>o.llm.blockStrategy=s),options:[{label:"完全屏蔽消息",value:"full"},{label:"仅屏蔽关键词",value:"mask"}]},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"屏蔽替换字符",path:"blockWordMask",disabled:o.llm.blockStrategy!=="mask"},{default:t(()=>[a(l(d),{value:o.llm.blockWordMask,"onUpdate:value":e[23]||(e[23]=s=>o.llm.blockWordMask=s),placeholder:"例如: ***",disabled:o.llm.blockStrategy!=="mask"},null,8,["value","disabled"])]),_:1},8,["disabled"])]),_:1})]),_:1},8,["model"])]),_:1}),a(l(f),{class:"inner-card mb-4"},{header:t(()=>[...e[107]||(e[107]=[u("div",{class:"card-header"},[u("div",{class:"card-title"}," 群聊上下文 "),u("div",{class:"card-subtitle"}," 配置群组上下文相关参数 ")],-1)])]),default:t(()=>[a(l(b),{"label-placement":"left","label-width":"auto",model:o.llm},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24 s:24 m:12",label:"启用群组上下文",path:"enableGroupContext"},{default:t(()=>[a(l(k),{value:o.llm.enableGroupContext,"onUpdate:value":e[24]||(e[24]=s=>o.llm.enableGroupContext=s)},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"上下文长度",path:"groupContextLength","span-feedback":24},{feedback:t(()=>[...e[108]||(e[108]=[u("span",{class:"form-hint"},"保留的群聊消息数量",-1)])]),default:t(()=>[a(l(v),{value:o.llm.groupContextLength,"onUpdate:value":e[25]||(e[25]=s=>o.llm.groupContextLength=s),min:0,max:100,style:{width:"100%"},placeholder:"群组上下文保留的消息数"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"上下文模板前缀",path:"groupContextTemplatePrefix","span-feedback":24},{feedback:t(()=>[...e[109]||(e[109]=[u("span",{class:"form-hint"},"用于组装群聊上下文提示词的模板前缀",-1)])]),default:t(()=>[a(l(d),{value:o.llm.groupContextTemplatePrefix,"onUpdate:value":e[26]||(e[26]=s=>o.llm.groupContextTemplatePrefix=s),type:"textarea",placeholder:"输入上下文模板前缀",autosize:{minRows:3,maxRows:6}},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"上下文消息模板",path:"groupContextTemplateMessage","span-feedback":24},{feedback:t(()=>[...e[110]||(e[110]=[u("span",{class:"form-hint"},"用于组装群聊上下文提示词的模板内容部分,使用${message.xxx}引用消息属性",-1)])]),default:t(()=>[a(l(d),{value:o.llm.groupContextTemplateMessage,"onUpdate:value":e[27]||(e[27]=s=>o.llm.groupContextTemplateMessage=s),type:"textarea",placeholder:"输入上下文消息模板",autosize:{minRows:3,maxRows:6}},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"上下文模板后缀",path:"groupContextTemplateSuffix","span-feedback":24},{feedback:t(()=>[...e[111]||(e[111]=[u("span",{class:"form-hint"},"用于组装群聊上下文提示词的模板后缀",-1)])]),default:t(()=>[a(l(d),{value:o.llm.groupContextTemplateSuffix,"onUpdate:value":e[28]||(e[28]=s=>o.llm.groupContextTemplateSuffix=s),type:"textarea",placeholder:"输入上下文模板后缀",autosize:{minRows:2,maxRows:4}},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1})]),_:1}),a(l(R),{name:"management",tab:"权限管理"},{default:t(()=>[a(l(f),{class:"inner-card mb-4"},{header:t(()=>[...e[112]||(e[112]=[u("div",{class:"card-header"},[u("div",{class:"card-title"}," 访问控制 "),u("div",{class:"card-subtitle"}," 设置黑白名单控制机器人访问权限 ")],-1)])]),default:t(()=>[a(l(b),{"label-placement":"left","label-width":"auto",model:o.management},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24 s:24 m:12",label:"黑名单群组",path:"blackGroups"},{default:t(()=>[a(l(y),{value:o.management.blackGroups,"onUpdate:value":e[29]||(e[29]=s=>o.management.blackGroups=s),placeholder:"输入群号并按回车添加"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"白名单群组",path:"whiteGroups"},{default:t(()=>[a(l(y),{value:o.management.whiteGroups,"onUpdate:value":e[30]||(e[30]=s=>o.management.whiteGroups=s),placeholder:"输入群号并按回车添加"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"黑名单用户",path:"blackUsers"},{default:t(()=>[a(l(y),{value:o.management.blackUsers,"onUpdate:value":e[31]||(e[31]=s=>o.management.blackUsers=s),placeholder:"输入用户ID并按回车添加"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"白名单用户",path:"whiteUsers"},{default:t(()=>[a(l(y),{value:o.management.whiteUsers,"onUpdate:value":e[32]||(e[32]=s=>o.management.whiteUsers=s),placeholder:"输入用户ID并按回车添加"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"对话速率限制",path:"defaultRateLimit"},{default:t(()=>[a(l(v),{value:o.management.defaultRateLimit,"onUpdate:value":e[33]||(e[33]=s=>o.management.defaultRateLimit=s),placeholder:"0表示不限制",min:0,style:{width:"100%"}},{suffix:t(()=>[...e[113]||(e[113]=[m(" 次/分钟 ",-1)])]),_:1},8,["value"])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1})]),_:1}),a(l(R),{name:"memory",tab:"记忆配置"},{default:t(()=>[a(l(f),{class:"inner-card mb-4"},{header:t(()=>[...e[114]||(e[114]=[u("div",{class:"card-header"},[u("div",{class:"card-title"}," 基础配置 "),u("div",{class:"card-subtitle"}," 配置记忆系统的基础参数 ")],-1)])]),default:t(()=>[a(l(b),{"label-placement":"left","label-width":"auto",model:n},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24 s:24 m:12",label:"数据库路径",path:"database"},{default:t(()=>[a(l(d),{value:n.database,"onUpdate:value":e[34]||(e[34]=s=>n.database=s),placeholder:"data/memory.db"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"向量维度",path:"vectorDimensions"},{default:t(()=>[a(l(v),{value:n.vectorDimensions,"onUpdate:value":e[35]||(e[35]=s=>n.vectorDimensions=s),min:0,style:{width:"100%"}},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),a(l(f),{class:"inner-card mb-4"},{header:t(()=>[...e[115]||(e[115]=[u("div",{class:"card-header"},[u("div",{class:"card-title"}," 群组记忆配置 "),u("div",{class:"card-subtitle"}," 配置群组事实记忆的提取和检索参数 ")],-1)])]),default:t(()=>[a(l(b),{"label-placement":"left","label-width":"auto",model:n.group},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24 s:24 m:12",label:"启用群组记忆",path:"enable"},{default:t(()=>[a(l(k),{value:n.group.enable,"onUpdate:value":e[36]||(e[36]=s=>n.group.enable=s)},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"启用的群组",path:"enabledGroups"},{default:t(()=>[a(l(y),{value:n.group.enabledGroups,"onUpdate:value":e[37]||(e[37]=s=>n.group.enabledGroups=s),placeholder:"输入群组ID并按回车添加"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"提取模型",path:"extractionModel"},{default:t(()=>[a(l(d),{value:n.group.extractionModel,"onUpdate:value":e[38]||(e[38]=s=>n.group.extractionModel=s),placeholder:"模型名称"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"提取预设ID",path:"extractionPresetId"},{default:t(()=>[a(l(w),{value:n.group.extractionPresetId,"onUpdate:value":e[39]||(e[39]=s=>n.group.extractionPresetId=s),options:j.value,filterable:"",placeholder:"选择预设",clearable:""},null,8,["value","options"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"最少消息数",path:"minMessageCount"},{default:t(()=>[a(l(v),{value:n.group.minMessageCount,"onUpdate:value":e[40]||(e[40]=s=>n.group.minMessageCount=s),min:0,style:{width:"100%"}},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"最大消息窗口",path:"maxMessageWindow"},{default:t(()=>[a(l(v),{value:n.group.maxMessageWindow,"onUpdate:value":e[41]||(e[41]=s=>n.group.maxMessageWindow=s),min:0,style:{width:"100%"}},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"历史轮询间隔(秒)",path:"historyPollInterval"},{default:t(()=>[a(l(v),{value:n.group.historyPollInterval,"onUpdate:value":e[42]||(e[42]=s=>n.group.historyPollInterval=s),min:0,style:{width:"100%"}},{suffix:t(()=>[...e[116]||(e[116]=[m(" 秒 ",-1)])]),_:1},8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"历史采样条数",path:"historyBatchSize"},{default:t(()=>[a(l(v),{value:n.group.historyBatchSize,"onUpdate:value":e[43]||(e[43]=s=>n.group.historyBatchSize=s),min:0,style:{width:"100%"}},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"检索模式",path:"retrievalMode"},{default:t(()=>[a(l(w),{value:n.group.retrievalMode,"onUpdate:value":e[44]||(e[44]=s=>n.group.retrievalMode=s),options:[{label:"向量检索",value:"vector"},{label:"关键词检索",value:"keyword"},{label:"混合检索",value:"hybrid"}]},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"混合检索优先",path:"hybridPrefer"},{default:t(()=>[a(l(w),{value:n.group.hybridPrefer,"onUpdate:value":e[45]||(e[45]=s=>n.group.hybridPrefer=s),options:[{label:"向量优先",value:"vector-first"},{label:"关键词优先",value:"keyword-first"}]},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"每次注入最多Facts数",path:"maxFactsPerInjection"},{default:t(()=>[a(l(v),{value:n.group.maxFactsPerInjection,"onUpdate:value":e[46]||(e[46]=s=>n.group.maxFactsPerInjection=s),min:0,style:{width:"100%"}},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"注入最低重要度",path:"minImportanceForInjection"},{default:t(()=>[a(l(v),{value:n.group.minImportanceForInjection,"onUpdate:value":e[47]||(e[47]=s=>n.group.minImportanceForInjection=s),min:0,max:1,step:.1,style:{width:"100%"}},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"向量距离阈值",path:"vectorMaxDistance"},{default:t(()=>[a(l(v),{value:n.group.vectorMaxDistance,"onUpdate:value":e[48]||(e[48]=s=>n.group.vectorMaxDistance=s),min:0,step:.01,style:{width:"100%"}},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"文本BM25阈值",path:"textMaxBm25Score"},{default:t(()=>[a(l(v),{value:n.group.textMaxBm25Score,"onUpdate:value":e[49]||(e[49]=s=>n.group.textMaxBm25Score=s),min:0,step:.1,style:{width:"100%"}},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"Prompt标题模板",path:"promptHeader"},{default:t(()=>[a(l(d),{value:n.group.promptHeader,"onUpdate:value":e[50]||(e[50]=s=>n.group.promptHeader=s),type:"textarea",autosize:{minRows:1,maxRows:3},placeholder:"例如:# 群聊长期记忆"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"Prompt条目模板",path:"promptItemTemplate"},{default:t(()=>[a(l(d),{value:n.group.promptItemTemplate,"onUpdate:value":e[51]||(e[51]=s=>n.group.promptItemTemplate=s),type:"textarea",autosize:{minRows:2,maxRows:6},placeholder:"可使用占位符:${fact}、${topicSuffix}、${order}、${distance} 等"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"Prompt结束模板",path:"promptFooter"},{default:t(()=>[a(l(d),{value:n.group.promptFooter,"onUpdate:value":e[52]||(e[52]=s=>n.group.promptFooter=s),type:"textarea",autosize:{minRows:1,maxRows:3},placeholder:"可选"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"抽取系统提示",path:"extractionSystemPrompt"},{default:t(()=>[a(l(d),{value:n.group.extractionSystemPrompt,"onUpdate:value":e[53]||(e[53]=s=>n.group.extractionSystemPrompt=s),type:"textarea",autosize:{minRows:3,maxRows:8},placeholder:"可选,覆盖内置的群记忆抽取系统提示"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"抽取用户提示模板",path:"extractionUserPrompt"},{default:t(()=>[a(l(d),{value:n.group.extractionUserPrompt,"onUpdate:value":e[54]||(e[54]=s=>n.group.extractionUserPrompt=s),type:"textarea",autosize:{minRows:3,maxRows:8},placeholder:"可选,可使用 ${messages} 作为占位符"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),a(l(f),{class:"inner-card mb-4"},{header:t(()=>[...e[117]||(e[117]=[u("div",{class:"card-header"},[u("div",{class:"card-title"}," 用户记忆配置 "),u("div",{class:"card-subtitle"}," 配置用户个性化记忆的提取参数 ")],-1)])]),default:t(()=>[a(l(b),{"label-placement":"left","label-width":"auto",model:n.user},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24 s:24 m:12",label:"启用用户记忆",path:"enable"},{default:t(()=>[a(l(k),{value:n.user.enable,"onUpdate:value":e[55]||(e[55]=s=>n.user.enable=s)},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"白名单用户",path:"whitelist"},{default:t(()=>[a(l(y),{value:n.user.whitelist,"onUpdate:value":e[56]||(e[56]=s=>n.user.whitelist=s),placeholder:"输入用户ID并按回车添加"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"黑名单用户",path:"blacklist"},{default:t(()=>[a(l(y),{value:n.user.blacklist,"onUpdate:value":e[57]||(e[57]=s=>n.user.blacklist=s),placeholder:"输入用户ID并按回车添加"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"提取模型",path:"extractionModel"},{default:t(()=>[a(l(d),{value:n.user.extractionModel,"onUpdate:value":e[58]||(e[58]=s=>n.user.extractionModel=s),placeholder:"模型名称"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"提取预设ID",path:"extractionPresetId"},{default:t(()=>[a(l(w),{value:n.user.extractionPresetId,"onUpdate:value":e[59]||(e[59]=s=>n.user.extractionPresetId=s),options:j.value,filterable:"",placeholder:"选择预设",clearable:""},null,8,["value","options"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"每次注入最多条目数",path:"maxItemsPerInjection"},{default:t(()=>[a(l(v),{value:n.user.maxItemsPerInjection,"onUpdate:value":e[60]||(e[60]=s=>n.user.maxItemsPerInjection=s),min:0,style:{width:"100%"}},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"检索返回数量",path:"maxRelevantItemsPerQuery"},{default:t(()=>[a(l(v),{value:n.user.maxRelevantItemsPerQuery,"onUpdate:value":e[61]||(e[61]=s=>n.user.maxRelevantItemsPerQuery=s),min:0,style:{width:"100%"}},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"最低重要度",path:"minImportanceForInjection"},{default:t(()=>[a(l(v),{value:n.user.minImportanceForInjection,"onUpdate:value":e[62]||(e[62]=s=>n.user.minImportanceForInjection=s),min:0,max:1,step:.1,style:{width:"100%"}},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"Prompt标题模板",path:"promptHeader"},{default:t(()=>[a(l(d),{value:n.user.promptHeader,"onUpdate:value":e[63]||(e[63]=s=>n.user.promptHeader=s),type:"textarea",autosize:{minRows:1,maxRows:3},placeholder:"例如:# 用户画像"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"Prompt条目模板",path:"promptItemTemplate"},{default:t(()=>[a(l(d),{value:n.user.promptItemTemplate,"onUpdate:value":e[64]||(e[64]=s=>n.user.promptItemTemplate=s),type:"textarea",autosize:{minRows:2,maxRows:6},placeholder:"可使用占位符:${value}、${order}、${importance} 等"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"Prompt结束模板",path:"promptFooter"},{default:t(()=>[a(l(d),{value:n.user.promptFooter,"onUpdate:value":e[65]||(e[65]=s=>n.user.promptFooter=s),type:"textarea",autosize:{minRows:1,maxRows:3},placeholder:"可选"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"抽取系统提示",path:"extractionSystemPrompt"},{default:t(()=>[a(l(d),{value:n.user.extractionSystemPrompt,"onUpdate:value":e[66]||(e[66]=s=>n.user.extractionSystemPrompt=s),type:"textarea",autosize:{minRows:3,maxRows:8},placeholder:"可选,覆盖内置的用户记忆抽取系统提示"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"抽取用户提示模板",path:"extractionUserPrompt"},{default:t(()=>[a(l(d),{value:n.user.extractionUserPrompt,"onUpdate:value":e[67]||(e[67]=s=>n.user.extractionUserPrompt=s),type:"textarea",autosize:{minRows:3,maxRows:8},placeholder:"可选,可使用 ${messages} 作为占位符"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),a(l(f),{class:"inner-card mb-4"},{header:t(()=>[...e[118]||(e[118]=[u("div",{class:"card-header"},[u("div",{class:"card-title"}," 中文分词扩展(Simple) "),u("div",{class:"card-subtitle"}," 可选安装的 FTS5 中文 tokenizer,提升检索效果 ")],-1)])]),default:t(()=>[a(l(F),{vertical:"",size:16},{default:t(()=>[a(l(Me),{"show-icon":"",type:"info"},{default:t(()=>[...e[119]||(e[119]=[m(" 该扩展来自 ",-1),u("a",{href:"https://github.com/wangfenjin/simple",target:"_blank",rel:"noopener noreferrer"},"wangfenjin/simple",-1),m(" 项目, 用于提供中文和拼音分词能力。点击下方按钮自动下载,也可以手动填写库文件路径和词典目录。 ",-1)])]),_:1}),a(l(b),{"label-placement":"left","label-width":"auto",model:n.extensions.simple},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24 s:24 m:12",label:"启用扩展",path:"enable"},{default:t(()=>[a(l(k),{value:n.extensions.simple.enable,"onUpdate:value":e[68]||(e[68]=s=>n.extensions.simple.enable=s)},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"使用结巴分词",path:"useJieba"},{default:t(()=>[a(l(k),{value:n.extensions.simple.useJieba,"onUpdate:value":e[69]||(e[69]=s=>n.extensions.simple.useJieba=s)},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"库文件路径",path:"libraryPath"},{default:t(()=>[a(l(d),{value:n.extensions.simple.libraryPath,"onUpdate:value":e[70]||(e[70]=s=>n.extensions.simple.libraryPath=s),placeholder:"相对于插件目录或绝对路径,例如 resources/simple/linux-x64/libsimple.so"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"词典目录",path:"dictPath"},{default:t(()=>[a(l(d),{value:n.extensions.simple.dictPath,"onUpdate:value":e[71]||(e[71]=s=>n.extensions.simple.dictPath=s),placeholder:"可选,使用结巴分词时需要,例如 resources/simple/linux-x64/dict"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["model"]),a(l(b),{"label-placement":"left","label-width":"auto"},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24 s:24 m:12",label:"目标平台"},{default:t(()=>[a(l(w),{value:S.value,"onUpdate:value":e[72]||(e[72]=s=>S.value=s),options:K},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"自定义文件名"},{default:t(()=>[a(l(d),{value:T.value,"onUpdate:value":e[73]||(e[73]=s=>T.value=s),placeholder:"可选,例如 libsimple-osx-x64.zip"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:" "},{default:t(()=>[a(l(F),null,{default:t(()=>[a(l(L),{type:"primary",loading:G.value,onClick:se},{default:t(()=>[...e[120]||(e[120]=[m(" 下载扩展 ",-1)])]),_:1},8,["loading"]),a(l(L),{loading:W.value,onClick:N},{default:t(()=>[...e[121]||(e[121]=[m(" 刷新状态 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1})]),_:1}),u("div",Ze,[a(l(F),{align:"center",wrap:""},{default:t(()=>[e[127]||(e[127]=u("span",null,"当前状态:",-1)),c.value?.loaded?(x(),D(l(M),{key:0,type:"success"},{default:t(()=>[...e[122]||(e[122]=[m("已加载",-1)])]),_:1})):c.value?.enabled?(x(),D(l(M),{key:1,type:"warning"},{default:t(()=>[...e[123]||(e[123]=[m("等待加载",-1)])]),_:1})):(x(),D(l(M),{key:2,type:"default"},{default:t(()=>[...e[124]||(e[124]=[m("未启用",-1)])]),_:1})),c.value?.libraryExists?(x(),D(l(M),{key:3,type:"success"},{default:t(()=>[...e[125]||(e[125]=[m("库文件存在",-1)])]),_:1})):(x(),D(l(M),{key:4,type:"error"},{default:t(()=>[...e[126]||(e[126]=[m("库文件缺失",-1)])]),_:1})),n.extensions.simple.useJieba?(x(),D(l(M),{key:5,type:c.value?.dictExists?"success":"warning"},{default:t(()=>[m(" 词典"+P(c.value?.dictExists?"可用":"缺失"),1)]),_:1},8,["type"])):Q("",!0)]),_:1}),u("div",Je,[u("div",null," 库文件:"+P(c.value?.resolvedLibraryPath||"未配置"),1),u("div",null," 词典目录:"+P(c.value?.resolvedDictPath||"未配置"),1),u("div",null," 服务器平台:"+P(c.value?.platform||"未知")+" / "+P(c.value?.arch||""),1),c.value?.error?(x(),h("div",Ye,[a(l(M),{type:"error",size:"small"},{default:t(()=>[m(P(c.value.error),1)]),_:1})])):Q("",!0)])])]),_:1})]),_:1}),u("div",Xe,[a(l(F),null,{default:t(()=>[a(l(L),{type:"primary",onClick:te},{default:t(()=>[...e[128]||(e[128]=[m(" 保存记忆配置 ",-1)])]),_:1})]),_:1})]),a(l(f),{class:"inner-card",title:"说明"},{default:t(()=>[e[132]||(e[132]=u("p",null,"记忆功能配置通过独立的API接口管理(/api/memory/config)。",-1)),u("p",null,[e[130]||(e[130]=m(" 记忆数据的管理请前往 ",-1)),a(ne,{to:"/memory"},{default:t(()=>[...e[129]||(e[129]=[m(" 记忆管理 ",-1)])]),_:1}),e[131]||(e[131]=m(" 页面。 ",-1))])]),_:1})]),_:1}),a(l(R),{name:"chaite",tab:"Chaite配置"},{default:t(()=>[a(l(f),{class:"inner-card mb-4"},{header:t(()=>[...e[133]||(e[133]=[u("div",{class:"card-header"},[u("div",{class:"card-title"}," 文件与目录 "),u("div",{class:"card-subtitle"}," 设置Chaite相关文件目录 ")],-1)])]),default:t(()=>[a(l(b),{"label-placement":"left","label-width":"auto",model:o.chaite},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24 s:24 m:12",label:"数据目录",path:"dataDir"},{default:t(()=>[a(l(d),{value:o.chaite.dataDir,"onUpdate:value":e[74]||(e[74]=s=>o.chaite.dataDir=s),placeholder:"相对于插件目录"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"处理器目录",path:"processorsDirPath"},{default:t(()=>[a(l(d),{value:o.chaite.processorsDirPath,"onUpdate:value":e[75]||(e[75]=s=>o.chaite.processorsDirPath=s),placeholder:"相对于插件目录"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"工具目录",path:"toolsDirPath"},{default:t(()=>[a(l(d),{value:o.chaite.toolsDirPath,"onUpdate:value":e[76]||(e[76]=s=>o.chaite.toolsDirPath=s),placeholder:"相对于插件目录"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1}),a(l(f),{class:"inner-card"},{header:t(()=>[...e[134]||(e[134]=[u("div",{class:"card-header"},[u("div",{class:"card-title"}," API与管理面板 "),u("div",{class:"card-subtitle"}," 设置云端API和管理面板配置 ")],-1)])]),default:t(()=>[a(l(b),{"label-placement":"left","label-width":"auto",model:o.chaite},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24",label:"云端API URL",path:"cloudBaseUrl"},{default:t(()=>[a(l(d),{value:o.chaite.cloudBaseUrl,"onUpdate:value":e[77]||(e[77]=s=>o.chaite.cloudBaseUrl=s),placeholder:"输入云端API URL"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"云端API Key",path:"cloudApiKey"},{default:t(()=>[a(l(d),{value:o.chaite.cloudApiKey,"onUpdate:value":e[78]||(e[78]=s=>o.chaite.cloudApiKey=s),type:"password","show-password-on":"click",placeholder:"输入云端API Key"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"认证密钥",path:"authKey"},{default:t(()=>[a(l(d),{value:o.chaite.authKey,"onUpdate:value":e[79]||(e[79]=s=>o.chaite.authKey=s),type:"password","show-password-on":"click",placeholder:"非必要勿修改"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"监听地址",path:"host"},{default:t(()=>[a(l(d),{value:o.chaite.host,"onUpdate:value":e[80]||(e[80]=s=>o.chaite.host=s),placeholder:"管理面板监听地址"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:24 m:12",label:"监听端口",path:"port"},{default:t(()=>[a(l(v),{value:o.chaite.port,"onUpdate:value":e[81]||(e[81]=s=>o.chaite.port=s),min:1,max:65535,style:{width:"100%"},placeholder:"输入监听端口"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["model"])]),_:1})]),_:1}),a(l(R),{name:"vision",tab:"视觉配置"},{default:t(()=>[a(l(f),{class:"inner-card"},{header:t(()=>[...e[135]||(e[135]=[u("span",null,"视觉处理",-1)])]),default:t(()=>[a(l(b),{"label-placement":"left","label-width":"auto",model:o.vision},{default:t(()=>[a(l(g),{cols:24,"x-gap":12,"y-gap":16},{default:t(()=>[a(l(r),{span:"24 s:12 m:12",label:"非视觉模型策略"},{default:t(()=>[a(l(w),{value:o.vision.nonVisionStrategy,"onUpdate:value":e[82]||(e[82]=s=>o.vision.nonVisionStrategy=s),options:[{label:"工具模式(引用文本 + ask_about_image 工具)",value:"tool"},{label:"忽略模式(仅替换为 [图片])",value:"ignore"}]},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:12 m:12",label:"视觉模型渠道ID"},{default:t(()=>[a(l(d),{value:o.vision.visionChannelId,"onUpdate:value":e[83]||(e[83]=s=>o.vision.visionChannelId=s),placeholder:"留空则自动查找第一个支持 visual 的渠道"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:12 m:12",label:"图片描述模型"},{default:t(()=>[a(l(d),{value:o.vision.imageDescriptionModel,"onUpdate:value":e[84]||(e[84]=s=>o.vision.imageDescriptionModel=s),placeholder:"留空则使用渠道默认模型"},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"图片描述系统提示词"},{default:t(()=>[a(l(d),{value:o.vision.imageDescriptionSystemPrompt,"onUpdate:value":e[85]||(e[85]=s=>o.vision.imageDescriptionSystemPrompt=s),type:"textarea",rows:3},null,8,["value"])]),_:1}),a(l(r),{span:"24",label:"默认图片提问"},{default:t(()=>[a(l(d),{value:o.vision.defaultQuestion,"onUpdate:value":e[86]||(e[86]=s=>o.vision.defaultQuestion=s),type:"textarea",rows:2,placeholder:"未指定 question 时的默认提问"},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:12 m:6",label:"最大图片大小 (bytes)"},{default:t(()=>[a(l(v),{value:o.vision.maxImageSize,"onUpdate:value":e[87]||(e[87]=s=>o.vision.maxImageSize=s),min:1,style:{width:"100%"}},null,8,["value"])]),_:1}),a(l(r),{span:"24 s:12 m:6",label:"群聊上下文图片"},{default:t(()=>[a(l(k),{value:o.vision.enableGroupContextImages,"onUpdate:value":e[88]||(e[88]=s=>o.vision.enableGroupContextImages=s)},null,8,["value"]),e[136]||(e[136]=u("span",{class:"text-xs ml-2"},"开启后群聊图片会进入主干对话",-1))]),_:1})]),_:1})]),_:1},8,["model"])]),_:1})]),_:1})]),_:1},8,["value"]),u("div",_e,[a(l(F),null,{default:t(()=>[a(l(L),{type:"primary",onClick:le},{default:t(()=>[...e[137]||(e[137]=[m(" 保存配置 ",-1)])]),_:1})]),_:1})])])])]),_:1})])}}}),vl=xe(el,[["__scopeId","data-v-69dbb2c0"]]);export{vl as default};