fischer-agentkit/src/agentkit/server/static/assets/chat-BUezKUB6.js

2 lines
6.6 KiB
JavaScript

import{c as $,I as P,a4 as F,r as p,f as k}from"./index-CMOUF6MJ.js";import{a as y}from"./client-DqZAWx8A.js";var H={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M516 673c0 4.4 3.4 8 7.5 8h185c4.1 0 7.5-3.6 7.5-8v-48c0-4.4-3.4-8-7.5-8h-185c-4.1 0-7.5 3.6-7.5 8v48zm-194.9 6.1l192-161c3.8-3.2 3.8-9.1 0-12.3l-192-160.9A7.95 7.95 0 00308 351v62.7c0 2.4 1 4.6 2.9 6.1L420.7 512l-109.8 92.2a8.1 8.1 0 00-2.9 6.1V673c0 6.8 7.9 10.5 13.1 6.1zM880 112H144c-17.7 0-32 14.3-32 32v736c0 17.7 14.3 32 32 32h736c17.7 0 32-14.3 32-32V144c0-17.7-14.3-32-32-32zm-40 728H184V184h656v656z"}}]},name:"code",theme:"outlined"};function I(n){for(var t=1;t<arguments.length;t++){var a=arguments[t]!=null?Object(arguments[t]):{},i=Object.keys(a);typeof Object.getOwnPropertySymbols=="function"&&(i=i.concat(Object.getOwnPropertySymbols(a).filter(function(o){return Object.getOwnPropertyDescriptor(a,o).enumerable}))),i.forEach(function(o){L(n,o,a[o])})}return n}function L(n,t,a){return t in n?Object.defineProperty(n,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[t]=a,n}var D=function(t,a){var i=I({},t,a.attrs);return $(P,I({},i,{icon:H}),null)};D.displayName="CodeOutlined";D.inheritAttrs=!1;var B={icon:{tag:"svg",attrs:{viewBox:"64 64 896 896",focusable:"false"},children:[{tag:"path",attrs:{d:"M464 512a48 48 0 1096 0 48 48 0 10-96 0zm200 0a48 48 0 1096 0 48 48 0 10-96 0zm-400 0a48 48 0 1096 0 48 48 0 10-96 0zm661.2-173.6c-22.6-53.7-55-101.9-96.3-143.3a444.35 444.35 0 00-143.3-96.3C630.6 75.7 572.2 64 512 64h-2c-60.6.3-119.3 12.3-174.5 35.9a445.35 445.35 0 00-142 96.5c-40.9 41.3-73 89.3-95.2 142.8-23 55.4-34.6 114.3-34.3 174.9A449.4 449.4 0 00112 714v152a46 46 0 0046 46h152.1A449.4 449.4 0 00510 960h2.1c59.9 0 118-11.6 172.7-34.3a444.48 444.48 0 00142.8-95.2c41.3-40.9 73.8-88.7 96.5-142 23.6-55.2 35.6-113.9 35.9-174.5.3-60.9-11.5-120-34.8-175.6zm-151.1 438C704 845.8 611 884 512 884h-1.7c-60.3-.3-120.2-15.3-173.1-43.5l-8.4-4.5H188V695.2l-4.5-8.4C155.3 633.9 140.3 574 140 513.7c-.4-99.7 37.7-193.3 107.6-263.8 69.8-70.5 163.1-109.5 262.8-109.9h1.7c50 0 98.5 9.7 144.2 28.9 44.6 18.7 84.6 45.6 119 80 34.3 34.3 61.3 74.4 80 119 19.4 46.2 29.1 95.2 28.9 145.8-.6 99.6-39.7 192.9-110.1 262.7z"}}]},name:"message",theme:"outlined"};function W(n){for(var t=1;t<arguments.length;t++){var a=arguments[t]!=null?Object(arguments[t]):{},i=Object.keys(a);typeof Object.getOwnPropertySymbols=="function"&&(i=i.concat(Object.getOwnPropertySymbols(a).filter(function(o){return Object.getOwnPropertyDescriptor(a,o).enumerable}))),i.forEach(function(o){J(n,o,a[o])})}return n}function J(n,t,a){return t in n?Object.defineProperty(n,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):n[t]=a,n}var j=function(t,a){var i=W({},t,a.attrs);return $(P,W({},i,{icon:B}),null)};j.displayName="MessageOutlined";j.inheritAttrs=!1;function h(){return`${Date.now()}-${Math.random().toString(36).substring(2,9)}`}const T=F("chat",()=>{const n=p([]),t=p(null),a=p(!1),i=p(!1),o=p(null),v=p([]),_=k(()=>n.value.find(e=>e.id===t.value)),z=k(()=>{var e;return((e=_.value)==null?void 0:e.messages)??[]});async function N(){try{const e=await y.getConversations();n.value=e}catch(e){console.error("Failed to load conversations:",e)}}function A(e){t.value=e,v.value=[]}function b(){const e={id:h(),title:"新对话",messages:[],created_at:new Date().toISOString(),updated_at:new Date().toISOString()};n.value.unshift(e),t.value=e.id,v.value=[]}async function w(e,r){t.value||b();const s=t.value,c={id:h(),role:"user",content:e,timestamp:new Date().toISOString()};S(s,c);const u={id:h(),role:"assistant",content:"",timestamp:new Date().toISOString(),status:"pending"};S(s,u),a.value=!0;try{const d={message:e,conversation_id:s,sources:r},f=await y.chat(d);g(s,u.id,{content:f.message,matched_skill:f.matched_skill,routing_method:f.routing_method,confidence:f.confidence,task_id:f.task_id,status:f.status});const m=n.value.find(l=>l.id===s);m&&m.messages.length<=2&&(m.title=e.length>20?`${e.substring(0,20)}...`:e)}catch(d){g(s,u.id,{content:`请求失败: ${d instanceof Error?d.message:"未知错误"}`,status:"completed"})}finally{a.value=!1}}function E(e,r){if(t.value||b(),!o.value||o.value.readyState!==WebSocket.OPEN){w(e,r);return}const s=t.value,c={id:h(),role:"user",content:e,timestamp:new Date().toISOString()};S(s,c);const u={id:h(),role:"assistant",content:"",timestamp:new Date().toISOString(),status:"pending"};S(s,u),a.value=!0,v.value=[];const d={type:"chat",message:e,sources:r,conversation_id:s};o.value.send(JSON.stringify(d))}function C(){if(o.value&&o.value.readyState===WebSocket.OPEN)return;const e=y.createWebSocket();e.onopen=()=>{i.value=!0,console.log("WebSocket connected")},e.onmessage=r=>{try{const s=JSON.parse(r.data);console.log("[Chat WS] Received:",s.type,s),x(s)}catch(s){console.error("Failed to parse WebSocket message:",s)}},e.onclose=()=>{i.value=!1,console.log("WebSocket disconnected"),setTimeout(()=>{(!o.value||o.value.readyState===WebSocket.CLOSED)&&C()},3e3)},e.onerror=r=>{console.error("WebSocket error:",r),i.value=!1},o.value=e}function V(){o.value&&(o.value.close(),o.value=null,i.value=!1)}function x(e){var d,f,m;const r=t.value;if(!r)return;const s=n.value.find(l=>l.id===r);if(!s)return;const c=[...s.messages].reverse().find(l=>l.role==="assistant"),u=e.data??e;switch(e.type){case"routing":c&&g(r,c.id,{matched_skill:e.skill,confidence:e.confidence,routing_method:e.method}),v.value.push(`路由至: ${e.skill} (置信度: ${(e.confidence*100).toFixed(1)}%)`);break;case"step":{const l=u,O=l.event_type==="final_answer"?"生成最终回答":l.event_type==="tool_call"?`调用工具: ${((d=l.data)==null?void 0:d.tool_name)||((f=l.data)==null?void 0:f.name)||"#"}`:l.event_type==="thinking"?"思考中...":`步骤 ${l.step||""}: ${l.event_type||""}`;if(v.value.push(O),l.event_type==="final_answer"&&c){const M=((m=l.data)==null?void 0:m.output)||"";M&&g(r,c.id,{content:(c.content||"")+M})}break}case"result":{const l=u.message||u.content||"";if(c){const O=l||c.content||"";g(r,c.id,{content:O,status:"completed"})}a.value=!1,v.value=[];break}case"error":c&&g(r,c.id,{content:`错误: ${u.message||"未知错误"}`,status:"completed"}),a.value=!1,v.value=[];break}}function S(e,r){const s=n.value.find(c=>c.id===e);s&&(s.messages.push(r),s.updated_at=new Date().toISOString())}function g(e,r,s){const c=n.value.find(d=>d.id===e);if(!c)return;const u=c.messages.find(d=>d.id===r);u&&Object.assign(u,s)}return{conversations:n,currentConversationId:t,isLoading:a,isWsConnected:i,streamingSteps:v,currentConversation:_,currentMessages:z,loadConversations:N,selectConversation:A,createConversation:b,sendMessage:w,sendWsMessage:E,connectWebSocket:C,disconnectWebSocket:V}});export{D as C,j as M,T as u};