chaite
Version:
core for chatgpt-plugin and karin-plugin-chatgpt
2 lines (1 loc) • 4.27 kB
JavaScript
import{d as J,s as g,b as u,o as s,u as t,y as O,w as a,a as _,n as f,c as l,F as p,A as v,e as o,N as i,g as r,t as d,k as z}from"./index-ODYIy7Xh.js";import{N as h,a as N}from"./CollapseItem-Dh60zBP9.js";import{N as k}from"./text-wRfvlJal.js";import{N as V,a as C}from"./Image-Bno4eTxG.js";import"./download-C2161hUv.js";const F={class:"flex justify-between"},L={class:"metadata"},M={class:"message-content"},R={key:0,class:"text-content"},E={key:1,class:"image-content"},U={key:2,class:"reasoning-content"},Z={key:3,class:"tool-content"},q={class:"tool-call-header"},G={key:4,class:"unsupported-content"},H={class:"tool-call-header"},K={key:0,class:"tool-result-header"},P=J({__name:"MessageContentCard",props:{message:{}},setup(w){const n=w,T=g(()=>n.message.toolCalls&&n.message.toolCalls.length>0),A=g(()=>n.message.role==="tool"&&n.message.content&&n.message.content.length>0),I=g(()=>!n.message.content||!Array.isArray(n.message.content)?[]:n.message.content.map(c=>typeof c=="string"?{type:"text",text:c}:c)),S=g(()=>{switch(n.message.role){case"user":return"info";case"assistant":return"success";case"system":return"warning";case"developer":return"default";case"tool":return"error";default:return"default"}}),b=g(()=>{switch(n.message.role){case"user":return"用户";case"assistant":return"AI助手";case"system":return"系统";case"developer":return"开发者";case"tool":return"工具";default:return n.message.role}}),j=g(()=>n.message.createdAt?new Date(n.message.createdAt).toLocaleString():""),B=c=>/^(https?:\/\/|data:image\/)/.test(c),D=c=>/^data:image\/[a-zA-Z+]+;base64,/.test(c),x=g(()=>n.message.token_count||0);return(c,y)=>(s(),u(t(O),{bordered:!1,size:"small",class:"message-card"},{header:a(()=>[_("div",F,[o(t(i),{type:S.value},{default:a(()=>[r(d(b.value),1)]),_:1},8,["type"]),_("div",L,[o(t(i),{size:"small"},{default:a(()=>[r(d(j.value),1)]),_:1}),x.value>0?(s(),u(t(i),{key:0,size:"small"},{default:a(()=>[r(" Token: "+d(x.value),1)]),_:1})):f("",!0)])])]),default:a(()=>[_("div",M,[(s(!0),l(p,null,v(I.value,(e,m)=>(s(),l(p,{key:m},[e.type==="text"?(s(),l("div",R,[o(t(k),null,{default:a(()=>[r(d(e.text),1)]),_:2},1024)])):e.type==="image"?(s(),l("div",E,[B(e.image)||D(e.image)?(s(),u(t(V),{key:0,src:e.image,width:400,"object-fit":"contain","preview-disabled":!1,class:"message-image"},null,8,["src"])):(s(),u(t(k),{key:1,type:"info"},{default:a(()=>y[0]||(y[0]=[r("[图像数据无法显示]")])),_:1}))])):e.type==="reasoning"?(s(),l("div",U,[o(t(h),null,{default:a(()=>[o(t(N),{title:"推理过程"},{default:a(()=>[o(t(k),{class:"reasoning-text"},{default:a(()=>[r(d(e.text),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)])):e.type==="tool"?(s(),l("div",Z,[_("div",q,[e.name?(s(),u(t(i),{key:0,type:"info"},{default:a(()=>[r(d(e.name),1)]),_:2},1024)):(s(),u(t(i),{key:1,type:"info"},{default:a(()=>y[1]||(y[1]=[r("Tool Result")])),_:1}))]),o(t(C),{code:typeof e.content=="string"?e.content:JSON.stringify(e.content,null,2),language:"json"},null,8,["code"])])):(s(),l("div",G,[o(t(k),{type:"info"},{default:a(()=>[r("["+d(e.type)+" 类型内容]",1)]),_:2},1024)]))],64))),128))]),T.value?(s(),u(t(h),{key:0},{default:a(()=>[o(t(N),{title:"工具调用"},{default:a(()=>[(s(!0),l(p,null,v(c.message.toolCalls,(e,m)=>(s(),l("div",{key:m,class:"tool-call"},[_("div",H,[o(t(i),{type:"info"},{default:a(()=>[r(d(e.function.name),1)]),_:2},1024)]),o(t(C),{code:typeof e.function.arguments=="string"?JSON.stringify(JSON.parse(e.function.arguments),null,2):JSON.stringify(e.function.arguments,null,2),language:"json"},null,8,["code"])]))),128))]),_:1})]),_:1})):f("",!0),A.value?(s(),u(t(h),{key:1},{default:a(()=>[o(t(N),{title:"工具结果"},{default:a(()=>[(s(!0),l(p,null,v(c.message.content,(e,m)=>(s(),l("div",{key:m,class:"tool-result"},[e.name||e.tool_call_id?(s(),l("div",K,[e.name?(s(),u(t(i),{key:0,type:"info"},{default:a(()=>[r(d(e.name),1)]),_:2},1024)):f("",!0),e.tool_call_id?(s(),u(t(i),{key:1,type:"warning"},{default:a(()=>[r("ID: "+d(e.tool_call_id),1)]),_:2},1024)):f("",!0)])):f("",!0),o(t(C),{code:typeof e.content=="string"?e.content:JSON.stringify(e.content,null,2),language:"json"},null,8,["code"])]))),128))]),_:1})]),_:1})):f("",!0)]),_:1}))}}),ee=z(P,[["__scopeId","data-v-410ac2d6"]]);export{ee as default};