UNPKG

chaite

Version:

core for chatgpt-plugin and karin-plugin-chatgpt

4 lines (3 loc) 13 kB
import{b as X,q as Y,s as Z,c as ee,e as te,g as ae,h as le,i as re,j as se}from"./memory-Cs4cxffC.js";import{d as oe,q as ue,s as ie,o as U,c as T,a as c,e as a,w as l,u as t,D as ne,E as h,F as v,N as f,v as g,B as m,g as I,V as P,b as de,t as C,n as G,L as V,j as x,I as $,G as k,k as pe}from"./index-D3SoE8bB.js";import{_ as M,N as n}from"./FormItem-yXZKI0f3.js";import{N as F,_ as d}from"./Grid-B3ZO_4Zt.js";import{N as p}from"./InputNumber-CRx3qCIC.js";import{N as A}from"./DataTable-il8xWJze.js";import{N as E}from"./Popconfirm-DW1-B0Ft.js";import"./Checkbox-CAwnmj4L.js";import"./RadioGroup-BsD84s4u.js";import"./Ellipsis-BaRgB7ya.js";import"./prop-NnGblK-3.js";import"./download-C2161hUv.js";const fe={class:"chaite-page memory-container"},me={key:0},ce={key:1},ve=oe({__name:"index",setup(ge){const u=ue(),L=x("group-facts"),i=$({groupId:"",facts:[],loading:!1,limit:50,offset:0,queryText:"",queryLimit:10,queryMinImportance:void 0}),j=[{title:"ID",key:"id",width:80},{title:"Fact",key:"fact",ellipsis:{tooltip:!0}},{title:"Topic",key:"topic",width:120,ellipsis:{tooltip:!0}},{title:"Importance",key:"importance",width:100,render(o){return o.importance.toFixed(2)}},{title:"Created At",key:"created_at",width:180},{title:"操作",key:"actions",width:100,render(o){return k(E,{onPositiveClick:()=>H(o.id)},{default:()=>"确认删除这条记忆吗?",trigger:()=>k(m,{size:"small",type:"error"},{default:()=>"删除"})})}}];async function N(){if(!i.groupId){u.warning("请输入Group ID");return}i.loading=!0;try{const o=await X({groupId:i.groupId,limit:i.limit,offset:i.offset});o.isSuccess?(i.facts=o.data,u.success("加载成功")):u.error(o.message||"加载失败")}catch(o){console.error("Failed to load group facts:",o),u.error("加载失败")}finally{i.loading=!1}}async function Q(){if(!i.groupId){u.warning("请输入Group ID");return}if(!i.queryText){u.warning("请输入查询文本");return}i.loading=!0;try{const o=await Y({groupId:i.groupId,query:i.queryText,limit:i.queryLimit,minImportance:i.queryMinImportance});o.isSuccess?(i.facts=o.data,u.success("查询成功")):u.error(o.message||"查询失败")}catch(o){console.error("Failed to query group facts:",o),u.error("查询失败")}finally{i.loading=!1}}const b=x(!1),_=x("");async function O(){if(!i.groupId){u.warning("请输入Group ID");return}if(!_.value.trim()){u.warning("请输入要添加的facts");return}const o=_.value.split(` `).filter(e=>e.trim()).map(e=>({fact:e.trim(),importance:.5}));try{const e=await Z({groupId:i.groupId,facts:o});e.isSuccess?(u.success("保存成功"),b.value=!1,_.value="",await N()):u.error(e.message||"保存失败")}catch(e){console.error("Failed to save group facts:",e),u.error("保存失败")}}async function H(o){try{const e=await ee(i.groupId,String(o));e.isSuccess?(u.success("删除成功"),await N()):u.error(e.message||"删除失败")}catch(e){console.error("Failed to delete group fact:",e),u.error("删除失败")}}const s=$({userId:"",groupId:"",memories:[],loading:!1,limit:50,offset:0,total:0,queryText:"",queryTotalLimit:5,querySearchLimit:3,queryMinImportance:void 0});function S(o){if(!o)return null;const e=o.trim();return e.length>0?e:null}const J=[{title:"ID",key:"id",width:80},{title:"User ID",key:"user_id",width:150,ellipsis:{tooltip:!0}},{title:"Group ID",key:"group_id",width:150,ellipsis:{tooltip:!0}},{title:"记忆内容",key:"value",ellipsis:{tooltip:!0}},{title:"重要度",key:"importance",width:100,render(o){return o.importance.toFixed(2)}},{title:"操作",key:"actions",width:100,render(o){return k(E,{onPositiveClick:()=>R(o.id)},{default:()=>"确认删除这条记忆吗?",trigger:()=>k(m,{size:"small",type:"error"},{default:()=>"删除"})})}}];async function D(){s.loading=!0;try{const o=S(s.groupId),e=await se({userId:s.userId,groupId:o,limit:s.limit,offset:s.offset});e.isSuccess?(s.memories=e.data,s.total=e.data.length,e.data.length||u.info("未找到记忆记录")):(u.error(e.message||"加载失败"),s.total=0)}catch(o){console.error("Failed to load user memories:",o),u.error("加载失败"),s.total=0}finally{s.loading=!1}}async function z(o=!1){o&&(s.offset=0),await D()}const q=x(!1),w=x("");async function K(){if(!s.userId){u.warning("请输入User ID");return}if(!w.value.trim()){u.warning("请输入要添加的memories");return}const o=w.value.split(` `).map(e=>e.trim()).filter(e=>e.length>0).map(e=>{const[r,B]=e.split("|").map(y=>y.trim());if(!r)return null;if(B){const y=Number(B);if(!Number.isNaN(y)&&y>=0&&y<=1)return{value:r,importance:y}}return r}).filter(Boolean);if(o.length===0){u.warning("请按行输入记忆内容,可选格式:记忆文本 或 记忆文本|重要度(0-1)");return}try{const e=S(s.groupId),r=await te({userId:s.userId,groupId:e,memories:o});r.isSuccess?(u.success(`成功更新 ${r.data.updated} 条记忆`),q.value=!1,w.value="",await D()):u.error(r.message||"保存失败")}catch(e){console.error("Failed to upsert user memories:",e),u.error("保存失败")}}async function R(o){try{const e=s.userId?.trim(),r=e?await ae(e,String(o)):await le(String(o));r.isSuccess?(u.success("删除成功"),await D()):u.error(r.message||"删除失败")}catch(e){console.error("Failed to delete user memory:",e),u.error("删除失败")}}async function W(){if(!s.userId){u.warning("请输入User ID");return}if(!s.queryText){u.warning("请输入查询文本");return}s.loading=!0;try{const o=S(s.groupId),e=await re({userId:s.userId,groupId:o,query:s.queryText,totalLimit:s.queryTotalLimit,searchLimit:s.querySearchLimit,minImportance:s.queryMinImportance});e.isSuccess?(s.memories=e.data,u.success("查询成功")):u.error(e.message||"查询失败")}catch(o){console.error("Failed to query user memories:",o),u.error("查询失败")}finally{s.loading=!1}}return ie(()=>{z(!0)}),(o,e)=>(U(),T("div",fe,[e[30]||(e[30]=c("header",{class:"chaite-page-header"},[c("div",null,[c("h1",null,"记忆"),c("p",null,"按群和用户查询、检索与维护聊天记忆。")])],-1)),a(t(f),{class:"chaite-panel",bordered:!1},{default:l(()=>[a(t(ne),{value:L.value,"onUpdate:value":e[17]||(e[17]=r=>L.value=r),type:"line",animated:""},{default:l(()=>[a(t(h),{name:"group-facts",tab:"群组事实记忆"},{default:l(()=>[a(t(v),{vertical:"",size:16},{default:l(()=>[a(t(f),{title:"查询条件",size:"small"},{default:l(()=>[a(t(M),{"label-placement":"left","label-width":"100"},{default:l(()=>[a(t(F),{cols:24,"x-gap":12},{default:l(()=>[a(t(d),{span:8},{default:l(()=>[a(t(n),{label:"Group ID"},{default:l(()=>[a(t(g),{value:i.groupId,"onUpdate:value":e[0]||(e[0]=r=>i.groupId=r),placeholder:"输入群组ID"},null,8,["value"])]),_:1})]),_:1}),a(t(d),{span:4},{default:l(()=>[a(t(n),{label:"Limit"},{default:l(()=>[a(t(p),{value:i.limit,"onUpdate:value":e[1]||(e[1]=r=>i.limit=r),min:1,max:200},null,8,["value"])]),_:1})]),_:1}),a(t(d),{span:4},{default:l(()=>[a(t(n),{label:"Offset"},{default:l(()=>[a(t(p),{value:i.offset,"onUpdate:value":e[2]||(e[2]=r=>i.offset=r),min:0},null,8,["value"])]),_:1})]),_:1}),a(t(d),{span:8},{default:l(()=>[a(t(n),{label:" "},{default:l(()=>[a(t(v),null,{default:l(()=>[a(t(m),{type:"primary",onClick:N},{default:l(()=>[...e[22]||(e[22]=[I(" 加载列表 ",-1)])]),_:1}),a(t(m),{onClick:e[3]||(e[3]=r=>b.value=!0)},{default:l(()=>[...e[23]||(e[23]=[I(" 添加Facts ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),a(t(f),{title:"语义查询",size:"small"},{default:l(()=>[a(t(M),{"label-placement":"left","label-width":"100"},{default:l(()=>[a(t(F),{cols:24,"x-gap":12},{default:l(()=>[a(t(d),{span:10},{default:l(()=>[a(t(n),{label:"查询文本"},{default:l(()=>[a(t(g),{value:i.queryText,"onUpdate:value":e[4]||(e[4]=r=>i.queryText=r),placeholder:"输入查询文本"},null,8,["value"])]),_:1})]),_:1}),a(t(d),{span:4},{default:l(()=>[a(t(n),{label:"返回数量"},{default:l(()=>[a(t(p),{value:i.queryLimit,"onUpdate:value":e[5]||(e[5]=r=>i.queryLimit=r),min:1,max:100},null,8,["value"])]),_:1})]),_:1}),a(t(d),{span:4},{default:l(()=>[a(t(n),{label:"最小重要度"},{default:l(()=>[a(t(p),{value:i.queryMinImportance,"onUpdate:value":e[6]||(e[6]=r=>i.queryMinImportance=r),min:0,max:1,step:.1},null,8,["value"])]),_:1})]),_:1}),a(t(d),{span:6},{default:l(()=>[a(t(n),{label:" "},{default:l(()=>[a(t(m),{type:"primary",onClick:Q},{default:l(()=>[...e[24]||(e[24]=[I(" 查询 ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),a(t(f),{title:"Facts列表",size:"small"},{default:l(()=>[a(t(A),{columns:j,data:i.facts,loading:i.loading,"scroll-x":1e3},{empty:l(()=>[a(t(P),{description:"暂无数据"})]),_:1},8,["data","loading"])]),_:1})]),_:1})]),_:1}),a(t(h),{name:"user-memories",tab:"用户记忆"},{default:l(()=>[a(t(v),{vertical:"",size:16},{default:l(()=>[a(t(f),{title:"查询条件",size:"small"},{default:l(()=>[a(t(M),{"label-placement":"left","label-width":"100"},{default:l(()=>[a(t(F),{cols:24,"x-gap":12},{default:l(()=>[a(t(d),{span:8},{default:l(()=>[a(t(n),{label:"用户 ID"},{default:l(()=>[a(t(g),{value:s.userId,"onUpdate:value":e[7]||(e[7]=r=>s.userId=r),placeholder:"留空表示全部用户"},null,8,["value"])]),_:1})]),_:1}),a(t(d),{span:8},{default:l(()=>[a(t(n),{label:"群组 ID"},{default:l(()=>[a(t(g),{value:s.groupId,"onUpdate:value":e[8]||(e[8]=r=>s.groupId=r),placeholder:"可选,筛选特定群组"},null,8,["value"])]),_:1})]),_:1}),a(t(d),{span:4},{default:l(()=>[a(t(n),{label:"每页条数"},{default:l(()=>[a(t(p),{value:s.limit,"onUpdate:value":e[9]||(e[9]=r=>s.limit=r),min:1,max:200},null,8,["value"])]),_:1})]),_:1}),a(t(d),{span:4},{default:l(()=>[a(t(n),{label:"偏移量"},{default:l(()=>[a(t(p),{value:s.offset,"onUpdate:value":e[10]||(e[10]=r=>s.offset=r),min:0},null,8,["value"])]),_:1})]),_:1}),a(t(d),{span:8},{default:l(()=>[a(t(n),{label:"操作"},{default:l(()=>[a(t(v),null,{default:l(()=>[a(t(m),{type:"primary",onClick:e[11]||(e[11]=r=>z(!0))},{default:l(()=>[...e[25]||(e[25]=[I(" 查询 ",-1)])]),_:1}),a(t(m),{onClick:e[12]||(e[12]=r=>q.value=!0)},{default:l(()=>[...e[26]||(e[26]=[I(" 添加记忆 ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),s.total>0?(U(),de(t(f),{key:0,size:"small",title:"统计"},{default:l(()=>[a(t(v),null,{default:l(()=>[c("span",null,"当前条数:"+C(s.total),1),s.userId?(U(),T("span",me,"当前用户:"+C(s.userId),1)):G("",!0),s.groupId?(U(),T("span",ce,"当前群组:"+C(s.groupId),1)):G("",!0)]),_:1})]),_:1})):G("",!0),a(t(f),{title:"语义检索",size:"small"},{default:l(()=>[a(t(M),{"label-placement":"left","label-width":"100"},{default:l(()=>[a(t(F),{cols:24,"x-gap":12},{default:l(()=>[a(t(d),{span:10},{default:l(()=>[a(t(n),{label:"查询文本"},{default:l(()=>[a(t(g),{value:s.queryText,"onUpdate:value":e[13]||(e[13]=r=>s.queryText=r),placeholder:"输入查询文本"},null,8,["value"])]),_:1})]),_:1}),a(t(d),{span:4},{default:l(()=>[a(t(n),{label:"注入上限"},{default:l(()=>[a(t(p),{value:s.queryTotalLimit,"onUpdate:value":e[14]||(e[14]=r=>s.queryTotalLimit=r),min:1,max:100},null,8,["value"])]),_:1})]),_:1}),a(t(d),{span:4},{default:l(()=>[a(t(n),{label:"检索数量"},{default:l(()=>[a(t(p),{value:s.querySearchLimit,"onUpdate:value":e[15]||(e[15]=r=>s.querySearchLimit=r),min:0,max:100},null,8,["value"])]),_:1})]),_:1}),a(t(d),{span:4},{default:l(()=>[a(t(n),{label:"最低重要度"},{default:l(()=>[a(t(p),{value:s.queryMinImportance,"onUpdate:value":e[16]||(e[16]=r=>s.queryMinImportance=r),min:0,max:1,step:.1},null,8,["value"])]),_:1})]),_:1}),a(t(d),{span:6},{default:l(()=>[a(t(n),{label:" "},{default:l(()=>[a(t(m),{type:"primary",onClick:W},{default:l(()=>[...e[27]||(e[27]=[I(" 查询 ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})]),_:1}),a(t(f),{title:"Memories列表",size:"small"},{default:l(()=>[a(t(A),{columns:J,data:s.memories,loading:s.loading,"scroll-x":1e3},{empty:l(()=>[a(t(P),{description:"暂无数据"})]),_:1},8,["data","loading"])]),_:1})]),_:1})]),_:1})]),_:1},8,["value"])]),_:1}),a(t(V),{show:b.value,"onUpdate:show":e[19]||(e[19]=r=>b.value=r),preset:"dialog",title:"添加Group Facts","positive-text":"保存","negative-text":"取消",onPositiveClick:O},{default:l(()=>[a(t(v),{vertical:""},{default:l(()=>[e[28]||(e[28]=c("div",null,"每行一个fact",-1)),a(t(g),{value:_.value,"onUpdate:value":e[18]||(e[18]=r=>_.value=r),type:"textarea",placeholder:"输入facts,每行一个",rows:10},null,8,["value"])]),_:1})]),_:1},8,["show"]),a(t(V),{show:q.value,"onUpdate:show":e[21]||(e[21]=r=>q.value=r),preset:"dialog",title:"添加User Memories","positive-text":"保存","negative-text":"取消",onPositiveClick:K},{default:l(()=>[a(t(v),{vertical:""},{default:l(()=>[e[29]||(e[29]=c("div",null,"每行一个记忆,可选格式:记忆文本 或 记忆文本|重要度(0-1)",-1)),a(t(g),{value:w.value,"onUpdate:value":e[20]||(e[20]=r=>w.value=r),type:"textarea",placeholder:"例如:我喜欢喝咖啡 或 我喜欢喝咖啡|0.8",rows:10},null,8,["value"])]),_:1})]),_:1},8,["show"])]))}}),Se=pe(ve,[["__scopeId","data-v-b88b7e69"]]);export{Se as default};