(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-5f2ff500"],{"2ef4":function(e,t,s){},"5cb5":function(e,t,s){"use strict";s.r(t);var n,a=function(){var e=this,t=e.$createElement,s=e._self._c||t;return s("div",{staticClass:"chat-container"},[s("div",{staticClass:"content"},[s("div",{staticClass:"messages"},[s("ul",e._l(e.messages,(function(t){return s("li",{key:t.id,class:[t.user,"user"===t.user?"user-message":""]},[s("div",{staticClass:"message_name"},[s("div",{staticClass:"avatar",class:{"user-avatar":"user"===t.user,"bot-avatar":"bot"===t.user}}),s("div",{staticClass:"name"},["user"===t.user?s("span",{staticClass:"sender-name",staticStyle:{color:"#666666"}},[e._v("你")]):e._e(),"bot"===t.user?s("span",{staticClass:"sender-name"},[e._v("AI助理")]):e._e()])]),s("div",{staticClass:"message-content"},[s("div",{staticClass:"message-text",domProps:{innerHTML:e._s(e.renderMarkdown(t.message))},on:{click:e.handleLinkClick}})])])})),0)]),s("div",{staticClass:"input-container"},[e.uploadFiles.length>0?s("div",{staticClass:"upload-preview"},e._l(e.uploadFiles,(function(t,n){return s("div",{key:n,staticClass:"preview-item"},[s("div",{staticClass:"preview-content"},[t.type.startsWith("image/")?s("img",{staticClass:"preview-image",attrs:{src:t.preview,alt:"preview"}}):s("div",{staticClass:"file-info"},[s("i",{staticClass:"el-icon-document"}),s("span",[e._v(e._s(t.name))])])]),s("i",{staticClass:"el-icon-close remove-file",on:{click:function(t){return e.removeFile(n)}}})])})),0):e._e(),s("div",{staticClass:"input-area"},[s("textarea",{directives:[{name:"model",rawName:"v-model",value:e.userInput,expression:"userInput"}],attrs:{rows:"4",placeholder:"发送消息..."},domProps:{value:e.userInput},on:{keydown:e.handleKeydown,input:function(t){t.target.composing||(e.userInput=t.target.value)}}}),s("div",{staticClass:"toolbar"},[s("div",{staticClass:"left-tools"},[s("input",{ref:"fileInput",staticStyle:{display:"none"},attrs:{type:"file",multiple:"",accept:"image/*,.pdf,.doc,.docx,.txt"},on:{change:e.handleFileUpload}}),s("button",{staticClass:"tool-btn",on:{click:function(t){return e.$refs.fileInput.click()}}},[s("i",{staticClass:"el-icon-upload2"})])]),s("button",{staticClass:"btn",on:{click:e.sendMessage}},[e._v("发送")])])])])]),s("LoginModal",{attrs:{visible:e.showLoginModal},on:{"update:visible":function(t){e.showLoginModal=t},close:function(t){e.showLoginModal=!1},"login-success":e.handleLoginSuccess}})],1)},r=[],i=s("ade3"),o=s("c7eb"),c=s("b85c"),l=s("1da1"),u=(s("99af"),s("4de4"),s("a630"),s("d81d"),s("fb6a"),s("a434"),s("b0c0"),s("e9c4"),s("b64b"),s("d3b7"),s("ac1f"),s("25f0"),s("3ca3"),s("5319"),s("2ca0"),s("498a"),s("159b"),s("c3b3")),d=s("ecd9"),h=s("d4cd"),g=s.n(h),p=s("4ec3"),m=s("db6a"),f=s("bc3a"),v=s.n(f),b=(new g.a,{components:{ChatBox:u["default"],LoginModal:d["default"]},data:function(){return{showLoginModal:!1,isThinking:!1,thinkingDots:"",messages:[{user:"bot",messageType:"TEXT",message:"欢迎使用智能AI助理",html:"",time:"",done:!0}],generating:!1,userInput:"",websocket:null,wsUrl:"http://58.246.234.210:7860/api/v1/run/3ef7369e-b617-40d2-9e2e-54f3ee76ed2e?stream=false",tweaks:{},isLoggedIn:!1,idArray:[],minioUrls:[],AImodel:"1",AIknowledgeBase:"1",AIFile:"1",AIform:{modelLibrary:"ollama",modelType:"",modelName:"",knowledgeBase:"",documentDirectory:"",document:""},currentChat_id:"",phone:"",uploadFiles:[]}},mounted:function(){var e=this;if(this.checkAIData(),"ai"==this.$route.name){var t=localStorage.getItem("AIData");if(!t)return void(this.showLoginModal=!0);try{var s=JSON.parse(t);s&&s.data?(console.log(s),this.wsUrl=s.data.url||"",this.phone=s.data.phone||"",this.tweaks=s.data.tweaks||{}):(console.error("Invalid AIData structure"),this.showLoginModal=!0)}catch(n){console.error("Error parsing AIData:",n),this.showLoginModal=!0}}else Object(p["c"])().then((function(t){200===t.status&&(e.wsUrl=t.data.url,e.tweaks=t.data.tweaks)}));this.init()},methods:(n={handleFileUpload:function(e){var t=this;return Object(l["a"])(Object(o["a"])().mark((function s(){var n,a,r,i,l,u,d,h,g,p;return Object(o["a"])().wrap((function(s){while(1)switch(s.prev=s.next){case 0:if(n=Array.from(e.target.files),a=t.uploadFiles.filter((function(e){return e.type.startsWith("image/")})).length,r=5-a,!(r<=0)){s.next=7;break}return t.$message.warning("最多只能上传5张图片"),e.target.value="",s.abrupt("return");case 7:i=n.slice(0,r),n.length>r&&t.$message.warning("已达到上传上限,只能再上传".concat(r,"张图片")),l=Object(c["a"])(i),s.prev=10,l.s();case 12:if((u=l.n()).done){s.next=30;break}return d=u.value,s.prev=14,h=new FormData,h.append("file",d),s.next=19,v.a.post("".concat("http://183.195.216.54:8084","/upload/file"),h,{headers:{"Content-Type":"multipart/form-data"}});case 19:g=s.sent,p=g.data.data.fileUrl,t.uploadFiles.push({name:d.name,type:d.type,preview:p,url:p}),s.next=28;break;case 24:s.prev=24,s.t0=s["catch"](14),console.error("文件上传失败:",s.t0),t.$message.error("文件 ".concat(d.name," 上传失败"));case 28:s.next=12;break;case 30:s.next=35;break;case 32:s.prev=32,s.t1=s["catch"](10),l.e(s.t1);case 35:return s.prev=35,l.f(),s.finish(35);case 38:e.target.value="";case 39:case"end":return s.stop()}}),s,null,[[10,32,35,38],[14,24]])})))()},removeFile:function(e){this.uploadFiles.splice(e,1)},checkAIData:function(){var e=localStorage.getItem("AIData");this.showLoginModal=!e},handleLoginSuccess:function(){this.showLoginModal=!1},selectChat:function(e){this.currentChatIndex=e},newChat:function(){this.chatHistory.push({title:"聊天 ".concat(this.chatHistory.length+1),preview:"新的聊天..."}),this.currentChatIndex=this.chatHistory.length-1,this.messages=[]},handleLinkClick:function(e){if("a"===e.target.tagName.toLowerCase()){e.preventDefault();var t=e.target.textContent.trim(),s=t.lastIndexOf("."),n=s>-1?t.slice(0,s):t,a=s>-1?t.slice(s+1):"",r=encodeURIComponent(n),i=encodeURIComponent(a),o="#/preview?fileName=".concat(r,"&fileExtension=").concat(i);try{localStorage.setItem("href",e.target.href)}catch(l){console.warn("无法存储 URL 到 localStorage:",l)}var c=window.open(o,"_blank");c?c.focus():alert("弹出窗口被阻止,请允许此网站的弹出窗口。")}}},Object(i["a"])(Object(i["a"])(Object(i["a"])(Object(i["a"])(Object(i["a"])(Object(i["a"])(Object(i["a"])(Object(i["a"])(Object(i["a"])(Object(i["a"])(n,"handleLoginSuccess",(function(){this.showLoginModal=!1,this.isLoggedIn=!0,this.sendMessage()})),"getUuid",(function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=16*Math.random()|0,s="x"==e?t:3&t|8;return s.toString(16)}))})),"connectWebSocket",(function(){var e=this,t="http://58.246.234.210:7860/api/v1/run/2f1faff2-99df-4821-87d6-43d693084c4b?stream=false";this.websocket=new WebSocket(t),this.websocket.onclose=function(e){console.log("WebSocket 连接关闭:",e)},this.websocket.onopen=function(e){console.log("WebSocket 连接已建立:",e)},this.websocket.onmessage=function(t){var s=JSON.parse(t.data);if(s.done)e.messages[e.messages.length-1].done=!0;else if(e.messages[e.messages.length-1].done)e.messages.push({time:Date.now(),message:s.content,messageType:"TEXT",user:"bot",done:!1});else{var n=e.messages[e.messages.length-1];n.message+=s.content,e.messages[e.messages.length-1]=n}}})),"sendMessage",(function(){var e=this;return Object(l["a"])(Object(o["a"])().mark((function t(){var s,n,a,r,i,c,l,u,d,h,g;return Object(o["a"])().wrap((function(t){while(1)switch(t.prev=t.next){case 0:if("ai"!=e.$route.name){t.next=4;break}if(localStorage.getItem("AIData")){t.next=4;break}return e.showLoginModal=!0,t.abrupt("return");case 4:if(e.getUuid(),s="".concat("http://183.195.216.54:8084","/chatbot/multimodal"),n=e.userInput.trim(),a=e.uploadFiles.filter((function(e){return e.type.startsWith("image/")})).map((function(e){return e.url})),!(n||a.length>0)){t.next=51;break}return n=n.replace(/(\r\n|\r|\n)/g," \n"),e.messages.push({time:Date.now(),message:n,messageType:"TEXT",user:"user",done:!0}),e.userInput="",e.uploadFiles=[],r={user:"bot",messageType:"TEXT",message:"",html:"",time:Date.now(),done:!1},e.messages.push(r),i=new AbortController,c=e.simulateThinking(r,i.signal),t.prev=17,t.next=20,fetch("".concat(s),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:n,chat_config_id:"17",user_id:e.phone,session_id:e.session_id||"",image_url:a,history_limit:10})});case 20:return l=t.sent,t.next=23,l.json();case 23:if(u=t.sent,e.session_id=u.data.session_id,200===u.code){t.next=30;break}return t.next=28,l.text();case 28:throw d=t.sent,new Error("HTTP error! status: ".concat(l.status,", message: ").concat(d));case 30:return i.abort(),t.next=33,c;case 33:if("ai"===e.$route.name){t.next=40;break}return h=u.data.milvus_ids,e.idArray=h,g={ids:e.idArray},console.log("ID Object:",g),t.next=40,e.getMinioUrls(g);case 40:e.handleResponse(u,r),t.next=51;break;case 43:return t.prev=43,t.t0=t["catch"](17),console.error("Error sending message:",t.t0),i.abort(),t.next=49,c;case 49:r.done=!0,r.message="抱歉,发生了错误,请稍后再试。";case 51:case"end":return t.stop()}}),t,null,[[17,43]])})))()})),"getMinioUrls",(function(e){var t=this;return Object(l["a"])(Object(o["a"])().mark((function s(){var n;return Object(o["a"])().wrap((function(s){while(1)switch(s.prev=s.next){case 0:return t.minioUrls=[],s.prev=1,console.log("Sending to backend:",JSON.stringify(e)),s.next=5,v.a.post("http://58.246.234.210:8084/milvus/getMinioURl",e,{headers:{"Content-Type":"application/json"}});case 5:n=s.sent,200===n.status&&n.data?(t.minioUrls=n.data.data,console.log("Received Minio URLs:",t.minioUrls)):console.error("Failed to get Minio URLs"),s.next=13;break;case 9:s.prev=9,s.t0=s["catch"](1),console.error("Error fetching Minio URLs:",s.t0),s.t0.response?(console.error("Response data:",s.t0.response.data),console.error("Response status:",s.t0.response.status),console.error("Response headers:",s.t0.response.headers)):s.t0.request?console.error("No response received:",s.t0.request):console.error("Error message:",s.t0.message);case 13:case"end":return s.stop()}}),s,null,[[1,9]])})))()})),"simulateThinking",(function(e,t){var s=this;return Object(l["a"])(Object(o["a"])().mark((function n(){var a;return Object(o["a"])().wrap((function(n){while(1)switch(n.prev=n.next){case 0:return s.isThinking=!0,a=200,n.abrupt("return",new Promise((function(n){var r=function(){if(t.aborted)return clearInterval(i),s.isThinking=!1,s.thinkingDots="",e.message="",void n();s.thinkingDots+=".",s.thinkingDots.length>3&&(s.thinkingDots=""),e.message="思考中"+s.thinkingDots},i=setInterval(r,a);t.addEventListener("abort",(function(){clearInterval(i),s.isThinking=!1,s.thinkingDots="",e.message="",n()}))})));case 3:case"end":return n.stop()}}),n)})))()})),"handleResponse",(function(e,t){var s=this;return Object(l["a"])(Object(o["a"])().mark((function n(){var a,r,i;return Object(o["a"])().wrap((function(n){while(1)switch(n.prev=n.next){case 0:return a=e.data.answer.answer,t.messageType=a,t.message="",r=a,i="","ai"!==s.$route.name&&s.minioUrls&&s.minioUrls.length>0&&(i="\n\n