UNPKG

ai-chatbot-ui

Version:

chat component

5 lines (4 loc) 45.6 kB
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});var Ie=require("use-debounce"),E=require("react"),ge=require("zustand"),Ce=require("@fortaine/fetch-event-source"),Fe=require("crypto-js"),H=require("antd"),qe=require("react-markdown"),Ue=require("remark-math"),Be=require("remark-breaks"),De=require("rehype-katex"),He=require("remark-gfm"),Ve=require("rehype-highlight"),$e=require("mermaid");function B(a){return a&&typeof a=="object"&&"default"in a?a:{default:a}}var c=B(E),ze=B(Fe),Ke=B(qe),We=B(Ue),Ge=B(Be),Je=B(De),Qe=B(He),Xe=B(Ve),Ye=B($e),Ze=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function et(a,e){let t;try{t=a()}catch{return}return{getItem:n=>{var d;const u=o=>o===null?null:JSON.parse(o,e==null?void 0:e.reviver),p=(d=t.getItem(n))!=null?d:null;return p instanceof Promise?p.then(u):u(p)},setItem:(n,d)=>t.setItem(n,JSON.stringify(d,e==null?void 0:e.replacer)),removeItem:n=>t.removeItem(n)}}(function(){function a(r,i){if(!(r instanceof i))throw new TypeError("Cannot call a class as a function")}function e(r,i){for(var m=0;m<i.length;m++){var l=i[m];l.enumerable=l.enumerable||!1,l.configurable=!0,"value"in l&&(l.writable=!0),Object.defineProperty(r,l.key,l)}}function t(r,i,m){return i&&e(r.prototype,i),m&&e(r,m),Object.defineProperty(r,"prototype",{writable:!1}),r}function n(r,i){if(typeof i!="function"&&i!==null)throw new TypeError("Super expression must either be null or a function");r.prototype=Object.create(i&&i.prototype,{constructor:{value:r,writable:!0,configurable:!0}}),Object.defineProperty(r,"prototype",{writable:!1}),i&&u(r,i)}function d(r){return d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(i){return i.__proto__||Object.getPrototypeOf(i)},d(r)}function u(r,i){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(m,l){return m.__proto__=l,m},u(r,i)}function p(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function o(r){if(r===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return r}function k(r,i){if(i&&(typeof i=="object"||typeof i=="function"))return i;if(i!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return o(r)}function S(r){var i=p();return function(){var m,l=d(r);if(i){var C=d(this).constructor;m=Reflect.construct(l,arguments,C)}else m=l.apply(this,arguments);return k(this,m)}}function T(r,i){for(;!Object.prototype.hasOwnProperty.call(r,i)&&(r=d(r))!==null;);return r}function g(){return g=typeof Reflect!="undefined"&&Reflect.get?Reflect.get.bind():function(r,i,m){var l=T(r,i);if(l){var C=Object.getOwnPropertyDescriptor(l,i);return C.get?C.get.call(arguments.length<3?r:m):C.value}},g.apply(this,arguments)}var y=function(){function r(){a(this,r),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return t(r,[{key:"addEventListener",value:function(i,m,l){i in this.listeners||(this.listeners[i]=[]),this.listeners[i].push({callback:m,options:l})}},{key:"removeEventListener",value:function(i,m){if(i in this.listeners){for(var l=this.listeners[i],C=0,j=l.length;C<j;C++)if(l[C].callback===m)return void l.splice(C,1)}}},{key:"dispatchEvent",value:function(i){if(i.type in this.listeners){for(var m=this.listeners[i.type].slice(),l=0,C=m.length;l<C;l++){var j=m[l];try{j.callback.call(this,i)}catch(V){Promise.resolve().then(function(){throw V})}j.options&&j.options.once&&this.removeEventListener(i.type,j.callback)}return!i.defaultPrevented}}}]),r}(),f=function(r){n(m,r);var i=S(m);function m(){var l;return a(this,m),(l=i.call(this)).listeners||y.call(o(l)),Object.defineProperty(o(l),"aborted",{value:!1,writable:!0,configurable:!0}),Object.defineProperty(o(l),"onabort",{value:null,writable:!0,configurable:!0}),Object.defineProperty(o(l),"reason",{value:void 0,writable:!0,configurable:!0}),l}return t(m,[{key:"toString",value:function(){return"[object AbortSignal]"}},{key:"dispatchEvent",value:function(l){l.type==="abort"&&(this.aborted=!0,typeof this.onabort=="function"&&this.onabort.call(this,l)),g(d(m.prototype),"dispatchEvent",this).call(this,l)}}]),m}(y),b=function(){function r(){a(this,r),Object.defineProperty(this,"signal",{value:new f,writable:!0,configurable:!0})}return t(r,[{key:"abort",value:function(i){var m;try{m=new Event("abort")}catch{typeof document!="undefined"?document.createEvent?(m=document.createEvent("Event")).initEvent("abort",!1,!1):(m=document.createEventObject()).type="abort":m={type:"abort",bubbles:!1,cancelable:!1}}var l=i;if(l===void 0)if(typeof document=="undefined")(l=new Error("This operation was aborted")).name="AbortError";else try{l=new DOMException("signal is aborted without reason")}catch{(l=new Error("This operation was aborted")).name="AbortError"}this.signal.reason=l,this.signal.dispatchEvent(m)}},{key:"toString",value:function(){return"[object AbortController]"}}]),r}();function w(r){return!!r.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL||typeof r.Request=="function"&&!r.Request.prototype.hasOwnProperty("signal")||!r.AbortController}function v(r){typeof r=="function"&&(r={fetch:r});var i=r,m=i.fetch,l=i.Request,C=l===void 0?m.Request:l,j=i.AbortController,V=i.__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL,K=V!==void 0&&V;if(!w({fetch:m,Request:C,AbortController:j,__FORCE_INSTALL_ABORTCONTROLLER_POLYFILL:K}))return{fetch:m,Request:F};var F=C;(F&&!F.prototype.hasOwnProperty("signal")||K)&&(F=function(q,A){var P;A&&A.signal&&(P=A.signal,delete A.signal);var U=new C(q,A);return P&&Object.defineProperty(U,"signal",{writable:!1,enumerable:!1,configurable:!0,value:P}),U},F.prototype=C.prototype);var Z=m,ie=function(q,A){var P=F&&F.prototype.isPrototypeOf(q)?q.signal:A?A.signal:void 0;if(P){var U;try{U=new DOMException("Aborted","AbortError")}catch{(U=new Error("Aborted")).name="AbortError"}if(P.aborted)return Promise.reject(U);var ce=new Promise(function(le,de){P.addEventListener("abort",function(){return de(U)},{once:!0})});return A&&A.signal&&delete A.signal,Promise.race([ce,Z(q,A)])}return Z(q,A)};return{fetch:ie,Request:F}}typeof Symbol!="undefined"&&Symbol.toStringTag&&(b.prototype[Symbol.toStringTag]="AbortController",f.prototype[Symbol.toStringTag]="AbortSignal"),function(r){if(w(r)&&r.fetch){var i=v(r),m=i.fetch,l=i.Request;r.fetch=m,r.Request=l,Object.defineProperty(r,"AbortController",{writable:!0,enumerable:!1,configurable:!0,value:b}),Object.defineProperty(r,"AbortSignal",{writable:!0,enumerable:!1,configurable:!0,value:f})}}(typeof self!="undefined"?self:Ze)})();const Y=a=>e=>{try{const t=a(e);return t instanceof Promise?t:{then:n=>Y(n)(t),catch(n){return this}}}catch(t){return{then(n){return this},catch:n=>Y(n)(t)}}},ve=(a,e)=>"getStorage"in e||"serialize"in e||"deserialize"in e?((t,n)=>(d,u,p)=>{let o={getStorage:()=>localStorage,serialize:JSON.stringify,deserialize:JSON.parse,partialize:i=>i,version:0,merge:(i,m)=>({...m,...i}),...n},k=!1;const S=new Set,T=new Set;let g;try{g=o.getStorage()}catch{}if(!g)return t((...i)=>{d(...i)},u,p);const y=Y(o.serialize),f=()=>{const i=o.partialize({...u()});let m;const l=y({state:i,version:o.version}).then(C=>g.setItem(o.name,C)).catch(C=>{m=C});if(m)throw m;return l},b=p.setState;p.setState=(i,m)=>{b(i,m),f()};const w=t((...i)=>{d(...i),f()},u,p);let v;const r=()=>{var i;if(!g)return;k=!1,S.forEach(l=>l(u()));const m=((i=o.onRehydrateStorage)==null?void 0:i.call(o,u()))||void 0;return Y(g.getItem.bind(g))(o.name).then(l=>{if(l)return o.deserialize(l)}).then(l=>{if(l){if(typeof l.version!="number"||l.version===o.version)return l.state;if(o.migrate)return o.migrate(l.state,l.version)}}).then(l=>{var C;return v=o.merge(l,(C=u())!=null?C:w),d(v,!0),f()}).then(()=>{m==null||m(v,void 0),k=!0,T.forEach(l=>l(v))}).catch(l=>{m==null||m(void 0,l)})};return p.persist={setOptions:i=>{o={...o,...i},i.getStorage&&(g=i.getStorage())},clearStorage:()=>{g==null||g.removeItem(o.name)},getOptions:()=>o,rehydrate:()=>r(),hasHydrated:()=>k,onHydrate:i=>(S.add(i),()=>{S.delete(i)}),onFinishHydration:i=>(T.add(i),()=>{T.delete(i)})},r(),v||w})(a,e):((t,n)=>(d,u,p)=>{let o={storage:et(()=>localStorage),partialize:r=>r,version:0,merge:(r,i)=>({...i,...r}),...n},k=!1;const S=new Set,T=new Set;let g=o.storage;if(!g)return t((...r)=>{d(...r)},u,p);const y=()=>{const r=o.partialize({...u()});return g.setItem(o.name,{state:r,version:o.version})},f=p.setState;p.setState=(r,i)=>{f(r,i),y()};const b=t((...r)=>{d(...r),y()},u,p);let w;const v=()=>{var r,i;if(!g)return;k=!1,S.forEach(l=>{var C;return l((C=u())!=null?C:b)});const m=((i=o.onRehydrateStorage)==null?void 0:i.call(o,(r=u())!=null?r:b))||void 0;return Y(g.getItem.bind(g))(o.name).then(l=>{if(l){if(typeof l.version!="number"||l.version===o.version)return l.state;if(o.migrate)return o.migrate(l.state,l.version)}}).then(l=>{var C;return w=o.merge(l,(C=u())!=null?C:b),d(w,!0),y()}).then(()=>{m==null||m(w,void 0),w=u(),k=!0,T.forEach(l=>l(w))}).catch(l=>{m==null||m(void 0,l)})};return p.persist={setOptions:r=>{o={...o,...r},r.storage&&(g=r.storage)},clearStorage:()=>{g==null||g.removeItem(o.name)},getOptions:()=>o,rehydrate:()=>v(),hasHydrated:()=>k,onHydrate:r=>(S.add(r),()=>{S.delete(r)}),onFinishHydration:r=>(T.add(r),()=>{T.delete(r)})},o.skipHydration||v(),w||b})(a,e),pe="/llm/chatbot/chat/api/llm/v1";var se=(a=>(a.Chat="chat-store",a.Access="access-store",a.Config="config-store",a))(se||{});const tt={sceneChat:`${window.location.protocol}//openapi.cmstest.com/test/llm/v1/openapi/scene/query`,chat:`${window.location.protocol}//openapi.cmstest.com/test/llm/v1/openapi/query`,wsChat:"ws://openapi.cmstest.com/test/llm/v1/openapi/query/ws"},nt=(window.location.protocol,window.location.protocol,"ws://open.cmschina.com.cn/prod/llm/v1/openapi/query/ws"),X=15;let ne=0;const Te=ge.create()(ve((a,e)=>({accessCode:"",token:"Q01TX0FJX0xMTV9BSTEwNjFfQ0hBVEJPVEBsTXZ2S2wwc3YvQkthUGdxNzBGWllCQk10SEtSOG9haFBtNG1lNUlFc250N1RPTExVSDY5ak1reDlYNGdTNVZPTWM1eVNjVHppVkprNGo2WmFKcmR3WkdTTFhMcGV1bW16WnJTd2JQUE4wdnVTbXhyOG1BaGtjVE9RVG5uL0xzU1FYZXVXejgyOUNqbWxYamUzQ3hMTVRWTG5qSVZVQzZiTElrRmx4QzYyRVFzaGxNWlpFV1RvdjhRWjBYNjM3OGkxU2pKNHdNejZEeEwvV2F2VDJMR3RMRzNidDlIVHpGRUxLam84bWVtZzNVPQ%3D%3D",needCode:!0,hideUserApiKey:!1,hideBalanceQuery:!1,disableGPT4:!1,openaiUrl:"/chat/api",hasAuth:!1,userInfo:{userName:"",autoGrpName:"",fullOrgName:"",oaCode:""},enabledAccessControl:()=>(e().fetch(),e().needCode),updateCode(t){a(()=>({accessCode:t==null?void 0:t.trim()}))},updateToken(t){a(()=>({token:t==null?void 0:t.trim()}))},updateOpenAiUrl(t){a(()=>({openaiUrl:t==null?void 0:t.trim()}))},isAuthorized:()=>(e().fetch(),!!e().token||!!e().accessCode||!e().enabledAccessControl()),async validToken(){const t=window.location.search.split("=")[1];await fetch(`${pe}/oaauth/validate`,{method:"GET",headers:{"Oa-Authorization":t}}).then(n=>Promise.all([n.status,n.json()])).then(([,n])=>{a(()=>({hasAuth:n.data.valid})),a(()=>({userInfo:n.data.oa_info})),a(()=>({hasAuth:!0}))}).catch(()=>{a(()=>({hasAuth:!1}))})},async ssoLogin(){if(localStorage.getItem("Authorization")){const t=localStorage.getItem("Authorization")||"";await fetch(`${pe}/user/info`,{method:"GET",headers:{"LLM-Authorization":t}}).then(n=>Promise.all([n.status,n.json()])).then(([,n])=>{a(()=>({token:t})),a(()=>({hasAuth:!0})),a(()=>({userInfo:n.data.user}))}).catch(()=>{a(()=>({hasAuth:!1}))})}else a(()=>({hasAuth:!1}))},fetch(){if(!(ne>0))if(ne=1,window.location.href.includes("?")){const t=window.location.search.split("=")[1];a({token:t}),ne=2}else a({token:""}),ne=2}}),{name:se.Access,version:1}));var G=(a=>(a.Enter="Enter",a.CtrlEnter="Ctrl + Enter",a.ShiftEnter="Shift + Enter",a.AltEnter="Alt + Enter",a.MetaEnter="Meta + Enter",a))(G||{});const Ne={submitKey:"Enter",avatar:"1f603",fontSize:14,theme:"auto",tightBorder:!0,env:"prod",customHeader:null,customUrl:""},he=ge.create()(ve((a,e)=>({...Ne,reset(){a(()=>({...Ne}))},update(t){const n={...e()};t(n),a(()=>n)}}),{name:se.Config,version:3.6}));async function oe(a,e){try{await navigator.clipboard.writeText(a)}catch{const n=document.createElement("textarea");n.value=a,document.body.appendChild(n),n.focus(),n.select();try{document.execCommand("copy")}catch{}document.body.removeChild(n)}}const at=600;function ot(){const{width:a}=function(){const[e,t]=E.useState({width:window.innerWidth,height:window.innerHeight});return E.useEffect(()=>{const n=()=>{t({width:window.innerWidth,height:window.innerHeight})};return window.addEventListener("resize",n),()=>{window.removeEventListener("resize",n)}},[]),e}();return a<=at}function ke(a,e){let t=document.getElementById(a);return t||(t=document.createElement("span"),t.style.position="absolute",t.style.wordBreak="break-word",t.style.fontSize="14px",t.style.transform="translateY(-200vh)",t.style.pointerEvents="none",t.style.opacity="0",t.id=a,document.body.appendChild(t),e==null||e(t)),t}function rt(a){const e=ke("__measure"),t=ke("__single_measure",o=>{o.innerText="TEXT_FOR_MEASURE"}),n=function(o){const k=window.getComputedStyle(o),S=parseFloat(k.paddingLeft)+parseFloat(k.paddingRight);return o.clientWidth-S}(a);e.style.width=n+"px",e.innerText=a.value!==""?a.value:"1",e.style.fontSize=a.style.fontSize;const d=a.value.endsWith(` `),u=parseFloat(window.getComputedStyle(e).height),p=parseFloat(window.getComputedStyle(t).height);return Math.round(u/p)+(d?1:0)}function st(){const a=he.getState(),e=a.customHeader;let t,n,d,u;if(e.AppKey&&e.AppSecret&&e.Source&&e.payload||!e){let p=function(g){const y=new TextEncoder().encode(g),f=btoa(String.fromCharCode(...y));return encodeURIComponent(f)};a.env==="test"?(t="870c84e9-90bf-4253-8cd2-a865bcc50bbf",n="eb1a03a55969c7c6f53c8af5e64ac5ea",d="5fed2f09-e1da-455e-8446-6440bb739ca6",u={orgId:"OR1000322706",orgName:"\u7EFC\u5408\u4E1A\u52A1\u5F00\u53D1\u90E8",fullOrgName:"\u62DB\u5546\u603B\u90E8_\u91D1\u878D\u79D1\u6280\u4E2D\u5FC3_\u7EFC\u5408\u4E1A\u52A1\u5F00\u53D1\u90E8",oaCode:"hufeiran",userName:"\u80E1\u6590\u7136"}):a.env==="prod"&&(t="d7e47fd1-e6c1-4965-b14e-dd216a5da2dd",n="9f3728cb0510648ae842c363342d68e5",d="6d538cf1-0df2-4a7b-8337-c97c03c5afab",u={orgId:"OR1000322706",orgName:"\u7EFC\u5408\u4E1A\u52A1\u5F00\u53D1\u90E8",fullOrgName:"\u62DB\u5546\u603B\u90E8_\u91D1\u878D\u79D1\u6280\u4E2D\u5FC3_\u7EFC\u5408\u4E1A\u52A1\u5F00\u53D1\u90E8",oaCode:"hufeiran",userName:"\u80E1\u6590\u7136"}),e.Source!==""&&(t=e.AppKey,n=e.AppSecret,d=e.Source,u=e.payload);const o=(g,y,f)=>{var b=new Date().toUTCString(),w='hmac username="'+t+'", algorithm="hmac-sha1", headers="x-date source x-custom-payload", signature="',v="x-date: "+b+` source: `+g+` x-custom-payload: `+f,r=ze.default.HmacSHA1(v,y);return{sign:r=w+(r=ze.default.enc.Base64.stringify(r))+'"',dateTime:b}},k=p(JSON.stringify(u)),{sign:S,dateTime:T}=o(d,n,k);return{Source:d,"X-Date":T,Authorization:S,"X-Custom-Payload":k}}return e}class it{async chat(e){var d,u,p;let t={stream:!0,custom_data:e.customData,query:e.content,session_id:e.session.session_id,debug:1};e.session.sceneId!==""&&(t.sceneId=e.session.sceneId,t.sceneType=e.session.sceneType,t.id=e.session.id);let n="";try{let o="",k=!1;const S=()=>{k||(n!==""?e.onFinish(o,n):e.onFinish(o),k=!0)};(d=e.onOpen)==null||d.call(e);const T=()=>{var y,f;let g;try{"WebSocket"in window?g=new WebSocket(nt,encodeURIComponent(decodeURIComponent(Te.getState().token))):(y=e.onError)==null||y.call(e,{message:"\u5F53\u524D\u6D4F\u89C8\u5668\u4E0D\u652F\u6301websocket"}),g.onopen=()=>{var b;try{setTimeout(()=>{var w;g.readyState===g.OPEN?g.send(JSON.stringify(t)):(w=e.onError)==null||w.call(e,{message:"websocket\u8BF7\u6C42\u521B\u5EFA\u5F02\u5E38"})},500)}catch{(b=e.onError)==null||b.call(e,{message:"websocket\u8BF7\u6C42\u53D1\u9001\u5F02\u5E38"})}},g.onerror=b=>{var w;(w=e.onError)==null||w.call(e,{message:"\u670D\u52A1\u5668\u8FDE\u63A5\u5F02\u5E38"})},g.onclose=()=>{S()},g.onmessage=b=>{var i,m,l;const w=b.data,v=JSON.parse(w),r=v.data.answers[0].answer;try{if(v.code===0){if(o=r,v.data.done)return(i=e.onUpdate)==null||i.call(e,o,v.data),_e.getState().setSessionId(v.data.session_id||v.data.sessionId,e.session.id),S();(m=e.onUpdate)==null||m.call(e,o,v.data)}else(l=e.onError)==null||l.call(e,{message:r})}catch{}}}catch{(f=e.onError)==null||f.call(e,{message:"websocket\u8FDE\u63A5\u521B\u5EFA\u5931\u8D25"})}};if(navigator.userAgent.includes("iPhone"))n="websocket",T();else{n="";const g=new AbortController;(u=e.onController)==null||u.call(e,g);const y=e.url,f={method:"post",body:JSON.stringify(t),signal:g.signal,headers:st()},b=setTimeout(()=>g.abort(),6e4);g.signal.onabort=S,Ce.fetchEventSource(y,{...f,async onopen(w){var r,i;clearTimeout(b);const v=w.headers.get("content-type");return v!=null&&v.startsWith("text/plain")?(o=await w.clone().text(),S()):w.ok&&((r=w.headers.get("content-type"))==null?void 0:r.startsWith(Ce.EventStreamContentType))&&w.status===200?void 0:((i=e.onError)==null||i.call(e,{message:"\u670D\u52A1\u5668\u8FDE\u63A5\u65AD\u5F00"}),S())},onmessage(w){var r,i,m;const v=JSON.parse(w.data);if(v.code===0){if(o=Array.isArray(v.data.answers)?v.data.answers[0].answer:v.data.answer,v.data.done)return(r=e.onUpdate)==null||r.call(e,o,v.data),_e.getState().setSessionId(v.data.session_id||v.data.sessionId,e.session.id),S();(i=e.onUpdate)==null||i.call(e,o,v.data)}else(m=e.onError)==null||m.call(e,{message:v.message})},onclose(){S()},onerror(w){var v;throw(v=e.onError)==null||v.call(e,{message:"\u521B\u5EFA\u8FDE\u63A5\u9519\u8BEF"}),w},openWhenHidden:!0})}}catch{(p=e.onError)==null||p.call(e,{message:"\u521B\u5EFA\u8FDE\u63A5\u5931\u8D25"})}}async models(){return await fetch(`${pe}/model/getAll`,{method:"get",headers:{...lt()}}).then(e=>Promise.all([e.status,e.json()])).then(([,e])=>e.data.models).catch(e=>{})}}const ct=new class{constructor(){this.llm=new it}config(){}prompts(){}masks(){}};function lt(){return{"Content-Type":"application/json","x-requested-with":"XMLHttpRequest","LLM-Authorization":Te.getState().token}}const $={controllers:{},addController(a,e,t){const n=this.key(a,e);return this.controllers[n]=t,n},stop(a,e){const t=this.key(a,e),n=this.controllers[t];n==null||n.abort()},stopAll(){Object.values(this.controllers).forEach(a=>a.abort())},hasPending(){return Object.values(this.controllers).length>0},remove(a,e){const t=this.key(a,e);delete this.controllers[t]},key:(a,e)=>`${a},${e}`};let dt=(a=21)=>crypto.getRandomValues(new Uint8Array(a)).reduce((e,t)=>e+=(t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_","");function re(a){return{id:dt(),date:new Date().toLocaleString(),role:"user",content:"",...a}}function ae(){return{sceneType:"",session_id:"",id:"",topic:"\u65B0\u7684\u804A\u5929",memoryPrompt:"",messages:[],stat:{tokenCount:0,wordCount:0,charCount:0},lastUpdate:Date.now(),lastSummarizeIndex:0,model:"gpt-3.5-turbo",isNewChat:!0,sceneId:"",sceneConfig:null,instructParams:[],chatType:"normal",fileUploading:!1,fileSearching:!1,fileChat:!1,fileList:[]}}re({role:"assistant",content:"\u6B22\u8FCE\u4F7F\u7528\u672CAI\u5DE5\u5177\u{1F601}\uFF0CChatBot\u4EA7\u54C1\u6B63\u4E0D\u65AD\u6253\u78E8\u4E2D\uFF0C\u4F7F\u7528\u8FC7\u7A0B\u4E2D\u6709\u4EFB\u4F55\u95EE\u9898\u548C\u5EFA\u8BAE\u8BF7\u4E0E\u91D1\u79D1\u7EFC\u5F00\u90E8AI\u56E2\u961F\u8054\u7CFB\uFF0C\u5341\u5206\u611F\u8C22"});const _e=ge.create()(ve((a,e)=>({sessions:[ae()],currentSessionIndex:0,clearSessions(){a(()=>({sessions:[ae()],currentSessionIndex:0}))},selectSession(t){a({currentSessionIndex:t})},moveSession(t,n){a(d=>{const{sessions:u,currentSessionIndex:p}=d,o=[...u],k=o[t];o.splice(t,1),o.splice(n,0,k);let S=p===t?n:p;return p>t&&p<=n?S-=1:p<t&&p>=n&&(S+=1),{currentSessionIndex:S,sessions:o}})},newSession(){let t;t=ae(),a(n=>({currentSessionIndex:0,sessions:[t].concat(n.sessions)}))},nextSession(t){const n=e().sessions.length,d=e().currentSessionIndex;e().selectSession((d+t+n)%n)},deleteSession(t,n){const d=e().sessions.length===1;if(!e().sessions.at(t))return;const u=e().sessions.slice();u.splice(t,1);const p=e().currentSessionIndex;let o=Math.min(p-Number(t<p),u.length-1);d&&(o=0,u.push(ae())),a(()=>({currentSessionIndex:o,sessions:u}))},currentSession(){let t=e().currentSessionIndex;const n=e().sessions;return(t<0||t>=n.length)&&(t=Math.min(n.length-1,Math.max(0,t)),a(()=>({currentSessionIndex:t}))),n[t]},updateSessionModel(t){e().updateCurrentSession(n=>{n.model=t})},setSessionId(t,n){if(n){const d=e().sessions;d.forEach((u,p)=>{u.id===n&&(u.session_id=t)}),a(()=>({sessions:d}))}else e().updateCurrentSession(d=>{d.session_id=t})},setUploadStatus(t,n){if(n){const d=e().sessions;d.forEach((u,p)=>{u.id===n&&(u.fileUploading=t)}),a(()=>({sessions:d}))}},setFileSearching(t,n){if(n){const d=e().sessions;d.forEach((u,p)=>{u.id===n&&(u.fileSearching=t)}),a(()=>({sessions:d}))}},setFileChat(t){e().updateCurrentSession(n=>{n.fileChat=t})},setLocalFileList(t,n){if(n){const d=e().sessions;d.forEach((u,p)=>{u.id===n&&(u.fileList=t)}),a(()=>({sessions:d}))}},setSessionScene(t){e().updateCurrentSession(n=>{n.sceneConfig=t})},updateChatType(t){e().updateCurrentSession(n=>{n.chatType=t})},onNewMessage(t){e().updateCurrentSession(n=>{n.messages=n.messages.concat(),n.lastUpdate=Date.now()}),e().updateStat(t)},async onUserInput(t,n,d){const u=e().currentSession(),p=re({role:"user",content:t}),o=re({role:"assistant",streaming:!0,waiting:!0,waitCount:30,model:d.model}),k=e().getMessagesWithMemory().concat(p),S=e().currentSession().messages.length+1;e().updateCurrentSession(y=>{const f={...p,content:t};y.messages=y.messages.concat([f,o])});let T={content:t,messages:k,customData:d,session:u},g=null;ct.llm.chat({url:n,...T,onOpen(){o.waiting=!0,o.waitCount=30,g=setInterval(()=>{var y,f;if(o.waitCount===0&&(clearInterval(g),o.waiting)){const b=o.content.includes("aborted");o.content="\u83B7\u53D6\u56DE\u7B54\u8D85\u65F6",o.streaming=!1,o.waiting=!1,p.isError=!b,o.isError=!b,e().updateCurrentSession(w=>{w.messages=w.messages.concat()}),$.stop(u.id,(y=o.id)!=null?y:S+""),$.remove(u.id,(f=o.id)!=null?f:S+"")}o.waitCount=o.waitCount-1,e().updateCurrentSession(b=>{b.messages=b.messages.concat()})},1e3)},onUpdate(y,f){o.waiting=!1,o.streaming=!0,g&&clearInterval(g),o.content=y,o.source=(f==null?void 0:f.source)||null,o.id=(f==null?void 0:f.messageId)||o.id,o.costSeconds=(f==null?void 0:f.costSeconds)||"",o.filledPrompt=(f==null?void 0:f.filledPrompt)||"",o.prompt=(f==null?void 0:f.prompt)||"",e().updateCurrentSession(b=>{b.messages=b.messages.concat()})},onFinish(y,f){o.streaming=!1,o.waiting=!1,y&&(o.content=y,e().onNewMessage(o)),f||$.remove(u.id,o.id)},onError(y){var b;const f=y.message.includes("aborted");o.content=y.message,o.streaming=!1,o.waiting=!1,p.isError=!f,o.isError=!f,e().updateCurrentSession(w=>{w.messages=w.messages.concat()}),$.remove(u.id,(b=o.id)!=null?b:S+"")},onController(y){var f;$.addController(u.id,(f=o.id)!=null?f:S+"",y)}})},getMessagesWithMemory:()=>[...[].reverse()],updateMessage(t,n,d){const u=e().sessions,p=u.at(t),o=p==null?void 0:p.messages;d(o==null?void 0:o.at(n)),a(()=>({sessions:u}))},resetSession(){e().updateCurrentSession(t=>{t.messages=[],t.memoryPrompt=""})},updateStat(t){e().updateCurrentSession(n=>{n.stat.charCount+=t.content.length})},updateCurrentSession(t){const n=e().sessions,d=e().currentSessionIndex;t(n[d]),a(()=>({sessions:n}))},setIsNewChat(t){e().updateCurrentSession(n=>{n.isNewChat=t})}}),{name:se.Chat,version:3.1}));var _={"user-avatar":"_user-avatar_1rfdz_1","chat-input-actions":"_chat-input-actions_1rfdz_14","chat-input-action":"_chat-input-action_1rfdz_14","slide-in":"_slide-in_1rfdz_1",text:"_text_1rfdz_37",icon:"_icon_1rfdz_56","operate-icon":"_operate-icon_1rfdz_61","prompt-toast":"_prompt-toast_1rfdz_76","prompt-toast-inner":"_prompt-toast-inner_1rfdz_84","slide-in-from-top":"_slide-in-from-top_1rfdz_1","prompt-toast-content":"_prompt-toast-content_1rfdz_97","section-title":"_section-title_1rfdz_101","section-title-action":"_section-title-action_1rfdz_109","context-prompt":"_context-prompt_1rfdz_114","context-prompt-insert":"_context-prompt-insert_1rfdz_114","context-prompt-row":"_context-prompt-row_1rfdz_130","context-drag":"_context-drag_1rfdz_135","context-role":"_context-role_1rfdz_144","context-content":"_context-content_1rfdz_147","context-delete-button":"_context-delete-button_1rfdz_152","context-prompt-button":"_context-prompt-button_1rfdz_155","memory-prompt":"_memory-prompt_1rfdz_159","memory-prompt-content":"_memory-prompt-content_1rfdz_162","clear-context":"_clear-context_1rfdz_172","clear-context-tips":"_clear-context-tips_1rfdz_190","clear-context-revert-btn":"_clear-context-revert-btn_1rfdz_197",chat:"_chat_1rfdz_14","title-main":"_title-main_1rfdz_233","edit-options":"_edit-options_1rfdz_239","edit-save-img":"_edit-save-img_1rfdz_244","edit-clear-img":"_edit-clear-img_1rfdz_253","edit-name-img":"_edit-name-img_1rfdz_262","chat-body":"_chat-body_1rfdz_275","new-chat-container":"_new-chat-container_1rfdz_286","new-chat-avatar":"_new-chat-avatar_1rfdz_290","new-chat-content":"_new-chat-content_1rfdz_298","new-chat-welcome":"_new-chat-welcome_1rfdz_303","new-chat-welcome-title":"_new-chat-welcome-title_1rfdz_321","new-chat-welcome-tip":"_new-chat-welcome-tip_1rfdz_338","new-chat-select-modal":"_new-chat-select-modal_1rfdz_342","new-chat-scene-tip":"_new-chat-scene-tip_1rfdz_354","tip-style":"_tip-style_1rfdz_361","new-chat-select-scene":"_new-chat-select-scene_1rfdz_366","chat-body-main-title":"_chat-body-main-title_1rfdz_388","chat-body-title":"_chat-body-title_1rfdz_392","chat-tip":"_chat-tip_1rfdz_396","chat-message":"_chat-message_1rfdz_404","chat-message-user":"_chat-message-user_1rfdz_413","chat-message-header":"_chat-message-header_1rfdz_418","chat-message-actions":"_chat-message-actions_1rfdz_428","chat-message-content":"_chat-message-content_1rfdz_445","chat-message-container":"_chat-message-container_1rfdz_449","chat-message-edit":"_chat-message-edit_1rfdz_455","chat-message-avatar":"_chat-message-avatar_1rfdz_467","avatar-img":"_avatar-img_1rfdz_477","scene-img":"_scene-img_1rfdz_481","chat-message-status":"_chat-message-status_1rfdz_500","chat-stop":"_chat-stop_1rfdz_506","stop-img":"_stop-img_1rfdz_512","chat-item-content":"_chat-item-content_1rfdz_531","chat-message-item":"_chat-message-item_1rfdz_531","message-source":"_message-source_1rfdz_543","source-title":"_source-title_1rfdz_547","source-link":"_source-link_1rfdz_550","chat-resend":"_chat-resend_1rfdz_561","resend-img":"_resend-img_1rfdz_571","right-actions":"_right-actions_1rfdz_587","copy-img":"_copy-img_1rfdz_594","debug-img":"_debug-img_1rfdz_605","delete-img":"_delete-img_1rfdz_616","chat-errorMessage-item":"_chat-errorMessage-item_1rfdz_628","chat-cursor-pointer":"_chat-cursor-pointer_1rfdz_642","chat-message-action-date":"_chat-message-action-date_1rfdz_697","chat-message-action-user-date":"_chat-message-action-user-date_1rfdz_711","chat-input-panel":"_chat-input-panel_1rfdz_732","chat-input-tip":"_chat-input-tip_1rfdz_743","prompt-hints":"_prompt-hints_1rfdz_752","prompt-hints-header":"_prompt-hints-header_1rfdz_766","prompt-hints-header-tip":"_prompt-hints-header-tip_1rfdz_775","prompt-hints-content":"_prompt-hints-content_1rfdz_779","prompt-hint":"_prompt-hint_1rfdz_752","hint-title":"_hint-title_1rfdz_796","hint-content":"_hint-content_1rfdz_805","prompt-hint-selected":"_prompt-hint-selected_1rfdz_812","model-input":"_model-input_1rfdz_816","chat-input-panel-inner":"_chat-input-panel-inner_1rfdz_830","chat-input":"_chat-input_1rfdz_14","chat-input-send":"_chat-input-send_1rfdz_867","submit-img":"_submit-img_1rfdz_878","qr-container":"_qr-container_1rfdz_885","qr-img":"_qr-img_1rfdz_892","bottom-img":"_bottom-img_1rfdz_900","newChat-img":"_newChat-img_1rfdz_918","new-chat-select-icon":"_new-chat-select-icon_1rfdz_941","select-with-icon":"_select-with-icon_1rfdz_950","select-with-icon-select":"_select-with-icon-select_1rfdz_958","arrow-icon":"_arrow-icon_1rfdz_977","select-with-icon-options":"_select-with-icon-options_1rfdz_985","search-img":"_search-img_1rfdz_998","select-search":"_select-search_1rfdz_1005","select-model":"_select-model_1rfdz_1020","select-empty":"_select-empty_1rfdz_1024",options:"_options_1rfdz_1029","model-info":"_model-info_1rfdz_1038","info-content":"_info-content_1rfdz_1042","model-checked":"_model-checked_1rfdz_1056",selected:"_selected_1rfdz_1065","modal-options":"_modal-options_1rfdz_1068","select-with-icon-icon":"_select-with-icon-icon_1rfdz_1071","modal-select":"_modal-select_1rfdz_1086","chat-model":"_chat-model_1rfdz_1089","mobile-model":"_mobile-model_1rfdz_1103","net-type":"_net-type_1rfdz_1103","net-item":"_net-item_1rfdz_1107","net-selected":"_net-selected_1rfdz_1114","model-item":"_model-item_1rfdz_1135","model-displayName":"_model-displayName_1rfdz_1143"},L={card:"_card_vaigf_21",popover:"_popover_vaigf_28","popover-content":"_popover-content_vaigf_33","slide-in":"_slide-in_vaigf_1","popover-mask":"_popover-mask_vaigf_40","list-item":"_list-item_vaigf_48","list-header":"_list-header_vaigf_57","list-icon":"_list-icon_vaigf_61","list-item-title":"_list-item-title_vaigf_64","list-item-sub-title":"_list-item-sub-title_vaigf_68",list:"_list_vaigf_48","modal-container":"_modal-container_vaigf_86","modal-container-max":"_modal-container-max_vaigf_97","modal-content":"_modal-content_vaigf_104","tip-background":"_tip-background_vaigf_108","modal-header":"_modal-header_vaigf_115","modal-title":"_modal-title_vaigf_121","modal-header-actions":"_modal-header-actions_vaigf_125","modal-header-action":"_modal-header-action_vaigf_125","modal-content-hidden":"_modal-content-hidden_vaigf_142","modal-footer":"_modal-footer_vaigf_153","modal-actions":"_modal-actions_vaigf_158","modal-action":"_modal-action_vaigf_158",show:"_show_vaigf_177",hide:"_hide_vaigf_188","toast-container":"_toast-container_vaigf_194","toast-content":"_toast-content_vaigf_203","toast-action":"_toast-action_vaigf_218",input:"_input_vaigf_231","select-with-icon":"_select-with-icon_vaigf_242","select-with-icon-select":"_select-with-icon-select_vaigf_246","select-with-icon-icon":"_select-with-icon-icon_vaigf_257","modal-input":"_modal-input_vaigf_265",selector:"_selector_vaigf_283","selector-content":"_selector-content_vaigf_295","slide-in-from-top":"_slide-in-from-top_vaigf_1"};function ut(a){var n;E.useEffect(()=>{const d=u=>{var p;u.key==="Escape"&&((p=a.onClose)==null||p.call(a))};return window.addEventListener("keydown",d),()=>{window.removeEventListener("keydown",d)}},[]);const[e,t]=E.useState(!!a.defaultMax);return c.default.createElement("div",{className:L["modal-container"]+` ${e&&L["modal-container-max"]}`,style:a.customStyle},c.default.createElement("div",{className:L["modal-header"],style:a.headerCustomStyle},c.default.createElement("div",{className:L["modal-title"]},a.title),c.default.createElement("div",{className:L["modal-header-actions"]},c.default.createElement("div",{className:L["modal-header-action"],onClick:a.onClose},c.default.createElement("img",{src:"./image/close.svg",alt:""})))),c.default.createElement("div",{className:L["modal-content"]+` ${a.isScroll==="hidden"&&L["modal-content-hidden"]}`,style:a.contentCustomStyle},a.children),c.default.createElement("div",{className:L["modal-footer"]},c.default.createElement("div",{className:L["modal-actions"]},(n=a.actions)==null?void 0:n.map((d,u)=>c.default.createElement("div",{key:u,className:L["modal-action"]},d)))))}function mt(a){const e=E.useRef(null),[t,n]=E.useState(!1);return E.useEffect(()=>{a.code&&e.current&&Ye.default.run({nodes:[e.current],suppressErrors:!0}).catch(d=>{n(!0)})},[a.code]),t?null:c.default.createElement("div",{className:"no-dark mermaid",style:{cursor:"pointer",overflow:"auto"},ref:e,onClick:()=>function(){var p;const d=(p=e.current)==null?void 0:p.querySelector("svg");if(!d)return;const u=new XMLSerializer().serializeToString(d);new Blob([u],{type:"image/svg+xml"})}()},a.code)}function ft(a){var p;const e=E.useRef(null),t=(p=e.current)==null?void 0:p.innerText,[n,d]=E.useState(""),u=Ie.useDebouncedCallback(()=>{if(!e.current)return;const o=e.current.querySelector("code.language-mermaid");o&&d(o.innerText)},600);return E.useEffect(()=>{setTimeout(u,1)},[t]),c.default.createElement(c.default.Fragment,null,n.length>0&&c.default.createElement(mt,{code:n,key:n}),c.default.createElement("pre",{ref:e},c.default.createElement("span",{className:"copy-code-button",onClick:()=>{e.current&&oe(e.current.innerText)}}),a.children))}const pt=c.default.memo(function(a){return c.default.createElement(Ke.default,{remarkPlugins:[We.default,Qe.default,Ge.default],rehypePlugins:[Je.default,[Xe.default,{detect:!1,ignoreMissing:!0}]],components:{pre:ft,a:e=>{var d;const t=e.href||"",n=/^\/#/i.test(t)?"_self":(d=e.target)!=null?d:"_blank";return c.default.createElement("a",{...e,target:n})}}},a.content)});function ht(a){const e=E.useRef(null);return c.default.createElement("div",{className:"markdown-body",style:{fontSize:a.fontSize/16+"rem",direction:/[\u0600-\u06FF]/.test(a.content)?"rtl":"ltr"},ref:e,onContextMenu:a.onContextMenu,onDoubleClickCapture:a.onDoubleClickCapture},a.loading?c.default.createElement("div",{className:"loading-icon"}):c.default.createElement(pt,{content:a.content}))}const xe=E.forwardRef(function({env:a="prod",customHeader:e={},customUrl:t="",initSession:n=!1,customData:d={model:"baichuan2_13b_4bits"},sceneId:u="",id:p="",sceneType:o="basic",debugClick:k=()=>{},deleteClick:S=null,onBeforeSubmit:T=null,customContainerStyle:g={backgroundImage:"url('./image/background-right.png')"}}){var Se;const y=_e(),f=y.currentSession(),b=he(),w=b.fontSize,v=E.useRef(null),[r,i]=E.useState(""),[m,l]=E.useState(!1),{submitKey:C,shouldSubmit:j}=function(){const s=he(),h=s.submitKey,N=E.useRef(!1);return E.useEffect(()=>{const z=()=>{N.current=!0},x=()=>{N.current=!1};return window.addEventListener("compositionstart",z),window.addEventListener("compositionend",x),()=>{window.removeEventListener("compositionstart",z),window.removeEventListener("compositionend",x)}},[]),{submitKey:h,shouldSubmit:z=>z.key==="Enter"&&(z.key!=="Enter"||!z.nativeEvent.isComposing&&!N.current)&&(s.submitKey===G.AltEnter&&z.altKey||s.submitKey===G.CtrlEnter&&z.ctrlKey||s.submitKey===G.ShiftEnter&&z.shiftKey||s.submitKey===G.MetaEnter&&z.metaKey||s.submitKey===G.Enter&&!z.altKey&&!z.ctrlKey&&!z.shiftKey&&!z.metaKey)}}(),{scrollRef:V,setAutoScroll:K,scrollDomToBottom:F}=function(){const s=E.useRef(null),[h,N]=E.useState(!0);function z(){const x=s.current;x&&requestAnimationFrame(()=>{N(!0),x.scrollTo(0,x.scrollHeight)})}return E.useEffect(()=>{h&&z()}),{scrollRef:s,autoScroll:h,setAutoScroll:N,scrollDomToBottom:z}}(),[Z,ie]=E.useState(!0),[q,A]=E.useState(tt.chat),P=ot();function U(){y.clearSessions(),y.updateCurrentSession(s=>{s.id=p,s.sceneId=u,s.sceneType=o})}E.useEffect(()=>{b.update(s=>{s.env=a})},[a]),E.useEffect(()=>{b.update(s=>{s.customHeader=e})},[e]),E.useEffect(()=>{A(t),b.update(s=>{s.customUrl=t})},[t]),E.useEffect(()=>{y.updateCurrentSession(s=>{s.id=p,s.sceneId=u,s.sceneType=o})},[u,p]),E.useEffect(()=>{n&&(y.clearSessions(),y.updateCurrentSession(s=>{s.id=p,s.sceneId=u,s.sceneType=o}))},[n]);const[ce,le]=E.useState(2),de=Ie.useDebouncedCallback(()=>{const s=v.current?rt(v.current):1,h=Math.min(20,Math.max(2+Number(!P),s));le(h)},100,{leading:!0,trailing:!0});function Oe(s){const h=E.useRef(null),N=E.useRef(null),[z,x]=E.useState({full:16,icon:16});function R(){if(!h.current||!N.current)return;const M=I=>I.getBoundingClientRect().width,D=M(N.current),O=M(h.current);x({full:D+O,icon:O})}return c.default.createElement("div",{className:`${_["chat-input-action"]} clickable`,onClick:()=>{s.onClick(),setTimeout(R,1)},onMouseEnter:R,onTouchStart:R,style:{"--icon-width":z.icon/16+"rem","--full-width":z.full/16+"rem"}},c.default.createElement("div",{ref:h,className:_.icon},s.icon),c.default.createElement("div",{className:_.text,ref:N},s.text))}function Re(s){return c.default.createElement("div",{className:_["chat-input-actions"]},!s.hitBottom&&c.default.createElement(Oe,{onClick:s.scrollToBottom,text:"\u6EDA\u5230\u6700\u65B0",icon:c.default.createElement("div",{className:_["bottom-img"]})}),c.default.createElement("div",{className:_["operate-icon"],onClick:U},c.default.createElement("div",{className:_["newChat-img"]}),c.default.createElement("span",null,"\u65B0\u5BF9\u8BDD")))}E.useEffect(de,[r]);const ye=async s=>{var x,R;let h,N=!0,z=d;T&&(h=await T(),N=typeof h=="boolean"?h:h==null?void 0:h.isSend,z=(x=h==null?void 0:h.param)==null?void 0:x.custom_data),N&&s.trim()!==""&&(y.setIsNewChat(!1),l(!0),y.onUserInput(s,q,z).then(()=>l(!1)),localStorage.setItem("last-input",s),i(""),P||((R=v.current)==null||R.focus()),K(!0))},Ae=(s,h)=>{(function(N,z){const x=window.getSelection();return(x==null?void 0:x.type)!=="Range"&&(oe(z),!0)})(s.currentTarget,h.content)&&(r.length===0&&i(h.content),s.preventDefault())},we=s=>{y.updateCurrentSession(h=>h.messages=h.messages.filter(N=>N.id!==s))},be=async s=>{var D,O;let h,N=!0,z=d;if(T&&(h=await T(),N=typeof h=="boolean"?h:h==null?void 0:h.isSend,z=(D=h==null?void 0:h.param)==null?void 0:D.custom_data),!N)return;const x=f.messages.findIndex(I=>I.id===s.id);if(x<=0||x>=f.messages.length)return;let R,M;if(s.role==="assistant"){M=s;for(let I=x;I>=0;I-=1)if(f.messages[I].role==="user"){R=f.messages[I];break}}else if(s.role==="user"){R=s;for(let I=x;I<f.messages.length;I+=1)if(f.messages[I].role==="assistant"){M=f.messages[I];break}}R!==void 0&&(we(R.id),we(M==null?void 0:M.id),l(!0),y.onUserInput(R.content,q,z).then(()=>l(!1)),(O=v.current)==null||O.focus())},ee=E.useMemo(()=>[],[]),W=E.useMemo(()=>ee.concat(f.messages).concat(m?[{...re({role:"assistant",content:"\u2026\u2026"}),preview:!0}]:[]),[ee,m,f.messages,r]),[J,Me]=E.useState(Math.max(0,W.length-X));function ue(s){s=Math.min(W.length-X,s),s=Math.max(0,s),Me(s)}const me=E.useMemo(()=>{const s=Math.min(J+45,W.length);return W.slice(J,s)},[J,W]);function fe(){ue(W.length-X),F()}((Se=f.clearContextIndex)!=null?Se:-1)>=0&&(f.clearContextIndex,ee.length);const Pe=!P,[Le,Ee]=E.useState(!1);return c.default.createElement("div",{className:`${_.chat} ${_.light}`,style:g,key:f.id},c.default.createElement("div",{className:_["chat-body"],ref:V,onScroll:s=>(h=>{const N=h.scrollTop+h.clientHeight,z=h.clientHeight,x=h.scrollTop<=z,R=N>=h.scrollHeight-z,M=N>=h.scrollHeight-10,D=J+X;x?ue(J-X):R&&ue(D),ie(M),K(M)})(s.currentTarget),onMouseDown:()=>{var s;return(s=v.current)==null?void 0:s.blur()},onTouchStart:()=>{var s;(s=v.current)==null||s.blur(),K(!1)}},c.default.createElement("div",null,me.map((s,h)=>{const N=s.role==="user",z=s.role==="system";ee.length,h>0&&s.preview;const x=s.preview||s.streaming,R=s.waiting,M=s.waitCount,D=$.hasPending();return f.sceneConfig&&f.sceneConfig.sceneType==="advanced"&&f.sceneConfig.moduleConfigs.forEach(O=>{O.id.includes("FlowModelModule")}),c.default.createElement(c.default.Fragment,{key:s.id},c.default.createElement("div",{className:N?_["chat-message-user"]:_["chat-message"]},c.default.createElement("div",{className:_["chat-message-container"]},c.default.createElement("div",{className:_["chat-message-header"]},c.default.createElement("div",{className:_["chat-message-avatar"]},N?c.default.createElement("div",{className:_["user-avatar"]+` ${_["avatar-img"]}`}):c.default.createElement("div",{className:_["user-avatar"]+` ${_["scene-img"]}`}))),c.default.createElement("div",{className:_["chat-message-content"]},R?c.default.createElement("div",{className:_["chat-message-status"]},"\u7B49\u5F85\u56DE\u7B54\u4E2D...",M,"s"):x&&c.default.createElement("div",{className:_["chat-message-status"]},"\u6B63\u5728\u8F93\u5165..."),s.isError?c.default.createElement("div",{className:_["chat-item-content"]},c.default.createElement("div",{className:_["chat-errorMessage-item"]},s.content,"\xA0\xA0",c.default.createElement("span",null,"\u8BF7",c.default.createElement("span",{className:_["chat-cursor-pointer"],onClick:()=>Ee(!0)},"\u3010\u70B9\u51FB\u626B\u7801\u3011"),"\u52A0\u5165ChatBot\u805A\u529B\u6C9F\u901A\u53CD\u9988\u7FA4")),!x&&c.default.createElement("div",{className:_["chat-message-actions"]},!N&&!z&&c.default.createElement("div",{className:_["chat-resend"],onClick:()=>be(s)},c.default.createElement("div",{className:_["resend-img"]}),c.default.createElement("span",null,"\u91CD\u65B0\u56DE\u7B54")),c.default.createElement(H.Tooltip,{getTooltipContainer:()=>document.getElementById(`llmCopyImageContainer_${s.id}`),overlayStyle:{top:-30,left:-2},arrow:!1,overlayInnerStyle:{color:"var(--black)",fontSize:"12px"},title:"\u590D\u5236",color:"white",placement:"bottom"},c.default.createElement("div",{className:_["right-actions"],id:`llmCopyImageContainer_${s.id}`,style:{position:"relative"}},c.default.createElement("div",{className:_["copy-img"],onClick:()=>oe(s.content)}))))):c.default.createElement("div",{className:_["chat-item-content"]},c.default.createElement("div",{className:_["chat-message-item"]},c.default.createElement(ht,{content:s.content,loading:(s.preview||s.streaming)&&s.content.length===0&&!N,onContextMenu:O=>Ae(O,s),onDoubleClickCapture:()=>{P&&i(s.content)},fontSize:w,parentRef:V,defaultShow:h>=me.length-6}),!N&&c.default.createElement(c.default.Fragment,null,s.source&&c.default.createElement("div",{className:_["message-source"]},c.default.createElement("span",{className:_["source-title"]},"\u4EE5\u4E0A\u56DE\u7B54\u57FA\u4E8E\u4EE5\u4E0B\u77E5\u8BC6\u751F\u6210\uFF1A"),c.default.createElement(c.default.Fragment,null,s.source.map((O,I)=>c.default.createElement("a",{target:"_blank",className:_["source-link"],href:O.sourceLink,key:I,rel:"noreferrer"},`${O.sourceName}${s.source&&I===s.source.length-1?"":"\uFF0C"}`)))))),!x&&c.default.createElement("div",{className:_["chat-message-actions"]},!N&&!z&&c.default.createElement("div",{className:_["chat-resend"],onClick:()=>be(s)},c.default.createElement("div",{className:_["resend-img"]}),c.default.createElement("span",null,"\u91CD\u65B0\u56DE\u7B54")),c.default.createElement("div",{className:_["right-actions"]},N&&!!k&&c.default.createElement(c.default.Fragment,null,c.default.createElement(H.Tooltip,{getTooltipContainer:()=>document.getElementById(`debugImageContainer_${s.id}`),overlayStyle:{top:-35,left:-25},arrow:!1,overlayInnerStyle:{color:"var(--black)",fontSize:"12px"},title:"\u8C03\u8BD5\u8BE6\u60C5",color:"white",placement:"top"},c.default.createElement("div",{id:`debugImageContainer_${s.id}`,style:{width:"16px",height:"16px",position:"relative"}},c.default.createElement("div",{className:_["debug-img"],onClick:()=>(O=>{k&&k(O)})(me[h+1])}))),c.default.createElement(H.Divider,{type:"vertical"})),c.default.createElement(H.Tooltip,{getTooltipContainer:()=>document.getElementById(`userCopyImageContainer_${s.id}`),overlayStyle:{top:-35,left:-15},arrow:!1,overlayInnerStyle:{color:"var(--black)",fontSize:"12px"},title:"\u590D\u5236",color:"white",placement:"bottom"},c.default.createElement("div",{id:`userCopyImageContainer_${s.id}`,style:{width:"16px",height:"16px",position:"relative"}},c.default.createElement("div",{className:_["copy-img"],onClick:()=>oe(s.content)}))),!N&&!!S&&c.default.createElement(c.default.Fragment,null,c.default.createElement(H.Divider,{type:"vertical"}),c.default.createElement(H.Tooltip,{getTooltipContainer:()=>document.getElementById(`assistantImageContainer_${s.id}`),overlayStyle:{top:-35,left:-15},arrow:!1,overlayInnerStyle:{color:"var(--black)",fontSize:"12px"},title:"\u5220\u9664",color:"white",placement:"bottom"},c.default.createElement("div",{id:`assistantImageContainer_${s.id}`,style:{width:"16px",height:"16px",position:"relative"}},c.default.createElement("div",{className:_["delete-img"],onClick:()=>(async(O,I)=>{if(S)if(await S(O,I)){let te;f.messages.forEach((Q,je)=>{Q.id===I&&(te=je)}),y.updateCurrentSession(Q=>{Q.messages.splice(te-1,2),Q.messages=Q.messages.concat()}),H.message.success({content:"\u5220\u9664\u6D88\u606F\u6210\u529F"})}else H.message.error({content:"\u5220\u9664\u6D88\u606F\u5931\u8D25"})})(f.session_id,s.id)}))))))),s.streaming&&D&&c.default.createElement("div",{className:_["chat-stop"],onClick:()=>{var O;return((I,te)=>{$.stop(f.id,I),te.content+="\u3010\u5DF2\u505C\u6B62\u3011"})((O=s.id)!=null?O:h+"",s)}},c.default.createElement("div",{className:_["stop-img"]}),c.default.createElement("span",null,"\u505C\u6B62\u751F\u6210"))))))}))),c.default.createElement("div",{className:_["chat-input-panel"]},c.default.createElement(Re,{scrollToBottom:fe,hitBottom:Z}),c.default.createElement("div",{className:_["chat-input-panel-inner"]},c.default.createElement("textarea",{ref:v,className:_["chat-input"],placeholder:"\u4F60\u53EF\u4EE5\u95EE\u6211\u4EFB\u4F55\u95EE\u9898",onInput:s=>(h=>{i(h),h.trim().length})(s.currentTarget.value),value:r,onKeyDown:s=>{j(s)&&(ye(r),s.preventDefault())},onFocus:fe,onClick:fe,rows:ce,autoFocus:Pe}),c.default.createElement("div",{className:_["chat-input-send"],onClick:()=>ye(r)},c.default.createElement("div",{className:_["submit-img"]})))),Le&&c.default.createElement("div",{className:"modal-mask"},c.default.createElement(ut,{title:"\u8BF7\u626B\u63CF\u4E8C\u7EF4\u7801\u52A0\u5165\u805A\u529B\u53CD\u9988\u7FA4",onClose:()=>Ee(!1)},c.default.createElement("div",{className:_["qr-container"]},c.default.createElement("div",{className:_["qr-img"]})))))});xe.displayName="Chat",exports.Chat=xe;