UNPKG

chaite

Version:

core for chatgpt-plugin and karin-plugin-chatgpt

2 lines (1 loc) 3.98 kB
import{t as P}from"./processors-CiylGWtc.js";import{d as Q,q as T,K as V,o as g,b as _,w as s,e as l,u as a,g as h,a as n,t as U,C as j,v as d,n as k,B as E,c as z,L,j as u,O as C,k as q}from"./index-D3SoE8bB.js";import{N as D}from"./Alert-wir6kfwu.js";import{_ as F,N as p}from"./FormItem-yXZKI0f3.js";import{N as M}from"./Code-Cesxrx_z.js";const H={class:"grid"},K={class:"context"},G={key:0,class:"compare"},W=Q({__name:"ProcessorTestModal",props:{show:{type:Boolean},processor:{}},emits:["update:show"],setup(y,{emit:I}){const v=y,O=I,B=T(),w=u(!1),i=u("text"),m=u("你好,这是管理面板构造的测试消息。"),f=u("https://example.com/test-image.png"),c=u(""),x=u("console-test"),b=u(""),r=u(),N=C(()=>v.processor?.type==="pre"),S=C(()=>N.value?"user":"assistant");function J(){const t=[];return i.value!=="image"&&m.value&&t.push({type:"text",text:m.value}),i.value!=="text"&&f.value&&t.push({type:"image",image:f.value}),t}function R(){if(!c.value.trim())return[];const t=JSON.parse(c.value);if(!Array.isArray(t))throw new Error("历史消息必须是 JSON 数组");return t}async function A(){if(v.processor?.id)try{w.value=!0,r.value=void 0;const t=await P(v.processor.id,{message:{role:S.value,content:J()},history:R(),userId:x.value||void 0,groupId:b.value||void 0});t.code===0?r.value=t.data:B.error(t.message||"处理器执行失败")}catch(t){B.error(t instanceof Error?t.message:"测试消息无效")}finally{w.value=!1}}return V(()=>v.show,t=>{t&&(r.value=void 0)}),(t,e)=>(g(),_(a(L),{show:y.show,preset:"card",title:"处理器测试台",style:{width:"min(980px, calc(100vw - 32px))"},"onUpdate:show":e[6]||(e[6]=o=>O("update:show",o))},{default:s(()=>[l(a(D),{type:"info","show-icon":!1,style:{"margin-bottom":"16px"}},{default:s(()=>[e[7]||(e[7]=h("正在测试 ",-1)),n("b",null,U(y.processor?.name),1),h("("+U(N.value?"前处理器:UserMessage":"后处理器:AssistantMessage")+")。消息会在真实插件运行时执行,但不会发送给模型或 QQ。",1)]),_:1}),l(a(F),{"label-placement":"top"},{default:s(()=>[n("div",H,[l(a(p),{label:"内置消息样例"},{default:s(()=>[l(a(j),{value:i.value,"onUpdate:value":e[0]||(e[0]=o=>i.value=o),options:[{label:"纯文本",value:"text"},{label:"图片消息",value:"image"},{label:"文本 + 图片",value:"mixed"}]},null,8,["value"])]),_:1}),l(a(p),{label:"测试用户 / 群号"},{default:s(()=>[n("div",K,[l(a(d),{value:x.value,"onUpdate:value":e[1]||(e[1]=o=>x.value=o),placeholder:"用户 QQ"},null,8,["value"]),l(a(d),{value:b.value,"onUpdate:value":e[2]||(e[2]=o=>b.value=o),placeholder:"群号(可选)"},null,8,["value"])])]),_:1})]),i.value!=="image"?(g(),_(a(p),{key:0,label:N.value?"用户消息文本":"助手回复文本"},{default:s(()=>[l(a(d),{value:m.value,"onUpdate:value":e[3]||(e[3]=o=>m.value=o),type:"textarea",autosize:{minRows:4,maxRows:8}},null,8,["value"])]),_:1},8,["label"])):k("",!0),i.value!=="text"?(g(),_(a(p),{key:1,label:"图片 URL"},{default:s(()=>[l(a(d),{value:f.value,"onUpdate:value":e[4]||(e[4]=o=>f.value=o),placeholder:"https://..."},null,8,["value"])]),_:1})):k("",!0),l(a(p),{label:"多轮历史(可选 JSON 数组)"},{default:s(()=>[l(a(d),{value:c.value,"onUpdate:value":e[5]||(e[5]=o=>c.value=o),type:"textarea",placeholder:'[ {"role":"user","content":[{"type":"text","text":"上一句"}]} ]',autosize:{minRows:3,maxRows:6}},null,8,["value"])]),_:1})]),_:1}),l(a(E),{type:"primary",loading:w.value,onClick:A},{default:s(()=>[...e[8]||(e[8]=[h("执行处理器",-1)])]),_:1},8,["loading"]),r.value?(g(),z("div",G,[n("div",null,[e[9]||(e[9]=n("h3",null,"输入",-1)),l(a(M),{code:JSON.stringify(r.value.before,null,2),language:"json","word-wrap":""},null,8,["code"])]),n("div",null,[n("h3",null,"输出 · "+U(r.value.durationMs)+" ms",1),l(a(M),{code:JSON.stringify(r.value.after,null,2),language:"json","word-wrap":""},null,8,["code"])])])):k("",!0)]),_:1},8,["show"]))}}),ae=q(W,[["__scopeId","data-v-a2bf59f3"]]);export{ae as default};