g-ai-robot3 1.0.3 → 1.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/dist/g-ai-robot3.es.js +1 -1
- package/dist/index.css +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,6 +32,24 @@ import "g-ai-robot3/style.css";
|
|
|
32
32
|
</template>
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
+
### Vite 项目额外配置
|
|
36
|
+
|
|
37
|
+
本组件包含图片等静态资源,Vite 项目需要引入配套插件以确保资源路径正确:
|
|
38
|
+
|
|
39
|
+
```ts
|
|
40
|
+
// vite.config.ts
|
|
41
|
+
import gAiRobot from "g-ai-robot3/vite-plugin";
|
|
42
|
+
|
|
43
|
+
export default defineConfig({
|
|
44
|
+
plugins: [
|
|
45
|
+
vue(),
|
|
46
|
+
gAiRobot(), // 确保图片等静态资源路径正确
|
|
47
|
+
],
|
|
48
|
+
});
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
> 该插件会将 `g-ai-robot3` 排除出 Vite 依赖预构建,同时保留其子依赖的预构建,避免 CJS/ESM 兼容问题。
|
|
52
|
+
|
|
35
53
|
## 仓库内示例
|
|
36
54
|
|
|
37
55
|
- 当前仓库直接使用 [`examples/App.vue`](E:/g-ai-robot3/examples/App.vue) 作为示例页面。
|
package/dist/g-ai-robot3.es.js
CHANGED
|
@@ -64,6 +64,6 @@ var xt=Object.defineProperty;var Tt=(n,e,t)=>e in n?xt(n,e,{enumerable:!0,config
|
|
|
64
64
|
|`).replace(/\|\s*\\\s*$/gm,"|").replace(/\s*\\\s*\|/g,`
|
|
65
65
|
|`),a=v=>s(v).split(`
|
|
66
66
|
`).map(L=>L.trim().replace(/^\\\s*/,"")).filter(L=>L.startsWith("|")&&L.endsWith("|")).map(L=>L.split("|").slice(1,-1).map(D=>D.trim())),u=v=>{var y;const S=v.replace(/<[^>]+>/g,`
|
|
67
|
-
`),x=a(S);return x!=null&&x.length&&((y=x[0])!=null&&y.length)?x:a(v)};return{currentImage:e,previewConfig:t,renderMarkdown:v=>{var P;const S=v==null?"":typeof v=="string"?v:(v==null?void 0:v.text)??"";if(typeof S!="string")return ye("div",{innerHTML:""});v=S;const x=/<img src="([^"]+)"[^>]*>/g,y=v.replace(x,(_,g)=>`<img src="${g}" class="clickable-image" />`),L=/\|(.+\|)+/g,D=L.test(y);if(L.lastIndex=0,D){const _=u(y);if(!(_!=null&&_.length)||!((P=_[0])!=null&&P.length))return ye("div",{innerHTML:n.render(y),onClick:U=>{const B=U.target;(B==null?void 0:B.tagName)==="IMG"&&o(B.src)}});const g=_[0].map((U,B)=>({title:U,dataIndex:`col${B}`,key:`col${B}`})),c=_.slice(1).filter(U=>!U.every(B=>/^-+$/.test(String(B).trim()))).map((U,B)=>{const Z={key:`row${B}`};return U.forEach((H,ee)=>{Z[`col${ee}`]=H}),Z}),R=y.replace(L,"");return ye("div",null,[ye("div",{innerHTML:n.render(R)}),ye("div",{class:"table-container",onMousedown:U=>U.stopPropagation(),onTouchstart:U=>U.stopPropagation()},[ye(Dt,{columns:g,dataSource:c,class:"markdown-table",bordered:!0,pagination:!1,tableLayout:"auto"})])])}return ye("div",{innerHTML:n.render(y),onClick:_=>{const g=_.target;g&&g.tagName==="IMG"&&o(g.src)}})}}},gn=$e({name:"suspensionMsgBubble",inheritAttrs:!1,__name:"suspensionMsgBubble",props:{msgList:{},showMsgNumber:{default:5},bubbleTheme:{default:"dark"},useCustomDialog:{type:Boolean,default:!1},BubbleWidth:{default:()=>({width:"220px",bottom:"85%"})},BubbleBottom:{},suspensionStyle:{default:()=>({maxHeight:"33vh"})}},setup(n){const e=n,{renderMarkdown:t}=ft(),o=Ie(()=>e.bubbleTheme==="dark"?Ue.darkAlgorithm:Ue.defaultAlgorithm);return(s,a)=>(W(),j("div",{class:"suspension-content",style:ue(s.suspensionStyle)},[de(l(gt),{theme:{algorithm:o.value}},{default:Ce(()=>[M("div",{class:re(s.useCustomDialog?"useCustom-dialog":"suspension-msg-bubble"),style:ue(e.BubbleWidth)},[de(bt,{name:"bubble",tag:"div"},{default:Ce(()=>[(W(!0),j(qe,null,ct(s.msgList,(u,i)=>(W(),j(qe,{key:u.id},[i>=s.msgList.length-s.showMsgNumber?(W(),ge(l(Qe),{key:0,class:re(["bubble-item",u.type]),variant:u.type==="user"?"outlined":"filled",typing:u.type!=="aiAnswer"&&{step:2,interval:50},content:u.content,messageRender:l(t),loading:u.type==="aiLocal",style:ue(e.BubbleWidth)},null,8,["class","variant","typing","content","messageRender","loading","style"])):O("",!0)],64))),128))]),_:1})],6)]),_:1},8,["theme"])],4))}}),hn=ze(gn,[["__scopeId","data-v-95864a5c"]]);function vt(n,e={}){const t=d(!1),o=d(0),s=d(0),a=d(n.value?parseInt(getComputedStyle(n.value).left)||e.initialX||10:e.initialX||10),u=d(n.value?parseInt(getComputedStyle(n.value).top)||e.initialY||window.innerHeight-300:e.initialY||window.innerHeight-300),i=y=>"touches"in y?{clientX:y.touches[0].clientX,clientY:y.touches[0].clientY}:{clientX:y.clientX,clientY:y.clientY},v=y=>{if(e.dragHandleClass&&!y.target.closest(`.${e.dragHandleClass}`))return;e.stopPropagation&&y.stopPropagation(),y.preventDefault();const{clientX:L,clientY:D}=i(y);if(!n.value)return;const P=n.value.getBoundingClientRect();a.value=P.left,u.value=P.top,o.value=L,s.value=D,t.value=!0,n.value.style.cursor="grabbing",e.onStart&&e.onStart({left:P.left,top:P.top}),document.addEventListener("mousemove",S),document.addEventListener("touchmove",S,{passive:!1}),document.addEventListener("mouseup",x),document.addEventListener("touchend",x)},S=y=>{if(!t.value||!n.value)return;y.preventDefault();const{clientX:L,clientY:D}=i(y),P=L-o.value,_=D-s.value;n.value.style.position="fixed",n.value.style.bottom="auto";const g=a.value+P,h=u.value+_;n.value.style.left=`${g}px`,n.value.style.top=`${h}px`,e.onPositionChange&&e.onPositionChange({left:g,top:h})},x=()=>{if(t.value=!1,n.value){n.value.style.cursor="grab";const y=n.value.getBoundingClientRect();e.onEnd&&e.onEnd({left:y.left,top:y.top})}document.removeEventListener("mousemove",S),document.removeEventListener("touchmove",S),document.removeEventListener("mouseup",x),document.removeEventListener("touchend",x)};return Ge(()=>{x()}),{startDrag:v,isDragging:t,endDrag:x}}const De=n=>{const e=n.thinkingText?`<style>.thinking-details summary::-webkit-details-marker{display:none;} .thinking-details summary::marker{content:'';}</style><details class="thinking-details" open><summary style="font-weight: 600; color: #666; cursor: pointer; display: flex; justify-content: space-between; align-items: center;">思考内容<span style="color:#999; font-size:16px;">▾</span></summary><div style="color: #999 !important; padding-top: 6px;">${n.thinkingText}</div></details>`:"",t=n.thinkingText?'<hr style="border: 0; border-top: 1px solid #e5e5e5; margin: 8px 0;" />':"",o=n.answerText?`<span style="color: #000 !important;">${n.answerText}</span>`:"";return e+t+o},pt=n=>{var e,t;return(e=n.answerText)!=null&&e.trim()?n.answerText:((t=n.wholeText)==null?void 0:t.trim())??""},fn=async n=>{var s;if(n==null||String(n).trim()==="")return!1;const e=String(n);try{if((s=navigator.clipboard)!=null&&s.writeText)return await navigator.clipboard.writeText(e),!0}catch{}const t=document.createElement("input");t.value=e,document.body.appendChild(t),t.select();let o=!1;try{o=document.execCommand("copy")}catch{}return document.body.removeChild(t),o},mt=(n,e,t)=>{const o=new AbortController;return Ot(n,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(e),signal:o.signal,openWhenHidden:!0,onopen(s){return Promise.resolve(t.onopen&&t.onopen(s))},onmessage(s){const a=JSON.parse(s.data);t.onmessage&&t.onmessage(a)},onclose(){t.onclose&&t.onclose()},onerror(s){console.error("请求失败:",s),s.message.includes("NetworkError")&&console.log("网络断开,请检查连接后重试"),s.name==="AbortError"&&console.log("请求被页面隐藏中止,可忽略或重新连接")}}).then(s=>{console.log(s)}),()=>o.abort()},vn=""+new URL("assets/ai_photo.png",import.meta.url).href,pn=""+new URL("assets/user_photo.png",import.meta.url).href,mn=""+new URL("assets/clear1.png",import.meta.url).href,rt=""+new URL("assets/frame.png",import.meta.url).href,yn=""+new URL("assets/send.png",import.meta.url).href,wn={key:0,class:"is_icon"},xn=["src"],Tn={class:"qa-extra-container"},bn=["onClick"],Sn={class:"qa-extra-body"},kn={key:0,class:"qa-section qa-knowledge"},An=["innerHTML"],_n={key:1,class:"qa-section qa-tool"},Cn=["innerHTML"],En={key:2,class:"qa-extra-empty-line"},Rn={key:0,class:"btn"},Ln={key:0},Dn={key:1,class:"is_icon"},Pn=["src"],In={class:"qa_input"},Bn={class:"is_icon clear"},Wn=["src"],Mn=["value"],Un={class:"is_icon"},Nn={key:0},$n=["src"],zn=["src"],Hn={class:"send"},Fn=["src"],On=$e({name:"QaDialog",__name:"QaDialog",props:{title:{default:"AI助手"},useAudio:{type:Boolean,default:!0},dialogBoxTheme:{default:"light"},placementLeft:{default:450},placementBottom:{default:100},dialogCss:{default:void 0},isGettingAnswer:{type:Boolean,default:!1},isLocal:{type:Boolean,default:!1},conversationList:{default:()=>[]},followUpQuestions:{default:()=>[]},promptItems:{default:()=>[]},input:{default:""},inputRecognitionType:{default:"end"},audioSoundState:{type:Boolean,default:!1},audioSoundType:{default:""}},emits:["close","send","clear","stop-response","reset-qa","update:input","play-audio","start-recognition","stop-recognition","input-change","prompt-click","drag-position"],setup(n,{expose:e,emit:t}){const o=n,s=t,a=Ie(()=>o.dialogBoxTheme==="dark"?Ue.darkAlgorithm:Ue.defaultAlgorithm),{currentImage:u,previewConfig:i,renderMarkdown:v}=ft(),S=St({}),x=d(null),y=d(null),L=d(null),D=d(o.dialogCss??{position:"absolute",left:o.placementLeft+"px",bottom:o.placementBottom+"px",cursor:"grab",zIndex:1e4});_e(()=>o.dialogCss,g=>{g&&(D.value=g)},{deep:!0});const{startDrag:P}=vt(L,{initialX:50,initialY:window.innerHeight-200,dragHandleClass:"dialog-header",stopPropagation:!0,onStart:({left:g,top:h})=>{D.value={...D.value,position:"fixed",bottom:"auto",left:`${g}px`,top:`${h}px`},s("drag-position",{...D.value})},onPositionChange:({left:g,top:h})=>{D.value={...D.value,left:`${g}px`,top:`${h}px`},s("drag-position",{...D.value})},onEnd:({left:g,top:h})=>{D.value={...D.value,left:`${g}px`,top:`${h}px`},s("drag-position",{...D.value})}}),_=g=>{const h=g.target;s("update:input",h.value),s("input-change")};return e({scrollContainerRef:x,waveElRef:y}),(g,h)=>(W(),j("div",{class:"talk_main",style:ue(D.value),ref_key:"messageElement",ref:L},[de(l(gt),{theme:{algorithm:a.value}},{default:Ce(()=>[M("header",{onMousedown:h[1]||(h[1]=(...c)=>l(P)&&l(P)(...c)),onTouchstart:h[2]||(h[2]=(...c)=>l(P)&&l(P)(...c)),class:"dialog-header"},[M("span",null,tt(g.title),1),M("span",{class:"close",title:"关闭",onClick:h[0]||(h[0]=c=>s("close"))},[de(l(Mt),{class:re({disabled:g.isGettingAnswer})},null,8,["class"])])],32),M("ul",{class:"qa_body",ref_key:"scrollContainerRef",ref:x},[(W(!0),j(qe,null,ct(g.conversationList,(c,R)=>(W(),j("li",{key:"qa"+R,class:re([c.type!=="user"?"is_ai":"is_people"])},[c.type!=="user"?(W(),j("div",wn,[M("img",{src:l(vn),alt:"",draggable:"false"},null,8,xn)])):O("",!0),M("div",null,[c.type==="aiAnswer"&&g.isLocal?(W(),ge(l(Qe),{key:0,styles:{footer:{marginTop:0}},content:"",style:{"margin-bottom":"10px",width:"100%",display:"block"}},{message:Ce(()=>[M("div",Tn,[M("div",{class:"qa-extra-header",onClick:()=>{c.extraRunning||(S[R]=!S[R])}},[de(l(Ut),{class:re(c.extraRunning?"qa-status-running":"qa-status-success")},null,8,["class"]),M("span",{class:re(c.extraRunning?"qa-status-running":"qa-status-success")},tt(c.extraRunning?"运行中...":"运行成功"),3),c.extraRunning?(W(),ge(l(ot),{key:0})):O("",!0),c.extraRunning?O("",!0):(W(),ge(l(Pt),{key:1,type:"text",size:"small",style:{background:"transparent","margin-left":"auto"},icon:S[R]?ye(l(Nt)):ye(l($t)),disabled:c.extraRunning},null,8,["icon","disabled"]))],8,bn),ke(M("div",Sn,[c.knowledgeHtml?(W(),j("details",kn,[h[10]||(h[10]=M("summary",null,[He(" 知识库 "),M("span",{style:{color:"#999","font-size":"16px"}},"▾")],-1)),M("div",{innerHTML:c.knowledgeHtml},null,8,An)])):O("",!0),c.toolHtml?(W(),j("details",_n,[h[11]||(h[11]=M("summary",null,[He(" 工具调用 "),M("span",{style:{color:"#999","font-size":"16px"}},"▾")],-1)),M("div",{innerHTML:c.toolHtml},null,8,Cn)])):O("",!0),!c.knowledgeHtml&&!c.toolHtml&&!c.extraRunning?(W(),j("div",En," 暂无知识库或工具调用 ")):O("",!0)],512),[[Ae,S[R]]])])]),_:2},1024)):O("",!0),de(l(Qe),{content:c.singleText,messageRender:l(v)},{footer:Ce(()=>[c.type==="aiAnswer"?(W(),j("div",Rn,[de(l(zt),{onClick:U=>l(fn)(l(pt)(c)),title:"复制",class:"copyBtn"},null,8,["onClick"]),g.isGettingAnswer?O("",!0):(W(),ge(l(Ht),{key:0,onClick:h[3]||(h[3]=U=>s("reset-qa")),title:"重新回答",class:"copyBtn"})),c.ttsMaleAddress?(W(),ge(l(it),{key:1,class:re([g.audioSoundType===`ttsMaleAddress_${R}`&&g.audioSoundState?"open":"close"]),onClick:U=>s("play-audio",c.ttsMaleAddress,`ttsMaleAddress_${R}`),title:"男声播报",style:{"font-size":"18px",cursor:"pointer","margin-right":"10px"}},null,8,["class","onClick"])):O("",!0),c.ttsFemaleAddress?(W(),ge(l(it),{key:2,class:re([g.audioSoundType===`ttsFemaleAddress_${R}`&&g.audioSoundState?"open":"close"]),onClick:U=>s("play-audio",c.ttsFemaleAddress,`ttsFemaleAddress_${R}`),title:"女声播报",style:{"font-size":"18px",cursor:"pointer"}},null,8,["class","onClick"])):O("",!0)])):O("",!0)]),_:2},1032,["content","messageRender"]),de(dt,{name:"prompts-rise"},{default:Ce(()=>[c.type==="aiAnswer"&&R===g.conversationList.length-1&&g.followUpQuestions.length>0?(W(),j("div",Ln,[de(l(Lt),{title:"✨ 关联问题",items:g.promptItems,vertical:"","on-item-click":U=>s("prompt-click",U)},null,8,["items","on-item-click"])])):O("",!0)]),_:2},1024)]),c.type==="user"?(W(),j("div",Dn,[M("img",{src:l(pn),alt:"",draggable:"false"},null,8,Pn)])):O("",!0)],2))),128))],512),de(l(It),{src:l(u),preview:l(i),style:{width:"100%",maxWidth:"800px",margin:"auto",display:"none"}},null,8,["src","preview"]),M("div",{id:"playChart",ref_key:"waveElRef",ref:y,class:re([g.inputRecognitionType==="start"?"show":"hiddle"])},null,2),M("div",In,[M("div",Bn,[M("img",{src:l(mn),alt:"",title:"清空对话记录",class:re({disabled:g.isGettingAnswer}),draggable:"false",onClick:h[4]||(h[4]=c=>s("clear"))},null,10,Wn)]),g.isGettingAnswer?(W(),j("div",{key:0,onClick:h[5]||(h[5]=c=>s("stop-response")),class:"stop-response-btn"},[de(l(Ft),{title:"停止响应",class:"copyBtn"}),h[12]||(h[12]=He(" 停止响应 "))])):O("",!0),M("textarea",{value:g.input,placeholder:"请输入内容",autosize:{minRows:2,maxRows:4},onKeyup:h[6]||(h[6]=kt(c=>s("send"),["enter"])),onInput:_},null,40,Mn),M("div",Un,[g.useAudio?(W(),j("p",Nn,[g.inputRecognitionType=="end"?(W(),j("img",{key:0,src:l(rt),alt:"",class:"open",draggable:"false",title:"启动语音",onClick:h[7]||(h[7]=c=>s("start-recognition"))},null,8,$n)):O("",!0),g.inputRecognitionType==="loading"?(W(),ge(l(ot),{key:1,title:"重新回答"})):O("",!0),g.inputRecognitionType=="start"?(W(),j("img",{key:2,src:l(rt),alt:"",class:"close",draggable:"false",title:"关闭语音",onClick:h[8]||(h[8]=c=>s("stop-recognition"))},null,8,zn)):O("",!0)])):O("",!0),M("p",Hn,[M("img",{src:l(yn),alt:"",draggable:"false",title:"发送",onClick:h[9]||(h[9]=c=>s("send")),class:re({disabled:g.isGettingAnswer||g.inputRecognitionType==="start"})},null,10,Fn)])])])]),_:1},8,["theme"])],4))}}),Gn=ze(On,[["__scopeId","data-v-1b8ced74"]]),qn=""+new URL("assets/dialog.png",import.meta.url).href,Qn=""+new URL("assets/ai-robot.png",import.meta.url).href;function jn(n){const e=d(""),t=Ie(()=>({...n().cozeInfo,conversation_id:e.value}));return{conversation_id:e,cozeInfoParams:t,createConversation:()=>{const s=n();je.post(s.createConversationUrl,{coze_info:s.cozeInfo,model_type:s.modelType}).then(a=>{const u=a.data;u.code===200&&(e.value=u.detail.conversation_id)}).catch(a=>{console.error(a)})}}}function Yn(){let n=null;const e=d(!1),t=d("");let o=null;return{audioSoundState:e,audioSoundType:t,playAudio:(i,v)=>{if(!i)return!1;e.value=!1,t.value="",n?(n.pause(),n.src=i,n.load()):(n=new Audio(i),n.addEventListener("ended",()=>{const S=t.value;e.value=!1,t.value="",o&&o(S)},!1)),setTimeout(()=>{n==null||n.play().then(()=>{v&&(e.value=!0,t.value=v)})},100)},pauseAudio:()=>{n&&n.pause(),e.value=!1,t.value=""},setOnEnded:i=>{o=i}}}let Xn=class{constructor(e){ne(this,"speechSokt");ne(this,"msgHandle");ne(this,"stateHandle");ne(this,"url");ne(this,"mode");this.speechSokt=null,this.msgHandle=e.msgHandle,this.stateHandle=e.stateHandle,this.url=e.url||Ne.fallbackAudio,this.mode="2pass"}wsStart(e="2pass"){if(console.log(e),this.mode=e,this.url.match(/wss:\S*|ws:\S*/))console.log("url:"+this.url);else return alert("请检查wss地址正确性"),0;return"WebSocket"in window?(this.speechSokt=new WebSocket(this.url),this.speechSokt.onopen=()=>this.onOpen(),this.speechSokt.onclose=t=>this.onClose(t),this.speechSokt.onmessage=t=>this.onMessage(t),this.speechSokt.onerror=t=>this.onError(t),1):(alert("当前浏览器不支持 WebSocket"),0)}wsStop(){this.speechSokt&&(console.log("stop ws!"),this.speechSokt.close())}wsSend(e){this.speechSokt!=null&&this.speechSokt.readyState===1&&this.speechSokt.send(e)}onOpen(){var o;var e=[5,10,5],t={chunk_size:e,wav_name:"h5",is_speaking:!0,chunk_interval:10,itn:!1,language:"en",mode:this.mode};console.log(JSON.stringify(t)),(o=this.speechSokt)==null||o.send(JSON.stringify(t)),console.log("连接成功"),this.stateHandle(0)}onClose(e){console.log("连接关闭",e),console.log(`连接关闭: code=${e.code}, reason=${e.reason}, wasClean=${e.wasClean}`)}onMessage(e){this.msgHandle(e)}onError(e){console.log("连接错误"+e),this.stateHandle(2)}};class Vn{constructor(e){ne(this,"speechSokt");ne(this,"url");ne(this,"desti_audio_name");ne(this,"speaker_data");ne(this,"onMessageCallback");this.speechSokt=null,this.url=e||Ne.fallbackVoiceprint,this.desti_audio_name=null,this.speaker_data=null,this.onMessageCallback=null}setOnMessageCallback(e){this.onMessageCallback=e}wsStart(){if(this.url.match(/wss:\S*|ws:\S*/))console.log("url: "+this.url);else return alert("请检查WebSocket地址正确性"),0;return"WebSocket"in window?(this.speechSokt=new WebSocket(this.url),this.speechSokt.onopen=()=>this.onOpen(),this.speechSokt.onclose=e=>this.onClose(e),this.speechSokt.onmessage=e=>this.onMessage(e),this.speechSokt.onerror=e=>this.onError(e),1):(alert("当前浏览器不支持 WebSocket"),0)}setData(e,t){this.desti_audio_name=e,this.speaker_data=t}wsSendData(){if(!this.speechSokt||this.speechSokt.readyState!==WebSocket.OPEN){console.error("WebSocket未连接或未打开");return}if(!this.desti_audio_name||!this.speaker_data){console.error("未设置desti_audio_name或speaker_data");return}const e={desti_audio_name:this.desti_audio_name,speaker_data:this.speaker_data};this.speechSokt.send(JSON.stringify(e))}wsStop(){this.speechSokt&&(console.log("stop ws!"),this.speechSokt.close())}onOpen(){console.log("声纹识别连接成功")}onClose(e){console.log("声纹识别连接关闭: "+e)}onMessage(e){console.log("声纹识别收到消息: ",e.data);try{const t=JSON.parse(e.data);this.onMessageCallback&&this.onMessageCallback(t)}catch(t){console.error("声纹识别消息解析失败: ",t)}}onError(e){console.log("声纹识别连接错误: "+e)}}const Jn={xiaogui:["xiaoguixiaogui","xiaoguaixiaoguai"],xiaohui:["xiaohuixiaohui"],xiaozhi:["xiaozhixiaozhi","xiaozixiaozi","xiaochixiaochi"],xiaoG:["xiaogtongxue","xiaogtongxie","xiaojitongxue","xiaojitongxie","xiaoqitongxue","xiaoqitongxie","xiaoxitongxue","xiaoxitongxie","xiaoditongxue","xiaoditongxie"],xiaoR:["xiaortongxue","xiaoertongxue","xiaortongxie","xiaoertongxie","xiaohaitongxue","xiaohaitongxie","xiaoaitongxue","xiaoaitongxie"]},Kn=["baibai","zaijian","xiaoguibaibai","xiaohuibaibai","xiaoguizaijian","xiaohuizaijian","xiaoguaibaibai","xiaoguaizaijian","xiaobeibaibai","xiaobeizaijian"],Zn=["zanting","tingzhi","xiaoguizanting","xiaohuitingzhi","xiaohuizanting","xiaoguiuitingzhi"];function ea(n){for(const[e,t]of Object.entries(Jn))if(t.some(o=>n.includes(o)))return e;return null}function ta(n){return Kn.some(e=>n.includes(e))}function na(n){return Zn.some(e=>n.includes(e))}function aa(n,e,t,o,s){const a=d(""),u=d(""),i=d(""),v=d("end"),S=d(""),x=d(null),y=d(null),L=d(null);let D=new Int16Array,P=null,_=null;const g=()=>{a.value=i.value},h=b=>Gt(b,{toneType:"none",type:"array"}).filter(I=>I!==","&&I!=="。"&&I!=="、").join("");function c(b){const I=JSON.parse(b.data),C=I.text,z=I.mode,A=n();if(A.isDebug&&console.log("isDebug",I),v.value==="start")z==="2pass-offline"||z==="offline"?(a.value=a.value+C.replace(/ +/g,""),i.value=a.value):i.value=i.value+C;else if(z==="2pass-offline"||z==="offline"){u.value=I.audio_data_bytes;const Y=h(I.text);if(ta(Y)&&!s.value&&o.value){R(I.text,()=>{e.onEndWord(I.text)});return}if(na(Y)&&!s.value&&o.value){R(I.text,()=>{e.onPauseWord(I.text)});return}const oe=ea(Y);if(oe){if(!s.value){const fe=(A.isExhibitionPro?Kt:Jt)[oe];fe&&(e.onAudioDataReady(u.value),e.onWakeWord(oe,fe,I.text))}return}o.value&&S.value&&R(I.text,()=>{e.onVerifiedSpeech(I.text,s.value)})}}function R(b,I){_==null||_.setData(S.value,u.value),_==null||_.wsSendData(),_==null||_.setOnMessageCallback(async C=>{C.text==="yes"&&I()})}let U=!1,B=null;const Z=5,H=3e3;function ee(b){U||b===0||(b===1?ae():b===2&&(console.log("connection error, will retry..."),te()))}let Q=0;const te=()=>{if(!U){if(Q>=Z){console.warn(`WebSocket reconnect failed after ${Z} retries`);return}Q++,B&&clearTimeout(B),B=setTimeout(()=>{U||ae()},H)}},ae=()=>{if(U)return;const b=P==null?void 0:P.wsStart();_==null||_.wsStart(),b===1?(console.log("connect start"),Q=0,L.value.open(()=>{console.log("recorder open"),L.value.start()})):(console.log("connect error, will retry..."),te())},ce=()=>{var b;U=!0,B&&(clearTimeout(B),B=null),P==null||P.wsStop(),_==null||_.wsStop(),(b=L.value)==null||b.close()},$=(b,I,C,z)=>{y.value&&y.value.input(b[b.length-1],I,z);const A=b[b.length-1],Y=new Array(A),oe=Fe.SampleData(Y,z,16e3).data;D=Int16Array.from([...D,...oe]);const he=960;for(;D.length>=he;){const fe=D.slice(0,he);D=D.slice(he),P==null||P.wsSend(fe)}};return{input:i,inputRecognitionType:v,offline_text:a,audioDataBase64:u,wakeUpName:S,wakeStatus:o,waveRef:x,wave:y,recorder:L,inputChange:g,toPinyinStr:h,startRecognition:()=>{v.value="start",o.value=!1,i.value="",a.value="",x.value&&(y.value=Fe.WaveView({elem:x.value}))},stopRecognition:()=>{v.value="end",y.value=null},startListen:ae,closeListen:ce,init:()=>{const b=n();P=new Xn({url:b.audioWs,msgHandle:c,stateHandle:ee}),_=new Vn(b.voiceprintWs),L.value=new Fe({sampleBits:16,sampleRate:48e3,numChannels:1,onProcess:$})},startWsConnect:()=>{const b=n();(b.mode==="audio"||b.mode==="video")&&ae()}}}const Ye=40,Xe=4;function yt(n){const{drainInterval:e=Ye,charsPerDrain:t=Xe,onDrain:o}=n,s=d(""),a=d("");let u=null,i=!1,v="",S="";const x=()=>{u=null;let P=!1;if(s.value){const _=s.value.slice(0,t);s.value=s.value.slice(t),v+=_,P=!0}else if(a.value){const _=a.value.slice(0,t);a.value=a.value.slice(t),S+=_,P=!0}P&&o(v,S),s.value||a.value?u=window.setTimeout(x,e):i=!1};return{thinkingBuffer:s,answerBuffer:a,scheduleDrain:()=>{i||(i=!0,u=window.setTimeout(x,e))},clear:()=>{s.value="",a.value="",v="",S="",u!=null&&(window.clearTimeout(u),u=null),i=!1},flush:()=>{for(;s.value||a.value;)x();u!=null&&(window.clearTimeout(u),u=null),i=!1}}}function oa(n,e){const t=d(!1),o=d(!1),s=d(),a=d({}),u=d(""),i=d(""),v=d(null),S=d(-1);let x=null;const y=yt({drainInterval:Ye,charsPerDrain:Xe,onDrain(g,h){const c=S.value;if(c<0||c>=e.msgList.value.length)return;const R=e.msgList.value[c];R.thinkingText=g,R.answerText=h,R.content=De(R),R.type==="aiLocal"&&(R.type="aiAnswer")}}),L=g=>e.eventFun.find(h=>h.keywords.some(c=>g.includes(c)));return{isGettingAnswer:t,isWaitingForResponse:o,currentAnswerData:s,matchEvent:a,currentChatId:u,currentConversationId:i,currentAnswerStreamId:v,cancelChat:async(g,h)=>{try{const c=n();return await je.post(c.qaServer.replace(/searchTextNew$/,"cancelChat"),{conversation_id:g,chat_id:h,model_type:e.currentModelType.value},{headers:{"Content-Type":"application/json"}}),!0}catch(c){return console.error("取消请求失败",c),!0}},getAnswer:async g=>{const h=n();o.value=!0,s.value=null,u.value="",i.value="";const c=Date.now();v.value=c;let R=null;const U=()=>{R&&window.clearTimeout(R),R=window.setTimeout(()=>{var H;v.value===c&&(o.value=!1,t.value=!1,((H=a.value)==null?void 0:H.trigger)==="after"&&a.value.fun(s.value))},1200)},B={searchText:g,stream:h.stream,use_tts:"True",coze_info:e.cozeInfoParams.value||{},model_type:e.currentModelType.value};e.msgList.value.push({id:Date.now()+1,type:"aiLocal",content:""});const Z=e.msgList.value.length-1;h.stream==="True"&&(x&&x(),y.clear(),S.value=Z,x=mt(h.qaServer,B,{onopen:()=>{var H,ee,Q,te;v.value===c&&(e.stopOrderPlayAudio(),(H=e.digitalHumanRef.value)!=null&&H.isAudioActive&&((ee=e.digitalHumanRef.value)==null||ee.digitalHumanStop()),(Q=e.digitalHumanRef.value)!=null&&Q.isPlaying&&((te=e.digitalHumanRef.value)==null||te.interruptSpeech()))},onmessage:async H=>{var f,T;if(v.value!==c)return;const{audioUrl:ee,data:Q,text:te,chat_id:ae,conversation_id:ce,message_type:$}=H;if($==="answer"&&U(),$==="thinking"){ce&&ae&&(u.value=ae,i.value=ce),y.thinkingBuffer.value+=String(te??""),y.scheduleDrain();return}if(Q&&$==="answer"&&(a.value={},s.value=Q,ae&&ce&&(u.value=ae,i.value=ce),Q.action&&(h.isDebug&&console.log("action",Q.action),a.value=L(Q.action),a.value&&(a.value.trigger==="before"||a.value.trigger==="together")&&a.value.fun(Q)),y.answerBuffer.value+=String(te??""),y.scheduleDrain()),e.stopOrderPlayAudio(),Pe(e.avatarId.value))if(h.mode==="video"&&$==="answer"){const E={metahuman_type:Ee(e.avatarId.value,h.isFuYangPro),audiourl:ee,interrupt:!1,text:te};await((f=e.digitalHumanRef.value)==null?void 0:f.humanaudio(E)),setTimeout(()=>{v.value===c&&(e.msgList.value[Z].type="aiAnswer")},1e3)}else e.addAudioToQueue(ee,!0);else Me(e.avatarId.value)&&(h.mode==="video"&&$==="answer"?(setTimeout(()=>{v.value===c&&(e.msgList.value[Z].type="aiAnswer")},1e3),await((T=e.digitalHumanRef.value)==null?void 0:T.textToSpeech(te))):e.addAudioToQueue(ee,!0))},onclose:()=>{var H;v.value===c&&(R&&window.clearTimeout(R),o.value=!1,((H=a.value)==null?void 0:H.trigger)==="after"&&a.value.fun(s.value),t.value=!1)},onerror:()=>{v.value===c&&(R&&window.clearTimeout(R),o.value=!1)}}))},cancelCurrentStream:()=>{x&&(x(),x=null)},matchEventFun:L}}const Le=n=>String(n).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'");function ia(n,e){const t=d(!1),o=d([]),s=d([]),a=d(0),u=d({});let i=null,v=null;const S=d(null),x=async()=>{await At(),e.scrollContainer.value&&(e.scrollContainer.value.scrollTop=e.scrollContainer.value.scrollHeight)},y=yt({drainInterval:Ye,charsPerDrain:Xe,onDrain(f,T){const m=o.value.length-1;if(m<0)return;const E=o.value[m];E.thinkingText=f,E.answerText=T,E.wholeText=T,E.singleText=De(E),x()}}),L=f=>{const T=f.wholeText.split("");let m=0;o.value.push({singleText:T[m],...f}),i=window.setInterval(()=>{var E;m++,o.value[o.value.length-1].singleText+=T[m],x(),m>=T.length-1&&(e.isGettingAnswer.value=!1,window.clearInterval(i),i=null,f.type==="aiAnswer"&&(E=e.matchEvent.value)!=null&&E.fun&&e.matchEvent.value.fun({...f}))},50)},D=f=>{const m=n().conversations||[];if(!(f>=m.length||!t.value)){for(let E=f;E<m.length;E++){const{question:b,chunks:I}=m[E];o.value.push({type:"user",wholeText:b,singleText:b}),o.value.push({type:"aiAnswer",wholeText:"",singleText:"",extraRunning:!1});const C=o.value.length-1,z=o.value[C];for(const{text:A,message_type:Y}of I||[])Y==="thinking"?(z.thinkingText||(z.thinkingText=""),z.thinkingText+=String(A??"")):Y==="answer"&&(z.answerText||(z.answerText=""),z.answerText+=String(A??"")),z.singleText=De(z)}x()}},P=()=>{const T=n().streamChunks||[];if(!T.length||!t.value)return;const m=o.value[o.value.length-1];(!m||m.type!=="aiAnswer")&&o.value.push({type:"aiAnswer",wholeText:"",singleText:"",extraRunning:!1});const E=a.value;for(let b=E;b<T.length;b++){const{text:I,message_type:C}=T[b],z=o.value.length-1,A=o.value[z];C==="thinking"?(A.thinkingText||(A.thinkingText=""),A.thinkingText+=String(I??"")):C==="answer"&&(A.answerText||(A.answerText=""),A.answerText+=String(I??"")),A.singleText=De(A),a.value=b+1}x()},_=()=>{var f;if(t.value)g();else{t.value=!0;const T=n();(T.conversations||[]).length>0?D(0):T.initialQuestion?(o.value.push({type:"user",wholeText:T.initialQuestion,singleText:T.initialQuestion}),a.value=0,(f=T.streamChunks)!=null&&f.length&&(o.value.push({type:"aiAnswer",wholeText:"",singleText:"",extraRunning:!1}),P()),x()):L({wholeText:T.greet,type:"aiLocal"})}},g=()=>{e.stopRecognition(),!e.isGettingAnswer.value&&(t.value=!1)},h=()=>{o.value=[],e.matchEvent.value={},a.value=0,i&&(window.clearInterval(i),i=null)},c=()=>{if(e.isGettingAnswer.value)return;o.value=[],e.matchEvent.value={},a.value=0,i&&(window.clearInterval(i),i=null);const f=n();e.isGettingAnswer.value=!0,L({wholeText:f.greet,type:"aiLocal"})},R=()=>{const f=o.value[o.value.length-2];Z(f.wholeText)},U=async()=>{if(e.isGettingAnswer.value&&(e.currentConversationId.value&&e.currentChatId.value&&await e.cancelChat(e.currentConversationId.value,e.currentChatId.value),e.isGettingAnswer.value=!1,S.value=null,v&&(v(),v=null),e.currentModelType.value==="local")){for(let f=o.value.length-1;f>=0;f--)if(o.value[f].type==="aiAnswer"){o.value[f].extraRunning=!1;break}}},B=()=>{e.isGettingAnswer.value||e.inputRecognitionType.value==="start"||(e.stopOrderPlayAudio(),e.input.value&&(o.value.push({type:"user",wholeText:e.input.value,singleText:e.input.value}),Z(e.input.value),e.input.value=""))},Z=f=>{const T=n(),m={searchText:f,use_tts:"False",stream:T.stream,coze_info:e.cozeInfoParams.value||{},model_type:e.currentModelType.value},E=Date.now();S.value=E;let b=null;const I=()=>{b&&window.clearTimeout(b),b=window.setTimeout(()=>{var C;S.value===E&&(e.isGettingAnswer.value=!1,((C=e.matchEvent.value)==null?void 0:C.trigger)==="after"&&e.matchEvent.value.fun(e.currentAnswerData.value))},1200)};o.value.push({type:"aiLocal",wholeText:"",singleText:`${T.waitTxt} <span class="ellipsisText"></span>`,knowledgeList:[],toolList:[]}),s.value=[],x(),e.isGettingAnswer.value=!0,T.stream==="True"&&(v&&v(),y.clear(),v=mt(T.qaServer,m,{onopen:()=>{S.value===E&&(o.value.splice(o.value.length-1,1),o.value.push({type:"aiAnswer",wholeText:"",singleText:"",extraRunning:e.currentModelType.value==="local"}))},onmessage:C=>{var fe;if(S.value!==E)return;T.isDebug&&console.log(C);const{text:z,data:A,message_type:Y,chat_id:oe,conversation_id:he}=C;if(oe&&he&&(e.currentChatId.value=oe,e.currentConversationId.value=he),Y==="thinking"){y.thinkingBuffer.value+=String(z??""),y.scheduleDrain();return}if(A&&Y==="answer"&&(I(),e.currentAnswerData.value=A,A.action&&(e.matchEvent.value=e.matchEventFun(A.action),e.matchEvent.value&&(e.matchEvent.value.trigger==="before"||e.matchEvent.value.trigger==="together")&&e.matchEvent.value.fun(A)),y.answerBuffer.value+=String(z??""),y.scheduleDrain(),A.action==="stop"&&(e.isGettingAnswer.value=!1,((fe=e.matchEvent.value)==null?void 0:fe.trigger)==="after"&&e.matchEvent.value.fun(e.currentAnswerData.value))),(C==null?void 0:C.type)==="end"&&e.currentModelType.value==="local"){for(let ie=o.value.length-1;ie>=0;ie--)if(o.value[ie].type==="aiAnswer"){o.value[ie].extraRunning=!1;break}}if(e.currentModelType.value==="local"&&((A==null?void 0:A.type)==="knowledge"||(C==null?void 0:C.type)==="knowledge")){const ie=H(),q=o.value[ie],J=(A==null?void 0:A.type)==="knowledge"?A:C,be=Array.isArray(J.content)?J.content:[];q.knowledgeList=[...q.knowledgeList||[],...be],q.knowledgeHtml=ee(q.knowledgeList||[]),q.singleText=De(q),x()}if(e.currentModelType.value==="local"&&((A==null?void 0:A.type)==="tool"||(C==null?void 0:C.type)==="tool")){const ie=H(),q=o.value[ie],J=(A==null?void 0:A.type)==="tool"?A:C;Array.isArray(J.content)?q.toolList=[...q.toolList||[],...J.content]:J.tool_name||J.input||J.output?q.toolList=[...q.toolList||[],J]:q.toolList=[...q.toolList||[],J.content],q.toolHtml=Q(q.toolList||[]),q.singleText=De(q),x()}if(A&&Y==="follow_up"){const ie=z.split(`
|
|
67
|
+
`),x=a(S);return x!=null&&x.length&&((y=x[0])!=null&&y.length)?x:a(v)};return{currentImage:e,previewConfig:t,renderMarkdown:v=>{var P;const S=v==null?"":typeof v=="string"?v:(v==null?void 0:v.text)??"";if(typeof S!="string")return ye("div",{innerHTML:""});v=S;const x=/<img src="([^"]+)"[^>]*>/g,y=v.replace(x,(_,g)=>`<img src="${g}" class="clickable-image" />`),L=/\|(.+\|)+/g,D=L.test(y);if(L.lastIndex=0,D){const _=u(y);if(!(_!=null&&_.length)||!((P=_[0])!=null&&P.length))return ye("div",{innerHTML:n.render(y),onClick:U=>{const B=U.target;(B==null?void 0:B.tagName)==="IMG"&&o(B.src)}});const g=_[0].map((U,B)=>({title:U,dataIndex:`col${B}`,key:`col${B}`})),c=_.slice(1).filter(U=>!U.every(B=>/^-+$/.test(String(B).trim()))).map((U,B)=>{const Z={key:`row${B}`};return U.forEach((H,ee)=>{Z[`col${ee}`]=H}),Z}),R=y.replace(L,"");return ye("div",null,[ye("div",{innerHTML:n.render(R)}),ye("div",{class:"table-container",onMousedown:U=>U.stopPropagation(),onTouchstart:U=>U.stopPropagation()},[ye(Dt,{columns:g,dataSource:c,class:"markdown-table",bordered:!0,pagination:!1,tableLayout:"auto"})])])}return ye("div",{innerHTML:n.render(y),onClick:_=>{const g=_.target;g&&g.tagName==="IMG"&&o(g.src)}})}}},gn=$e({name:"suspensionMsgBubble",inheritAttrs:!1,__name:"suspensionMsgBubble",props:{msgList:{},showMsgNumber:{default:5},bubbleTheme:{default:"dark"},useCustomDialog:{type:Boolean,default:!1},BubbleWidth:{default:()=>({width:"220px",bottom:"85%"})},BubbleBottom:{},suspensionStyle:{default:()=>({maxHeight:"33vh"})}},setup(n){const e=n,{renderMarkdown:t}=ft(),o=Ie(()=>e.bubbleTheme==="dark"?Ue.darkAlgorithm:Ue.defaultAlgorithm);return(s,a)=>(W(),j("div",{class:"suspension-content",style:ue(s.suspensionStyle)},[de(l(gt),{theme:{algorithm:o.value}},{default:Ce(()=>[M("div",{class:re(s.useCustomDialog?"useCustom-dialog":"suspension-msg-bubble"),style:ue(e.BubbleWidth)},[de(bt,{name:"bubble",tag:"div"},{default:Ce(()=>[(W(!0),j(qe,null,ct(s.msgList,(u,i)=>(W(),j(qe,{key:u.id},[i>=s.msgList.length-s.showMsgNumber?(W(),ge(l(Qe),{key:0,class:re(["bubble-item",u.type]),variant:u.type==="user"?"outlined":"filled",typing:u.type!=="aiAnswer"&&{step:2,interval:50},content:u.content,messageRender:l(t),loading:u.type==="aiLocal",style:ue(e.BubbleWidth)},null,8,["class","variant","typing","content","messageRender","loading","style"])):O("",!0)],64))),128))]),_:1})],6)]),_:1},8,["theme"])],4))}}),hn=ze(gn,[["__scopeId","data-v-cafadabb"]]);function vt(n,e={}){const t=d(!1),o=d(0),s=d(0),a=d(n.value?parseInt(getComputedStyle(n.value).left)||e.initialX||10:e.initialX||10),u=d(n.value?parseInt(getComputedStyle(n.value).top)||e.initialY||window.innerHeight-300:e.initialY||window.innerHeight-300),i=y=>"touches"in y?{clientX:y.touches[0].clientX,clientY:y.touches[0].clientY}:{clientX:y.clientX,clientY:y.clientY},v=y=>{if(e.dragHandleClass&&!y.target.closest(`.${e.dragHandleClass}`))return;e.stopPropagation&&y.stopPropagation(),y.preventDefault();const{clientX:L,clientY:D}=i(y);if(!n.value)return;const P=n.value.getBoundingClientRect();a.value=P.left,u.value=P.top,o.value=L,s.value=D,t.value=!0,n.value.style.cursor="grabbing",e.onStart&&e.onStart({left:P.left,top:P.top}),document.addEventListener("mousemove",S),document.addEventListener("touchmove",S,{passive:!1}),document.addEventListener("mouseup",x),document.addEventListener("touchend",x)},S=y=>{if(!t.value||!n.value)return;y.preventDefault();const{clientX:L,clientY:D}=i(y),P=L-o.value,_=D-s.value;n.value.style.position="fixed",n.value.style.bottom="auto";const g=a.value+P,h=u.value+_;n.value.style.left=`${g}px`,n.value.style.top=`${h}px`,e.onPositionChange&&e.onPositionChange({left:g,top:h})},x=()=>{if(t.value=!1,n.value){n.value.style.cursor="grab";const y=n.value.getBoundingClientRect();e.onEnd&&e.onEnd({left:y.left,top:y.top})}document.removeEventListener("mousemove",S),document.removeEventListener("touchmove",S),document.removeEventListener("mouseup",x),document.removeEventListener("touchend",x)};return Ge(()=>{x()}),{startDrag:v,isDragging:t,endDrag:x}}const De=n=>{const e=n.thinkingText?`<style>.thinking-details summary::-webkit-details-marker{display:none;} .thinking-details summary::marker{content:'';}</style><details class="thinking-details" open><summary style="font-weight: 600; color: #666; cursor: pointer; display: flex; justify-content: space-between; align-items: center;">思考内容<span style="color:#999; font-size:16px;">▾</span></summary><div style="color: #999 !important; padding-top: 6px;">${n.thinkingText}</div></details>`:"",t=n.thinkingText?'<hr style="border: 0; border-top: 1px solid #e5e5e5; margin: 8px 0;" />':"",o=n.answerText?`<span style="color: #000 !important;">${n.answerText}</span>`:"";return e+t+o},pt=n=>{var e,t;return(e=n.answerText)!=null&&e.trim()?n.answerText:((t=n.wholeText)==null?void 0:t.trim())??""},fn=async n=>{var s;if(n==null||String(n).trim()==="")return!1;const e=String(n);try{if((s=navigator.clipboard)!=null&&s.writeText)return await navigator.clipboard.writeText(e),!0}catch{}const t=document.createElement("input");t.value=e,document.body.appendChild(t),t.select();let o=!1;try{o=document.execCommand("copy")}catch{}return document.body.removeChild(t),o},mt=(n,e,t)=>{const o=new AbortController;return Ot(n,{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify(e),signal:o.signal,openWhenHidden:!0,onopen(s){return Promise.resolve(t.onopen&&t.onopen(s))},onmessage(s){const a=JSON.parse(s.data);t.onmessage&&t.onmessage(a)},onclose(){t.onclose&&t.onclose()},onerror(s){console.error("请求失败:",s),s.message.includes("NetworkError")&&console.log("网络断开,请检查连接后重试"),s.name==="AbortError"&&console.log("请求被页面隐藏中止,可忽略或重新连接")}}).then(s=>{console.log(s)}),()=>o.abort()},vn=""+new URL("assets/ai_photo.png",import.meta.url).href,pn=""+new URL("assets/user_photo.png",import.meta.url).href,mn=""+new URL("assets/clear1.png",import.meta.url).href,rt=""+new URL("assets/frame.png",import.meta.url).href,yn=""+new URL("assets/send.png",import.meta.url).href,wn={key:0,class:"is_icon"},xn=["src"],Tn={class:"qa-extra-container"},bn=["onClick"],Sn={class:"qa-extra-body"},kn={key:0,class:"qa-section qa-knowledge"},An=["innerHTML"],_n={key:1,class:"qa-section qa-tool"},Cn=["innerHTML"],En={key:2,class:"qa-extra-empty-line"},Rn={key:0,class:"btn"},Ln={key:0},Dn={key:1,class:"is_icon"},Pn=["src"],In={class:"qa_input"},Bn={class:"is_icon clear"},Wn=["src"],Mn=["value"],Un={class:"is_icon"},Nn={key:0},$n=["src"],zn=["src"],Hn={class:"send"},Fn=["src"],On=$e({name:"QaDialog",__name:"QaDialog",props:{title:{default:"AI助手"},useAudio:{type:Boolean,default:!0},dialogBoxTheme:{default:"light"},placementLeft:{default:450},placementBottom:{default:100},dialogCss:{default:void 0},isGettingAnswer:{type:Boolean,default:!1},isLocal:{type:Boolean,default:!1},conversationList:{default:()=>[]},followUpQuestions:{default:()=>[]},promptItems:{default:()=>[]},input:{default:""},inputRecognitionType:{default:"end"},audioSoundState:{type:Boolean,default:!1},audioSoundType:{default:""}},emits:["close","send","clear","stop-response","reset-qa","update:input","play-audio","start-recognition","stop-recognition","input-change","prompt-click","drag-position"],setup(n,{expose:e,emit:t}){const o=n,s=t,a=Ie(()=>o.dialogBoxTheme==="dark"?Ue.darkAlgorithm:Ue.defaultAlgorithm),{currentImage:u,previewConfig:i,renderMarkdown:v}=ft(),S=St({}),x=d(null),y=d(null),L=d(null),D=d(o.dialogCss??{position:"absolute",left:o.placementLeft+"px",bottom:o.placementBottom+"px",cursor:"grab",zIndex:1e4});_e(()=>o.dialogCss,g=>{g&&(D.value=g)},{deep:!0});const{startDrag:P}=vt(L,{initialX:50,initialY:window.innerHeight-200,dragHandleClass:"dialog-header",stopPropagation:!0,onStart:({left:g,top:h})=>{D.value={...D.value,position:"fixed",bottom:"auto",left:`${g}px`,top:`${h}px`},s("drag-position",{...D.value})},onPositionChange:({left:g,top:h})=>{D.value={...D.value,left:`${g}px`,top:`${h}px`},s("drag-position",{...D.value})},onEnd:({left:g,top:h})=>{D.value={...D.value,left:`${g}px`,top:`${h}px`},s("drag-position",{...D.value})}}),_=g=>{const h=g.target;s("update:input",h.value),s("input-change")};return e({scrollContainerRef:x,waveElRef:y}),(g,h)=>(W(),j("div",{class:"talk_main",style:ue(D.value),ref_key:"messageElement",ref:L},[de(l(gt),{theme:{algorithm:a.value}},{default:Ce(()=>[M("header",{onMousedown:h[1]||(h[1]=(...c)=>l(P)&&l(P)(...c)),onTouchstart:h[2]||(h[2]=(...c)=>l(P)&&l(P)(...c)),class:"dialog-header"},[M("span",null,tt(g.title),1),M("span",{class:"close",title:"关闭",onClick:h[0]||(h[0]=c=>s("close"))},[de(l(Mt),{class:re({disabled:g.isGettingAnswer})},null,8,["class"])])],32),M("ul",{class:"qa_body",ref_key:"scrollContainerRef",ref:x},[(W(!0),j(qe,null,ct(g.conversationList,(c,R)=>(W(),j("li",{key:"qa"+R,class:re([c.type!=="user"?"is_ai":"is_people"])},[c.type!=="user"?(W(),j("div",wn,[M("img",{src:l(vn),alt:"",draggable:"false"},null,8,xn)])):O("",!0),M("div",null,[c.type==="aiAnswer"&&g.isLocal?(W(),ge(l(Qe),{key:0,styles:{footer:{marginTop:0}},content:"",style:{"margin-bottom":"10px",width:"100%",display:"block"}},{message:Ce(()=>[M("div",Tn,[M("div",{class:"qa-extra-header",onClick:()=>{c.extraRunning||(S[R]=!S[R])}},[de(l(Ut),{class:re(c.extraRunning?"qa-status-running":"qa-status-success")},null,8,["class"]),M("span",{class:re(c.extraRunning?"qa-status-running":"qa-status-success")},tt(c.extraRunning?"运行中...":"运行成功"),3),c.extraRunning?(W(),ge(l(ot),{key:0})):O("",!0),c.extraRunning?O("",!0):(W(),ge(l(Pt),{key:1,type:"text",size:"small",style:{background:"transparent","margin-left":"auto"},icon:S[R]?ye(l(Nt)):ye(l($t)),disabled:c.extraRunning},null,8,["icon","disabled"]))],8,bn),ke(M("div",Sn,[c.knowledgeHtml?(W(),j("details",kn,[h[10]||(h[10]=M("summary",null,[He(" 知识库 "),M("span",{style:{color:"#999","font-size":"16px"}},"▾")],-1)),M("div",{innerHTML:c.knowledgeHtml},null,8,An)])):O("",!0),c.toolHtml?(W(),j("details",_n,[h[11]||(h[11]=M("summary",null,[He(" 工具调用 "),M("span",{style:{color:"#999","font-size":"16px"}},"▾")],-1)),M("div",{innerHTML:c.toolHtml},null,8,Cn)])):O("",!0),!c.knowledgeHtml&&!c.toolHtml&&!c.extraRunning?(W(),j("div",En," 暂无知识库或工具调用 ")):O("",!0)],512),[[Ae,S[R]]])])]),_:2},1024)):O("",!0),de(l(Qe),{content:c.singleText,messageRender:l(v)},{footer:Ce(()=>[c.type==="aiAnswer"?(W(),j("div",Rn,[de(l(zt),{onClick:U=>l(fn)(l(pt)(c)),title:"复制",class:"copyBtn"},null,8,["onClick"]),g.isGettingAnswer?O("",!0):(W(),ge(l(Ht),{key:0,onClick:h[3]||(h[3]=U=>s("reset-qa")),title:"重新回答",class:"copyBtn"})),c.ttsMaleAddress?(W(),ge(l(it),{key:1,class:re([g.audioSoundType===`ttsMaleAddress_${R}`&&g.audioSoundState?"open":"close"]),onClick:U=>s("play-audio",c.ttsMaleAddress,`ttsMaleAddress_${R}`),title:"男声播报",style:{"font-size":"18px",cursor:"pointer","margin-right":"10px"}},null,8,["class","onClick"])):O("",!0),c.ttsFemaleAddress?(W(),ge(l(it),{key:2,class:re([g.audioSoundType===`ttsFemaleAddress_${R}`&&g.audioSoundState?"open":"close"]),onClick:U=>s("play-audio",c.ttsFemaleAddress,`ttsFemaleAddress_${R}`),title:"女声播报",style:{"font-size":"18px",cursor:"pointer"}},null,8,["class","onClick"])):O("",!0)])):O("",!0)]),_:2},1032,["content","messageRender"]),de(dt,{name:"prompts-rise"},{default:Ce(()=>[c.type==="aiAnswer"&&R===g.conversationList.length-1&&g.followUpQuestions.length>0?(W(),j("div",Ln,[de(l(Lt),{title:"✨ 关联问题",items:g.promptItems,vertical:"","on-item-click":U=>s("prompt-click",U)},null,8,["items","on-item-click"])])):O("",!0)]),_:2},1024)]),c.type==="user"?(W(),j("div",Dn,[M("img",{src:l(pn),alt:"",draggable:"false"},null,8,Pn)])):O("",!0)],2))),128))],512),de(l(It),{src:l(u),preview:l(i),style:{width:"100%",maxWidth:"800px",margin:"auto",display:"none"}},null,8,["src","preview"]),M("div",{id:"playChart",ref_key:"waveElRef",ref:y,class:re([g.inputRecognitionType==="start"?"show":"hiddle"])},null,2),M("div",In,[M("div",Bn,[M("img",{src:l(mn),alt:"",title:"清空对话记录",class:re({disabled:g.isGettingAnswer}),draggable:"false",onClick:h[4]||(h[4]=c=>s("clear"))},null,10,Wn)]),g.isGettingAnswer?(W(),j("div",{key:0,onClick:h[5]||(h[5]=c=>s("stop-response")),class:"stop-response-btn"},[de(l(Ft),{title:"停止响应",class:"copyBtn"}),h[12]||(h[12]=He(" 停止响应 "))])):O("",!0),M("textarea",{value:g.input,placeholder:"请输入内容",autosize:{minRows:2,maxRows:4},onKeyup:h[6]||(h[6]=kt(c=>s("send"),["enter"])),onInput:_},null,40,Mn),M("div",Un,[g.useAudio?(W(),j("p",Nn,[g.inputRecognitionType=="end"?(W(),j("img",{key:0,src:l(rt),alt:"",class:"open",draggable:"false",title:"启动语音",onClick:h[7]||(h[7]=c=>s("start-recognition"))},null,8,$n)):O("",!0),g.inputRecognitionType==="loading"?(W(),ge(l(ot),{key:1,title:"重新回答"})):O("",!0),g.inputRecognitionType=="start"?(W(),j("img",{key:2,src:l(rt),alt:"",class:"close",draggable:"false",title:"关闭语音",onClick:h[8]||(h[8]=c=>s("stop-recognition"))},null,8,zn)):O("",!0)])):O("",!0),M("p",Hn,[M("img",{src:l(yn),alt:"",draggable:"false",title:"发送",onClick:h[9]||(h[9]=c=>s("send")),class:re({disabled:g.isGettingAnswer||g.inputRecognitionType==="start"})},null,10,Fn)])])])]),_:1},8,["theme"])],4))}}),Gn=ze(On,[["__scopeId","data-v-1b8ced74"]]),qn=""+new URL("assets/dialog.png",import.meta.url).href,Qn=""+new URL("assets/ai-robot.png",import.meta.url).href;function jn(n){const e=d(""),t=Ie(()=>({...n().cozeInfo,conversation_id:e.value}));return{conversation_id:e,cozeInfoParams:t,createConversation:()=>{const s=n();je.post(s.createConversationUrl,{coze_info:s.cozeInfo,model_type:s.modelType}).then(a=>{const u=a.data;u.code===200&&(e.value=u.detail.conversation_id)}).catch(a=>{console.error(a)})}}}function Yn(){let n=null;const e=d(!1),t=d("");let o=null;return{audioSoundState:e,audioSoundType:t,playAudio:(i,v)=>{if(!i)return!1;e.value=!1,t.value="",n?(n.pause(),n.src=i,n.load()):(n=new Audio(i),n.addEventListener("ended",()=>{const S=t.value;e.value=!1,t.value="",o&&o(S)},!1)),setTimeout(()=>{n==null||n.play().then(()=>{v&&(e.value=!0,t.value=v)})},100)},pauseAudio:()=>{n&&n.pause(),e.value=!1,t.value=""},setOnEnded:i=>{o=i}}}let Xn=class{constructor(e){ne(this,"speechSokt");ne(this,"msgHandle");ne(this,"stateHandle");ne(this,"url");ne(this,"mode");this.speechSokt=null,this.msgHandle=e.msgHandle,this.stateHandle=e.stateHandle,this.url=e.url||Ne.fallbackAudio,this.mode="2pass"}wsStart(e="2pass"){if(console.log(e),this.mode=e,this.url.match(/wss:\S*|ws:\S*/))console.log("url:"+this.url);else return alert("请检查wss地址正确性"),0;return"WebSocket"in window?(this.speechSokt=new WebSocket(this.url),this.speechSokt.onopen=()=>this.onOpen(),this.speechSokt.onclose=t=>this.onClose(t),this.speechSokt.onmessage=t=>this.onMessage(t),this.speechSokt.onerror=t=>this.onError(t),1):(alert("当前浏览器不支持 WebSocket"),0)}wsStop(){this.speechSokt&&(console.log("stop ws!"),this.speechSokt.close())}wsSend(e){this.speechSokt!=null&&this.speechSokt.readyState===1&&this.speechSokt.send(e)}onOpen(){var o;var e=[5,10,5],t={chunk_size:e,wav_name:"h5",is_speaking:!0,chunk_interval:10,itn:!1,language:"en",mode:this.mode};console.log(JSON.stringify(t)),(o=this.speechSokt)==null||o.send(JSON.stringify(t)),console.log("连接成功"),this.stateHandle(0)}onClose(e){console.log("连接关闭",e),console.log(`连接关闭: code=${e.code}, reason=${e.reason}, wasClean=${e.wasClean}`)}onMessage(e){this.msgHandle(e)}onError(e){console.log("连接错误"+e),this.stateHandle(2)}};class Vn{constructor(e){ne(this,"speechSokt");ne(this,"url");ne(this,"desti_audio_name");ne(this,"speaker_data");ne(this,"onMessageCallback");this.speechSokt=null,this.url=e||Ne.fallbackVoiceprint,this.desti_audio_name=null,this.speaker_data=null,this.onMessageCallback=null}setOnMessageCallback(e){this.onMessageCallback=e}wsStart(){if(this.url.match(/wss:\S*|ws:\S*/))console.log("url: "+this.url);else return alert("请检查WebSocket地址正确性"),0;return"WebSocket"in window?(this.speechSokt=new WebSocket(this.url),this.speechSokt.onopen=()=>this.onOpen(),this.speechSokt.onclose=e=>this.onClose(e),this.speechSokt.onmessage=e=>this.onMessage(e),this.speechSokt.onerror=e=>this.onError(e),1):(alert("当前浏览器不支持 WebSocket"),0)}setData(e,t){this.desti_audio_name=e,this.speaker_data=t}wsSendData(){if(!this.speechSokt||this.speechSokt.readyState!==WebSocket.OPEN){console.error("WebSocket未连接或未打开");return}if(!this.desti_audio_name||!this.speaker_data){console.error("未设置desti_audio_name或speaker_data");return}const e={desti_audio_name:this.desti_audio_name,speaker_data:this.speaker_data};this.speechSokt.send(JSON.stringify(e))}wsStop(){this.speechSokt&&(console.log("stop ws!"),this.speechSokt.close())}onOpen(){console.log("声纹识别连接成功")}onClose(e){console.log("声纹识别连接关闭: "+e)}onMessage(e){console.log("声纹识别收到消息: ",e.data);try{const t=JSON.parse(e.data);this.onMessageCallback&&this.onMessageCallback(t)}catch(t){console.error("声纹识别消息解析失败: ",t)}}onError(e){console.log("声纹识别连接错误: "+e)}}const Jn={xiaogui:["xiaoguixiaogui","xiaoguaixiaoguai"],xiaohui:["xiaohuixiaohui"],xiaozhi:["xiaozhixiaozhi","xiaozixiaozi","xiaochixiaochi"],xiaoG:["xiaogtongxue","xiaogtongxie","xiaojitongxue","xiaojitongxie","xiaoqitongxue","xiaoqitongxie","xiaoxitongxue","xiaoxitongxie","xiaoditongxue","xiaoditongxie"],xiaoR:["xiaortongxue","xiaoertongxue","xiaortongxie","xiaoertongxie","xiaohaitongxue","xiaohaitongxie","xiaoaitongxue","xiaoaitongxie"]},Kn=["baibai","zaijian","xiaoguibaibai","xiaohuibaibai","xiaoguizaijian","xiaohuizaijian","xiaoguaibaibai","xiaoguaizaijian","xiaobeibaibai","xiaobeizaijian"],Zn=["zanting","tingzhi","xiaoguizanting","xiaohuitingzhi","xiaohuizanting","xiaoguiuitingzhi"];function ea(n){for(const[e,t]of Object.entries(Jn))if(t.some(o=>n.includes(o)))return e;return null}function ta(n){return Kn.some(e=>n.includes(e))}function na(n){return Zn.some(e=>n.includes(e))}function aa(n,e,t,o,s){const a=d(""),u=d(""),i=d(""),v=d("end"),S=d(""),x=d(null),y=d(null),L=d(null);let D=new Int16Array,P=null,_=null;const g=()=>{a.value=i.value},h=b=>Gt(b,{toneType:"none",type:"array"}).filter(I=>I!==","&&I!=="。"&&I!=="、").join("");function c(b){const I=JSON.parse(b.data),C=I.text,z=I.mode,A=n();if(A.isDebug&&console.log("isDebug",I),v.value==="start")z==="2pass-offline"||z==="offline"?(a.value=a.value+C.replace(/ +/g,""),i.value=a.value):i.value=i.value+C;else if(z==="2pass-offline"||z==="offline"){u.value=I.audio_data_bytes;const Y=h(I.text);if(ta(Y)&&!s.value&&o.value){R(I.text,()=>{e.onEndWord(I.text)});return}if(na(Y)&&!s.value&&o.value){R(I.text,()=>{e.onPauseWord(I.text)});return}const oe=ea(Y);if(oe){if(!s.value){const fe=(A.isExhibitionPro?Kt:Jt)[oe];fe&&(e.onAudioDataReady(u.value),e.onWakeWord(oe,fe,I.text))}return}o.value&&S.value&&R(I.text,()=>{e.onVerifiedSpeech(I.text,s.value)})}}function R(b,I){_==null||_.setData(S.value,u.value),_==null||_.wsSendData(),_==null||_.setOnMessageCallback(async C=>{C.text==="yes"&&I()})}let U=!1,B=null;const Z=5,H=3e3;function ee(b){U||b===0||(b===1?ae():b===2&&(console.log("connection error, will retry..."),te()))}let Q=0;const te=()=>{if(!U){if(Q>=Z){console.warn(`WebSocket reconnect failed after ${Z} retries`);return}Q++,B&&clearTimeout(B),B=setTimeout(()=>{U||ae()},H)}},ae=()=>{if(U)return;const b=P==null?void 0:P.wsStart();_==null||_.wsStart(),b===1?(console.log("connect start"),Q=0,L.value.open(()=>{console.log("recorder open"),L.value.start()})):(console.log("connect error, will retry..."),te())},ce=()=>{var b;U=!0,B&&(clearTimeout(B),B=null),P==null||P.wsStop(),_==null||_.wsStop(),(b=L.value)==null||b.close()},$=(b,I,C,z)=>{y.value&&y.value.input(b[b.length-1],I,z);const A=b[b.length-1],Y=new Array(A),oe=Fe.SampleData(Y,z,16e3).data;D=Int16Array.from([...D,...oe]);const he=960;for(;D.length>=he;){const fe=D.slice(0,he);D=D.slice(he),P==null||P.wsSend(fe)}};return{input:i,inputRecognitionType:v,offline_text:a,audioDataBase64:u,wakeUpName:S,wakeStatus:o,waveRef:x,wave:y,recorder:L,inputChange:g,toPinyinStr:h,startRecognition:()=>{v.value="start",o.value=!1,i.value="",a.value="",x.value&&(y.value=Fe.WaveView({elem:x.value}))},stopRecognition:()=>{v.value="end",y.value=null},startListen:ae,closeListen:ce,init:()=>{const b=n();P=new Xn({url:b.audioWs,msgHandle:c,stateHandle:ee}),_=new Vn(b.voiceprintWs),L.value=new Fe({sampleBits:16,sampleRate:48e3,numChannels:1,onProcess:$})},startWsConnect:()=>{const b=n();(b.mode==="audio"||b.mode==="video")&&ae()}}}const Ye=40,Xe=4;function yt(n){const{drainInterval:e=Ye,charsPerDrain:t=Xe,onDrain:o}=n,s=d(""),a=d("");let u=null,i=!1,v="",S="";const x=()=>{u=null;let P=!1;if(s.value){const _=s.value.slice(0,t);s.value=s.value.slice(t),v+=_,P=!0}else if(a.value){const _=a.value.slice(0,t);a.value=a.value.slice(t),S+=_,P=!0}P&&o(v,S),s.value||a.value?u=window.setTimeout(x,e):i=!1};return{thinkingBuffer:s,answerBuffer:a,scheduleDrain:()=>{i||(i=!0,u=window.setTimeout(x,e))},clear:()=>{s.value="",a.value="",v="",S="",u!=null&&(window.clearTimeout(u),u=null),i=!1},flush:()=>{for(;s.value||a.value;)x();u!=null&&(window.clearTimeout(u),u=null),i=!1}}}function oa(n,e){const t=d(!1),o=d(!1),s=d(),a=d({}),u=d(""),i=d(""),v=d(null),S=d(-1);let x=null;const y=yt({drainInterval:Ye,charsPerDrain:Xe,onDrain(g,h){const c=S.value;if(c<0||c>=e.msgList.value.length)return;const R=e.msgList.value[c];R.thinkingText=g,R.answerText=h,R.content=De(R),R.type==="aiLocal"&&(R.type="aiAnswer")}}),L=g=>e.eventFun.find(h=>h.keywords.some(c=>g.includes(c)));return{isGettingAnswer:t,isWaitingForResponse:o,currentAnswerData:s,matchEvent:a,currentChatId:u,currentConversationId:i,currentAnswerStreamId:v,cancelChat:async(g,h)=>{try{const c=n();return await je.post(c.qaServer.replace(/searchTextNew$/,"cancelChat"),{conversation_id:g,chat_id:h,model_type:e.currentModelType.value},{headers:{"Content-Type":"application/json"}}),!0}catch(c){return console.error("取消请求失败",c),!0}},getAnswer:async g=>{const h=n();o.value=!0,s.value=null,u.value="",i.value="";const c=Date.now();v.value=c;let R=null;const U=()=>{R&&window.clearTimeout(R),R=window.setTimeout(()=>{var H;v.value===c&&(o.value=!1,t.value=!1,((H=a.value)==null?void 0:H.trigger)==="after"&&a.value.fun(s.value))},1200)},B={searchText:g,stream:h.stream,use_tts:"True",coze_info:e.cozeInfoParams.value||{},model_type:e.currentModelType.value};e.msgList.value.push({id:Date.now()+1,type:"aiLocal",content:""});const Z=e.msgList.value.length-1;h.stream==="True"&&(x&&x(),y.clear(),S.value=Z,x=mt(h.qaServer,B,{onopen:()=>{var H,ee,Q,te;v.value===c&&(e.stopOrderPlayAudio(),(H=e.digitalHumanRef.value)!=null&&H.isAudioActive&&((ee=e.digitalHumanRef.value)==null||ee.digitalHumanStop()),(Q=e.digitalHumanRef.value)!=null&&Q.isPlaying&&((te=e.digitalHumanRef.value)==null||te.interruptSpeech()))},onmessage:async H=>{var f,T;if(v.value!==c)return;const{audioUrl:ee,data:Q,text:te,chat_id:ae,conversation_id:ce,message_type:$}=H;if($==="answer"&&U(),$==="thinking"){ce&&ae&&(u.value=ae,i.value=ce),y.thinkingBuffer.value+=String(te??""),y.scheduleDrain();return}if(Q&&$==="answer"&&(a.value={},s.value=Q,ae&&ce&&(u.value=ae,i.value=ce),Q.action&&(h.isDebug&&console.log("action",Q.action),a.value=L(Q.action),a.value&&(a.value.trigger==="before"||a.value.trigger==="together")&&a.value.fun(Q)),y.answerBuffer.value+=String(te??""),y.scheduleDrain()),e.stopOrderPlayAudio(),Pe(e.avatarId.value))if(h.mode==="video"&&$==="answer"){const E={metahuman_type:Ee(e.avatarId.value,h.isFuYangPro),audiourl:ee,interrupt:!1,text:te};await((f=e.digitalHumanRef.value)==null?void 0:f.humanaudio(E)),setTimeout(()=>{v.value===c&&(e.msgList.value[Z].type="aiAnswer")},1e3)}else e.addAudioToQueue(ee,!0);else Me(e.avatarId.value)&&(h.mode==="video"&&$==="answer"?(setTimeout(()=>{v.value===c&&(e.msgList.value[Z].type="aiAnswer")},1e3),await((T=e.digitalHumanRef.value)==null?void 0:T.textToSpeech(te))):e.addAudioToQueue(ee,!0))},onclose:()=>{var H;v.value===c&&(R&&window.clearTimeout(R),o.value=!1,((H=a.value)==null?void 0:H.trigger)==="after"&&a.value.fun(s.value),t.value=!1)},onerror:()=>{v.value===c&&(R&&window.clearTimeout(R),o.value=!1)}}))},cancelCurrentStream:()=>{x&&(x(),x=null)},matchEventFun:L}}const Le=n=>String(n).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'");function ia(n,e){const t=d(!1),o=d([]),s=d([]),a=d(0),u=d({});let i=null,v=null;const S=d(null),x=async()=>{await At(),e.scrollContainer.value&&(e.scrollContainer.value.scrollTop=e.scrollContainer.value.scrollHeight)},y=yt({drainInterval:Ye,charsPerDrain:Xe,onDrain(f,T){const m=o.value.length-1;if(m<0)return;const E=o.value[m];E.thinkingText=f,E.answerText=T,E.wholeText=T,E.singleText=De(E),x()}}),L=f=>{const T=f.wholeText.split("");let m=0;o.value.push({singleText:T[m],...f}),i=window.setInterval(()=>{var E;m++,o.value[o.value.length-1].singleText+=T[m],x(),m>=T.length-1&&(e.isGettingAnswer.value=!1,window.clearInterval(i),i=null,f.type==="aiAnswer"&&(E=e.matchEvent.value)!=null&&E.fun&&e.matchEvent.value.fun({...f}))},50)},D=f=>{const m=n().conversations||[];if(!(f>=m.length||!t.value)){for(let E=f;E<m.length;E++){const{question:b,chunks:I}=m[E];o.value.push({type:"user",wholeText:b,singleText:b}),o.value.push({type:"aiAnswer",wholeText:"",singleText:"",extraRunning:!1});const C=o.value.length-1,z=o.value[C];for(const{text:A,message_type:Y}of I||[])Y==="thinking"?(z.thinkingText||(z.thinkingText=""),z.thinkingText+=String(A??"")):Y==="answer"&&(z.answerText||(z.answerText=""),z.answerText+=String(A??"")),z.singleText=De(z)}x()}},P=()=>{const T=n().streamChunks||[];if(!T.length||!t.value)return;const m=o.value[o.value.length-1];(!m||m.type!=="aiAnswer")&&o.value.push({type:"aiAnswer",wholeText:"",singleText:"",extraRunning:!1});const E=a.value;for(let b=E;b<T.length;b++){const{text:I,message_type:C}=T[b],z=o.value.length-1,A=o.value[z];C==="thinking"?(A.thinkingText||(A.thinkingText=""),A.thinkingText+=String(I??"")):C==="answer"&&(A.answerText||(A.answerText=""),A.answerText+=String(I??"")),A.singleText=De(A),a.value=b+1}x()},_=()=>{var f;if(t.value)g();else{t.value=!0;const T=n();(T.conversations||[]).length>0?D(0):T.initialQuestion?(o.value.push({type:"user",wholeText:T.initialQuestion,singleText:T.initialQuestion}),a.value=0,(f=T.streamChunks)!=null&&f.length&&(o.value.push({type:"aiAnswer",wholeText:"",singleText:"",extraRunning:!1}),P()),x()):L({wholeText:T.greet,type:"aiLocal"})}},g=()=>{e.stopRecognition(),!e.isGettingAnswer.value&&(t.value=!1)},h=()=>{o.value=[],e.matchEvent.value={},a.value=0,i&&(window.clearInterval(i),i=null)},c=()=>{if(e.isGettingAnswer.value)return;o.value=[],e.matchEvent.value={},a.value=0,i&&(window.clearInterval(i),i=null);const f=n();e.isGettingAnswer.value=!0,L({wholeText:f.greet,type:"aiLocal"})},R=()=>{const f=o.value[o.value.length-2];Z(f.wholeText)},U=async()=>{if(e.isGettingAnswer.value&&(e.currentConversationId.value&&e.currentChatId.value&&await e.cancelChat(e.currentConversationId.value,e.currentChatId.value),e.isGettingAnswer.value=!1,S.value=null,v&&(v(),v=null),e.currentModelType.value==="local")){for(let f=o.value.length-1;f>=0;f--)if(o.value[f].type==="aiAnswer"){o.value[f].extraRunning=!1;break}}},B=()=>{e.isGettingAnswer.value||e.inputRecognitionType.value==="start"||(e.stopOrderPlayAudio(),e.input.value&&(o.value.push({type:"user",wholeText:e.input.value,singleText:e.input.value}),Z(e.input.value),e.input.value=""))},Z=f=>{const T=n(),m={searchText:f,use_tts:"False",stream:T.stream,coze_info:e.cozeInfoParams.value||{},model_type:e.currentModelType.value},E=Date.now();S.value=E;let b=null;const I=()=>{b&&window.clearTimeout(b),b=window.setTimeout(()=>{var C;S.value===E&&(e.isGettingAnswer.value=!1,((C=e.matchEvent.value)==null?void 0:C.trigger)==="after"&&e.matchEvent.value.fun(e.currentAnswerData.value))},1200)};o.value.push({type:"aiLocal",wholeText:"",singleText:`${T.waitTxt} <span class="ellipsisText"></span>`,knowledgeList:[],toolList:[]}),s.value=[],x(),e.isGettingAnswer.value=!0,T.stream==="True"&&(v&&v(),y.clear(),v=mt(T.qaServer,m,{onopen:()=>{S.value===E&&(o.value.splice(o.value.length-1,1),o.value.push({type:"aiAnswer",wholeText:"",singleText:"",extraRunning:e.currentModelType.value==="local"}))},onmessage:C=>{var fe;if(S.value!==E)return;T.isDebug&&console.log(C);const{text:z,data:A,message_type:Y,chat_id:oe,conversation_id:he}=C;if(oe&&he&&(e.currentChatId.value=oe,e.currentConversationId.value=he),Y==="thinking"){y.thinkingBuffer.value+=String(z??""),y.scheduleDrain();return}if(A&&Y==="answer"&&(I(),e.currentAnswerData.value=A,A.action&&(e.matchEvent.value=e.matchEventFun(A.action),e.matchEvent.value&&(e.matchEvent.value.trigger==="before"||e.matchEvent.value.trigger==="together")&&e.matchEvent.value.fun(A)),y.answerBuffer.value+=String(z??""),y.scheduleDrain(),A.action==="stop"&&(e.isGettingAnswer.value=!1,((fe=e.matchEvent.value)==null?void 0:fe.trigger)==="after"&&e.matchEvent.value.fun(e.currentAnswerData.value))),(C==null?void 0:C.type)==="end"&&e.currentModelType.value==="local"){for(let ie=o.value.length-1;ie>=0;ie--)if(o.value[ie].type==="aiAnswer"){o.value[ie].extraRunning=!1;break}}if(e.currentModelType.value==="local"&&((A==null?void 0:A.type)==="knowledge"||(C==null?void 0:C.type)==="knowledge")){const ie=H(),q=o.value[ie],J=(A==null?void 0:A.type)==="knowledge"?A:C,be=Array.isArray(J.content)?J.content:[];q.knowledgeList=[...q.knowledgeList||[],...be],q.knowledgeHtml=ee(q.knowledgeList||[]),q.singleText=De(q),x()}if(e.currentModelType.value==="local"&&((A==null?void 0:A.type)==="tool"||(C==null?void 0:C.type)==="tool")){const ie=H(),q=o.value[ie],J=(A==null?void 0:A.type)==="tool"?A:C;Array.isArray(J.content)?q.toolList=[...q.toolList||[],...J.content]:J.tool_name||J.input||J.output?q.toolList=[...q.toolList||[],J]:q.toolList=[...q.toolList||[],J.content],q.toolHtml=Q(q.toolList||[]),q.singleText=De(q),x()}if(A&&Y==="follow_up"){const ie=z.split(`
|
|
68
68
|
`).map(q=>q.trim()).filter(q=>q.length>0);s.value=[...new Set([...s.value,...ie])]}x()},onclose:()=>{var C;S.value===E&&(b&&window.clearTimeout(b),e.isGettingAnswer.value=!1,((C=e.matchEvent.value)==null?void 0:C.trigger)==="after"&&e.matchEvent.value.fun(e.currentAnswerData.value))}}))},H=()=>{for(let f=o.value.length-1;f>=0;f--)if(o.value[f].type==="aiAnswer")return f;return o.value.length-1},ee=f=>`<div>${f.map((m,E)=>{const b=m.doc_name||"未知文档",I=typeof m.score=="number"?`(相似度:${m.score})`:"",C=typeof m.content=="string"?m.content:JSON.stringify(m.content,null,2);return`<details class="qa-knowledge-item" style="margin-bottom:6px; line-height:1.5;"><summary><span class="qa-arrow">▾</span><span class="qa-knowledge-number">${E+1}.</span>${Le(b)}${I}</summary><div style="margin-top:4px;"><pre class="qa-extra-pre">${Le(C||"")}</pre></div></details>`}).join("")}</div>`,Q=f=>`<div>${f.map((m,E)=>{const b=(m==null?void 0:m.tool_name)||(m==null?void 0:m.name)||(m==null?void 0:m.tool)||"工具调用",I=m!=null&&m.input?Le(JSON.stringify(m.input,null,2)):"",C=Array.isArray(m==null?void 0:m.output)?m.output.map(Y=>(Y==null?void 0:Y.type)==="text"?Le(Y.text||""):Le(JSON.stringify(Y,null,2))).join(`
|
|
69
69
|
`):"",z=I?`<div>输入<pre class="qa-extra-pre">${I}</pre></div>`:"",A=C?`<div style="margin-top:4px;">输出<pre class="qa-extra-pre">${C}</pre></div>`:"";return`<div style="margin-bottom:8px;">${E+1}. ${Le(b)}${z}${A}</div>`}).join("")}</div>`,te=Ie(()=>s.value.map((f,T)=>({label:f,key:`q-${T}`})));return{showDialog:t,conversationList:o,followUpQuestions:s,showExtraMap:u,promptItems:te,scrollToBottom:x,getItemCopyText:pt,openQaDrawer:_,closeQaDrawer:g,clearDialog:c,resetQa:R,stopResponse:U,sendAi:B,getSearchText:Z,pushAi:L,handlePromptClick:async f=>{e.input.value=f.data.label,await B()},watchStreamChunks:f=>{_e(f,T=>{T!=null&&T.length&&t.value&&P()},{deep:!0})},watchConversations:f=>{let T=0;_e(f,m=>{if(!t.value||m<=T){T=m;return}D(T),T=m},{immediate:!0})},cleanupDialogData:h,cancelQaStream:()=>{v&&(v(),v=null)}}}const sa={class:"robot"},la={key:0,class:"digital-human-wrap"},ra=["src"],ua=["src"],ca=$e({name:"GAiRobot3",__name:"index",props:{apiPrefix:{default:ve},isDebug:{type:Boolean,default:!1},dialogBoxTheme:{default:"light"},showMsgBubble:{type:Boolean,default:!0},isExhibitionPro:{type:Boolean,default:!1},isFuYangPro:{type:Boolean,default:!1},isExhibitionPlay:{type:Boolean},isShowDialogIcon:{type:Boolean,default:!1},stream:{default:"True"},title:{default:"GR水利大模型"},greet:{default:"您好,我是GR水利大模型智能小助手,您可以向我提出贵仁科技水利大模型使用问题。"},welcomeMessage:{default:"您好,我是GR水利大模型智能小助手,您可以向我提出贵仁科技水利大模型使用问题。"},waitTxt:{default:"贵仁科技AI正在生成回答"},systemName:{default:"g-ai-robot3"},robotCss:{default:()=>({left:"10px",bottom:"10px"})},placementBottom:{default:100},placementLeft:{default:450},useAudio:{type:Boolean,default:!0},mode:{default:"video"},qaServer:{default:n=>Te(n.apiPrefix||ve,xe.chat.searchTextNew)},cozeInfo:{default:()=>({...Yt})},createConversationUrl:{default:n=>Te(n.apiPrefix||ve,xe.chat.createConversation)},audioWs:{default:Ne.audio},voiceprintWs:{default:Ne.voiceprint},wakeupAudio:{default:n=>Te(n.apiPrefix||ve,xe.asr.saveWakeUpAudio)},interrupt:{default:n=>Te(n.apiPrefix||ve,xe.chat.cancelChat)},eventFun:{default:()=>[]},modelType:{default:"online"},showModelTypeToggle:{type:Boolean,default:!1},videoStyle:{},digitalStyle:{},canvasStyle:{},bubbleStyle:{},offer:{},humanaudio:{},stop_audio:{},textDriven:{},canvasWidth:{},canvasHeight:{},canvasCartoonWidth:{},canvasCartoonHeight:{},showMsgNumber:{},bubbleTheme:{},useCustomDialog:{type:Boolean},BubbleWidth:{},BubbleBottom:{},suspensionStyle:{},initialQuestion:{default:void 0},streamChunks:{default:()=>[]},conversations:{default:()=>[]}},setup(n){const e=d("xiao-gui");nt("globalAvatarId",e);const{addAudioToQueue:t,stopOrderPlayAudio:o}=Qt(),s=d(),a=n,u=d(),i=d([{id:0,type:"aiAnswer",content:a.welcomeMessage}]),v=d(null),S=d(!1),x=d(a.modelType);Oe(()=>{x.value=a.modelType});const y=Ie({get:()=>x.value==="local",set:w=>{x.value=w?"local":"online",L.createConversation()}}),L=jn(()=>({createConversationUrl:a.createConversationUrl,cozeInfo:a.cozeInfo,modelType:x.value})),D=Yn(),{audioSoundState:P,audioSoundType:_,playAudio:g}=D,h=D.pauseAudio,c=oa(()=>({qaServer:a.qaServer,stream:a.stream,isFuYangPro:a.isFuYangPro,mode:a.mode,isDebug:a.isDebug}),{avatarId:e,cozeInfoParams:L.cozeInfoParams,currentModelType:x,msgList:i,digitalHumanRef:u,eventFun:a.eventFun,stopOrderPlayAudio:o,addAudioToQueue:t}),{isGettingAnswer:R,isWaitingForResponse:U,matchEvent:B,currentAnswerData:Z,currentChatId:H,currentConversationId:ee,getAnswer:Q,cancelChat:te,cancelCurrentStream:ae,matchEventFun:ce}=c;nt("isWaitingForResponse",U);const $=async(w,k)=>{try{const G=await je.post(a.wakeupAudio,{conversation_id:k,audio_data_base64:w},{headers:{"Content-Type":"application/json"}});a.isDebug&&console.log("音频数据发送成功:",G.data),G.data.code===0&&(E.wakeUpName.value=G.data.detail.audio_name)}catch(G){console.error("音频数据发送失败:",G)}},f=async(w,k,G)=>{var me,we,We,Ve;const Se={"xiao-gui":"小贵小贵","xiao-hui":"小慧小慧","xiao-zhi":"小智小智","xiao-g":"小G同学","xiao-r":"小R同学"};e.value=k,a.isExhibitionPro&&localStorage.setItem("avatarId_data",e.value),(me=u.value)!=null&&me.isAudioActive&&((we=u.value)==null||we.digitalHumanStop()),(We=u.value)!=null&&We.isPlaying&&((Ve=u.value)==null||Ve.interruptSpeech()),i.value.push({id:Date.now(),type:"user",content:Se[k]||G}),S.value=!0,o(),h(),window.setTimeout(async()=>{var Je,Ke,Ze;if(i.value.push({id:Date.now(),type:"aiAnswer",content:"我在,请问有什么可以帮您。"}),a.mode==="video")if(Pe(e.value)){if(((Je=u.value)==null?void 0:Je.isOfferPengding)===!1)return;const wt=Ee(e.value,a.isFuYangPro);await((Ke=u.value)==null?void 0:Ke.humanaudio({metahuman_type:wt,audiourl:"",interrupt:!0,text:"我在,请问有什么可以帮您。"}))}else Me(e.value)&&((Ze=u.value)==null||Ze.textToSpeech("我在,请问有什么可以帮您。"));else g(qt.here)},200)},T=w=>{const{toPinyinStr:k}=E,Se=k(w).includes("zanting")?"暂停":"停止";i.value.push({id:Date.now(),type:"user",content:Se}),window.setTimeout(()=>{var me,we;a.mode==="video"?(Pe(e.value)?(me=u.value)==null||me.digitalHumanStop():Me(e.value)&&((we=u.value)==null||we.interruptSpeech()),i.value.push({id:Date.now(),type:"aiAnswer",content:"好的"})):g(st.here)},200)},m=w=>{const{toPinyinStr:k}=E,Se=k(w).includes("zaijian")?"再见":"拜拜";i.value.push({id:Date.now(),type:"user",content:Se}),S.value=!1,o(),h(),U.value=!1,window.setTimeout(async()=>{var me,we;if(i.value.push({id:Date.now(),type:"aiAnswer",content:"很高兴为您服务,再见!"}),a.mode==="video")if(Pe(e.value)){const We=Ee(e.value,a.isFuYangPro);await((me=u.value)==null?void 0:me.humanaudio({metahuman_type:We,audiourl:"",interrupt:!0,text:"很高兴为您服务,再见!"}))}else Me(e.value)&&((we=u.value)==null||we.textToSpeech("很高兴为您服务,再见!"));else g(st.here)},200)},E=aa(()=>({audioWs:a.audioWs,voiceprintWs:a.voiceprintWs,isDebug:a.isDebug,isExhibitionPro:a.isExhibitionPro,mode:a.mode}),{onWakeWord:(w,k,G)=>{f(w,k,G)},onPauseWord:w=>{T(w)},onEndWord:w=>{m(w)},onAudioDataReady:w=>{$(w,1)},onVerifiedSpeech:async(w,k)=>{k?H.value&&ee.value&&(await te(ee.value,H.value),i.value.push({id:Date.now(),type:"user",content:w}),S.value=!0,Q(w)):(i.value.push({id:Date.now(),type:"user",content:w}),S.value=!0,Q(w))}},e,S,U),{input:b,inputRecognitionType:I,waveRef:C,inputChange:z,startRecognition:A,stopRecognition:Y}=E,oe=ia(()=>({qaServer:a.qaServer,stream:a.stream,isDebug:a.isDebug,greet:a.greet,waitTxt:a.waitTxt,initialQuestion:a.initialQuestion,streamChunks:a.streamChunks,conversations:a.conversations}),{cozeInfoParams:L.cozeInfoParams,currentModelType:x,isGettingAnswer:R,currentAnswerData:Z,matchEvent:B,currentChatId:H,currentConversationId:ee,matchEventFun:ce,cancelChat:te,input:b,inputRecognitionType:I,stopOrderPlayAudio:o,stopRecognition:Y,scrollContainer:v}),{showDialog:he,conversationList:fe,followUpQuestions:ie,promptItems:q,openQaDrawer:J,closeQaDrawer:be,clearDialog:Be,resetQa:Re,stopResponse:r,sendAi:p,handlePromptClick:N,cleanupDialogData:F}=oe;oe.watchStreamChunks(()=>a.streamChunks),oe.watchConversations(()=>{var w;return((w=a.conversations)==null?void 0:w.length)??0}),D.setOnEnded(w=>{var k;w==="sys"&&(k=B.value)!=null&&k.fun&&B.value.trigger==="after"&&B.value.fun({...B.value.params}),B.value={}}),_t(()=>{var w;a.isExhibitionPro&&(e.value="xiao-zhi"),L.createConversation(),E.init(),E.startWsConnect(),a.mode==="video"&&((w=u.value)==null||w.main())}),Ct(()=>{E.closeListen(),ae(),oe.cancelQaStream()}),d(null);const V=d(null),X=d({...a.robotCss||{}}),K=d({position:"absolute",left:a.placementLeft+"px",bottom:a.placementBottom+"px",cursor:"grab",zIndex:1e4}),pe=w=>{K.value=w};Oe(()=>{var w,k;v.value=((w=s.value)==null?void 0:w.scrollContainerRef)??null,C.value=((k=s.value)==null?void 0:k.waveElRef)??null});const{startDrag:se,endDrag:le}=vt(V,{dragHandleClass:"robot",onStart:({left:w,top:k})=>{X.value.position="fixed",X.value.bottom="auto",X.value.left=`${w}px`,X.value.top=`${k}px`},onPositionChange:({left:w,top:k})=>{X.value.left=`${w}px`,X.value.top=`${k}px`},onEnd:({left:w,top:k})=>{X.value.left=`${w}px`,X.value.top=`${k}px`}});return(w,k)=>(W(),j("div",{id:"g-ai-robot",style:ue([X.value,{"pointer-events":"auto"}]),ref_key:"robotElement",ref:V,onMousedown:k[3]||(k[3]=(...G)=>l(se)&&l(se)(...G)),onTouchstart:k[4]||(k[4]=(...G)=>l(se)&&l(se)(...G)),onMouseup:k[5]||(k[5]=(...G)=>l(le)&&l(le)(...G))},[M("div",sa,[a.mode=="video"||a.mode=="audio"?(W(),j("div",la,[a.isShowDialogIcon?O("",!0):(W(),j("img",{key:0,src:l(qn),class:re(["dialogImg",{disabled:l(R)}]),onClick:k[0]||(k[0]=(...G)=>l(J)&&l(J)(...G)),style:{"user-select":"auto","pointer-events":"auto"}},null,10,ra)),!w.$slots.reference&&a.mode=="audio"?(W(),j("img",{key:1,src:l(Qn),alt:"",draggable:"false"},null,8,ua)):O("",!0),Et(w.$slots,"reference",{},void 0,!0),a.mode=="video"?(W(),ge(dn,at({key:2},w.$props,{ref_key:"digitalHumanRef",ref:u}),null,16)):O("",!0),w.showModelTypeToggle?(W(),ge(l(Bt),{key:3,class:"model-type-toggle",checked:y.value,"onUpdate:checked":k[1]||(k[1]=G=>y.value=G),size:"small","checked-children":"本地","un-checked-children":"联网",style:{width:"50px"}},null,8,["checked"])):O("",!0),w.showMsgBubble?(W(),ge(hn,at({key:4},w.$props,{"msg-list":i.value}),null,16,["msg-list"])):O("",!0)])):O("",!0)]),de(dt,{name:"dialog-dock",onAfterLeave:l(F)},{default:Ce(()=>[l(he)?(W(),ge(Gn,{key:0,ref_key:"qaDialogCompRef",ref:s,title:w.title,"use-audio":w.useAudio,"dialog-box-theme":w.dialogBoxTheme,"placement-left":w.placementLeft,"placement-bottom":w.placementBottom,"dialog-css":K.value,"is-getting-answer":l(R),"is-local":y.value,"conversation-list":l(fe),"follow-up-questions":l(ie),"prompt-items":l(q),input:l(b),"onUpdate:input":k[2]||(k[2]=G=>Rt(b)?b.value=G:null),"input-recognition-type":l(I),"audio-sound-state":l(P),"audio-sound-type":l(_),onClose:l(be),onSend:l(p),onClear:l(Be),onStopResponse:l(r),onResetQa:l(Re),onPlayAudio:l(g),onStartRecognition:l(A),onStopRecognition:l(Y),onInputChange:l(z),onPromptClick:l(N),onDragPosition:pe},null,8,["title","use-audio","dialog-box-theme","placement-left","placement-bottom","dialog-css","is-getting-answer","is-local","conversation-list","follow-up-questions","prompt-items","input","input-recognition-type","audio-sound-state","audio-sound-type","onClose","onSend","onClear","onStopResponse","onResetQa","onPlayAudio","onStartRecognition","onStopRecognition","onInputChange","onPromptClick"])):O("",!0)]),_:1},8,["onAfterLeave"])],36))}}),da=ze(ca,[["__scopeId","data-v-a0f306e7"]]),ut=da;ut.install=n=>{n.component("GAiRobot3",ut)};export{ut as GAiRobot3,ut as default};
|
package/dist/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.digital-human[data-v-b9ab6c75]{z-index:0;position:relative;display:flex;align-items:center;justify-content:center}.digital-human #video[data-v-b9ab6c75]{position:absolute;left:0;top:0}.digital-human #output-canvas[data-v-b9ab6c75]{opacity:1;transition:opacity 6s ease;width:300px;height:150px}.digital-human #output-canvas.fade-out[data-v-b9ab6c75]{opacity:0;pointer-events:none}.digital-human .xiaogVideo[data-v-b9ab6c75],.digital-human img[data-v-b9ab6c75]{position:absolute;left:0;top:0}.digital-human .statusImg[data-v-b9ab6c75]{z-index:9998;position:absolute;width:30%;height:30%;top:0%;left:0%;-webkit-user-select:auto!important;user-select:auto!important;pointer-events:auto!important}.digital-human .QstatusImg[data-v-b9ab6c75]{width:29%!important;height:20%!important}[data-v-95864a5c] .ant-bubble-content{pointer-events:auto}[data-v-95864a5c] .table-container{width:100%;max-width:100%;overflow-x:auto;touch-action:pan-x;-webkit-overflow-scrolling:touch;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:linear-gradient(92.03deg,#77f1ff8c -2.18%,#edfaffd9 48.06%,#5ba8ff73 107.05%)}[data-v-95864a5c] .table-container .markdown-table table{min-width:max-content}[data-v-95864a5c] .markdown-table .ant-table-tbody>tr>td{padding:8px 16px;height:40px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background-color:#fff!important}[data-v-95864a5c] .markdown-table .ant-table-thead>tr>th{background-color:#f5f5f5!important;font-weight:700;padding:8px 16px;height:40px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.suspension-content[data-v-95864a5c]{overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none;position:absolute;left:72%;bottom:85%;width:220px;display:flex;flex-direction:column-reverse}.useCustom-dialog[data-v-95864a5c]{pointer-events:none;z-index:1}.useCustom-dialog .bubble-item[data-v-95864a5c]{margin-bottom:6px}.useCustom-dialog p[data-v-95864a5c]{margin:0!important;padding:0}.useCustom-dialog[data-v-95864a5c] .ant-bubble .ant-bubble-content-filled,.useCustom-dialog[data-v-95864a5c] .ant-bubble .ant-bubble-content-outlined{background:#062e404d;border:1px solid rgba(220,237,255,.3);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:12px;color:#fff}.useCustom-dialog[data-v-95864a5c] .ant-bubble-content.ant-bubble-content-outlined p,.useCustom-dialog[data-v-95864a5c] .ant-bubble-content.ant-bubble-content-filled p{margin:0!important;padding:0}.suspension-msg-bubble[data-v-95864a5c]{pointer-events:none;z-index:1}.suspension-msg-bubble .bubble-item[data-v-95864a5c]{margin-bottom:5px}.suspension-msg-bubble p[data-v-95864a5c]{margin:0!important;padding:0}.suspension-msg-bubble[data-v-95864a5c] .ant-bubble .ant-bubble-content-filled{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);background:linear-gradient(92.03deg,#77f1ff40 -2.18%,#edfaff40 48.06%,#5ba8ff40 107.05%);border:1px solid rgba(255,255,255,.6);border-radius:12px}.suspension-msg-bubble[data-v-95864a5c] .ant-bubble .ant-bubble-content-outlined{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#ffffff4d;border:1px solid rgba(255,255,255,.6);border-radius:12px}.suspension-msg-bubble[data-v-95864a5c] .ant-bubble-content.ant-bubble-content-filled p,.suspension-msg-bubble[data-v-95864a5c] .ant-bubble-content.ant-bubble-content-outlined p{margin:0!important;padding:0}.bubble-move[data-v-95864a5c],.bubble-enter-active[data-v-95864a5c],.bubble-leave-active[data-v-95864a5c]{transition:all .5s ease}.bubble-enter-from[data-v-95864a5c],.bubble-leave-to[data-v-95864a5c]{opacity:0;transform:translate(30px)}.bubble-leave-active[data-v-95864a5c]{position:absolute}.ellipsisText{display:inline;letter-spacing:2px}.ellipsisText:after{content:"···";animation:loading-animation 1s infinite linear}@keyframes loading-animation{0%{content:"·"}50%{content:"··"}to{content:"···"}}.qa-extra-pre{background:#f4f4f5;padding:6px;border-radius:6px;overflow:auto;white-space:pre-wrap;margin-top:4px}.qa-knowledge-item summary{display:flex;align-items:center;color:#666;cursor:pointer}.qa-knowledge-item summary::-webkit-details-marker{display:none}.qa-knowledge-item summary::marker{content:""}.qa-knowledge-item .qa-arrow{color:#999;font-size:16px;margin-right:6px;transition:transform .2s ease;display:inline-block}.qa-knowledge-item:not([open]) .qa-arrow{transform:rotate(-90deg)}.qa-knowledge-number{color:#666;margin-right:6px}.talk_main[data-v-1b8ced74]{position:absolute;width:400px;z-index:10000;height:600px;resize:both;overflow:auto;min-width:360px;min-height:320px;max-width:80vw;max-height:90vh;background:#f5f6f766;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.55);box-shadow:0 8px 32px #0476ed1f;border-radius:8px}.talk_main header[data-v-1b8ced74]{height:44px;background:linear-gradient(to right,#ebf1ff66,#e5faf866,#f2ebfe66);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.5);display:flex;padding:0 16px;align-items:center;justify-content:space-between;cursor:move;color:#333}.talk_main header span[data-v-1b8ced74]{font-size:16px;font-weight:700;color:#333}.talk_main header span.close[data-v-1b8ced74]{color:#666;font-size:18px;line-height:1;display:flex;align-items:center;cursor:pointer}.talk_main header span.close[data-v-1b8ced74]:hover{color:#333}.talk_main header span.close .anticon.disabled[data-v-1b8ced74]{cursor:not-allowed;opacity:.4;pointer-events:none}.talk_main .clickable-image[data-v-1b8ced74]{cursor:pointer;width:80px;height:auto;border-radius:5px;transition:transform .2s}.talk_main .clickable-image[data-v-1b8ced74]:hover{transform:scale(1.1)}.talk_main .image-viewer-overlay[data-v-1b8ced74]{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:9999}.talk_main .image-viewer[data-v-1b8ced74]{position:relative}.talk_main .large-image[data-v-1b8ced74]{max-width:90%;max-height:90%;border-radius:8px}.talk_main .qa_body[data-v-1b8ced74]{list-style:none;padding:16px;box-sizing:border-box;margin:0;width:100%;height:calc(100% - 116px);overflow-y:auto;overflow-x:hidden}.talk_main .qa_body[data-v-1b8ced74]::-webkit-scrollbar{width:8px;background-color:#f9f9f9}.talk_main .qa_body[data-v-1b8ced74]::-webkit-scrollbar-track{background:#e1e1e1;border-radius:10px}.talk_main .qa_body[data-v-1b8ced74]::-webkit-scrollbar-thumb{background-color:#c1c1c1;border-radius:10px}.talk_main .qa_body li[data-v-1b8ced74]{display:flex;margin-bottom:24px;justify-content:flex-end;gap:10px;min-width:0}.talk_main .qa_body li>div[data-v-1b8ced74]:not(.is_icon){min-width:0;max-width:100%}.talk_main .qa_body li[data-v-1b8ced74] .ant-bubble-content.ant-bubble-content-filled{max-width:100%;box-sizing:border-box;box-shadow:0 4px 20px #0476ed29;border:1px solid;border-image-source:linear-gradient(180deg,#ffffff 0%,rgba(255,255,255,.5) 104.31%);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:linear-gradient(92.03deg,#77f1ff8c -2.18%,#edfaffd9 48.06%,#5ba8ff73 107.05%)}.talk_main .qa_body li[data-v-1b8ced74] .ant-bubble-content.ant-bubble-content-filled p{margin:0!important;padding:0}.talk_main .qa_body li[data-v-1b8ced74] .ant-bubble-content.ant-bubble-content-outlined{max-width:100%;box-sizing:border-box}.talk_main .qa_body li[data-v-1b8ced74] .ant-bubble-content.ant-bubble-content-outlined p{margin:0!important;padding:0}.talk_main .qa_body li[data-v-1b8ced74] .ant-bubble-wrapper,.talk_main .qa_body li[data-v-1b8ced74] .ant-bubble{max-width:100%}.talk_main .qa_body li[data-v-1b8ced74] .table-container{width:100%;max-width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:linear-gradient(92.03deg,#77f1ff8c -2.18%,#edfaffd9 48.06%,#5ba8ff73 107.05%)}.talk_main .qa_body li[data-v-1b8ced74] .table-container .markdown-table table{min-width:max-content}.talk_main .qa_body li[data-v-1b8ced74] .markdown-table .ant-table-tbody>tr>td{padding:8px 16px;height:40px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background-color:#fff!important}.talk_main .qa_body li[data-v-1b8ced74] .markdown-table .ant-table-thead>tr>th{background-color:#f5f5f5!important;font-weight:700;padding:8px 16px;height:40px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.talk_main .qa_body li .copyBtn[data-v-1b8ced74]{font-size:18px;cursor:pointer;margin-right:10px}.talk_main .qa_body li .copyBtn[data-v-1b8ced74]:hover{color:#1890ff;transform:scale(1.1)}.talk_main .qa_body li .is_icon[data-v-1b8ced74]{width:30px;height:30px;border-radius:50%;color:#fff;display:flex}.talk_main .qa_body li.is_ai[data-v-1b8ced74]{justify-content:flex-start;overflow:hidden}.talk_main .qa_body li.is_ai .text_main[data-v-1b8ced74]{box-shadow:0 4px 20px #0476ed29;border:1px solid;border-image-source:linear-gradient(180deg,#ffffff 0%,rgba(255,255,255,.5) 104.31%);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:linear-gradient(92.03deg,#77f1ff8c -2.18%,#edfaffd9 48.06%,#5ba8ff73 107.05%)}.talk_main .qa_body li.is_ai .text_main>.value[data-v-1b8ced74]{white-space:pre-wrap}.talk_main .qa_body li .text_main[data-v-1b8ced74]{padding:10px;max-width:calc(100% - 100px);border:1px solid;margin:0 8px;border-image-source:linear-gradient(90deg,#ffffff 0%,rgba(255,255,255,.5) 100%);box-shadow:0 4px 20px #0476ed29;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:linear-gradient(90.81deg,#f4fcffd9 1.75%,#ffffffe6 32.33%,#eef6ffd9 102.86%);border-radius:6px}.talk_main .qa_body li .text_main>.value[data-v-1b8ced74]{display:flex;align-items:center;overflow-wrap:break-word;word-wrap:break-word;font-size:14px;font-weight:400}.talk_main .qa_body li .text_main .btn i[data-v-1b8ced74]{font-size:14px;font-weight:400;color:#037aff;margin-right:10px;cursor:pointer;text-decoration:underline}.talk_main .qa_body li .text_main .btn i.open[data-v-1b8ced74]{filter:hue-rotate(180deg);animation:opacityCss 2s linear infinite}.talk_main #playChart[data-v-1b8ced74]{width:calc(100% - 32px);height:40px;left:16px;display:inline-block;bottom:100px;position:absolute;visibility:hidden;border:1px solid #ccc;vertical-align:bottom}.talk_main #playChart.show[data-v-1b8ced74]{visibility:visible}.talk_main #playChart.hiddle[data-v-1b8ced74]{visibility:hidden}.talk_main .qa_input[data-v-1b8ced74]{padding:10px 16px;display:flex;align-items:center;justify-content:space-between;position:absolute;bottom:0;left:0;right:0;box-sizing:border-box;background:#f5f6f733;backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border-top:1px solid rgba(255,255,255,.5)}.talk_main .qa_input textarea[data-v-1b8ced74]{width:100%;max-height:68px;resize:none;background-color:#fff6;border:1px solid rgba(220,223,230,.8);color:#606266;padding:6px}.talk_main .qa_input textarea[data-v-1b8ced74]:focus{outline:none;border-color:#409effcc;background-color:#ffffffb3}.talk_main .qa_input .clear[data-v-1b8ced74]{margin-right:5px}.talk_main .qa_input .clear img[data-v-1b8ced74]{height:30px;width:30px;cursor:pointer}.talk_main .qa_input .clear img.disabled[data-v-1b8ced74]{cursor:not-allowed}.talk_main .qa_input .is_icon[data-v-1b8ced74]{width:30px}.talk_main .qa_input .is_icon p[data-v-1b8ced74]{display:flex;align-items:center;justify-content:flex-end;margin:6px 0}.talk_main .qa_input .is_icon p[data-v-1b8ced74]:nth-of-type(1){position:relative}.talk_main .qa_input .is_icon p i[data-v-1b8ced74],.talk_main .qa_input .is_icon p .anticon[data-v-1b8ced74]{font-size:20px;color:#606266}.talk_main .qa_input .is_icon p img[data-v-1b8ced74]{width:20px;height:20px;cursor:pointer}.talk_main .qa_input .is_icon p img.close[data-v-1b8ced74]{filter:hue-rotate(180deg);animation:opacityCss 2s linear infinite}.talk_main .qa_input .is_icon p.send img.disabled[data-v-1b8ced74]{cursor:not-allowed}.talk_main .qa_input .is_icon p i[data-v-1b8ced74]{cursor:pointer}.qa-extra-container[data-v-1b8ced74]{display:block;width:100%}.qa-extra-header[data-v-1b8ced74]{display:flex;align-items:center;gap:8px}.qa-extra-empty[data-v-1b8ced74]{color:#999;font-size:12px;margin-left:4px}.qa-extra-body[data-v-1b8ced74]{margin-top:6px}.qa-section[data-v-1b8ced74]{padding-top:6px}.qa-section+.qa-section[data-v-1b8ced74]{margin-top:6px}.qa-section summary[data-v-1b8ced74]{display:flex;justify-content:space-between;align-items:center;font-weight:600;color:#666;cursor:pointer}.qa-section summary[data-v-1b8ced74]::-webkit-details-marker{display:none}.qa-section summary[data-v-1b8ced74]::marker{content:""}.qa-section pre[data-v-1b8ced74]{background:#f7f7f7;padding:6px;border-radius:6px;overflow:auto;white-space:pre-wrap;margin-top:4px}.qa-status-success[data-v-1b8ced74]{color:#13ce66}.qa-status-running[data-v-1b8ced74]{color:#666}.stop-response-btn[data-v-1b8ced74]{position:absolute;top:-15px;right:50%;transform:translate(50%);border:1px solid #dddddd;border-radius:8px;padding:4px 8px;font-size:14px;color:#333;background:#fff;cursor:pointer;-webkit-user-select:auto!important;user-select:auto!important;pointer-events:auto!important;white-space:nowrap}.stop-response-btn[data-v-1b8ced74]:hover{background:#f5f5f5}.prompts-rise-enter-active[data-v-1b8ced74]{transition:opacity .4s ease,transform .4s cubic-bezier(.16,1,.3,1)}.prompts-rise-enter-from[data-v-1b8ced74]{opacity:0;transform:translateY(14px)}.prompts-rise-enter-to[data-v-1b8ced74]{opacity:1;transform:translateY(0)}.model-type-toggle{position:absolute;top:34px;left:170px}.model-type-toggle .ant-switch-inner{white-space:nowrap;color:#fff;font-size:12px}.model-type-toggle.ant-switch{background-color:#13ce66}.model-type-toggle.ant-switch-checked{background-color:#409eff}.model-type-toggle.ant-switch:hover{background-color:#13ce66}.model-type-toggle.ant-switch-checked:hover{background-color:#409eff}#g-ai-robot[data-v-a0f306e7]{position:fixed}#g-ai-robot .robot[data-v-a0f306e7]{cursor:pointer;z-index:9990;touch-action:none}#g-ai-robot .robot .digital-human-wrap[data-v-a0f306e7]{position:relative}#g-ai-robot .robot .digital-human-wrap .dialogImg[data-v-a0f306e7]{z-index:9998;position:absolute;width:15%;height:auto;top:18%;left:73%;-webkit-user-select:auto!important;user-select:auto!important;pointer-events:auto!important}#g-ai-robot .robot .digital-human-wrap .disabled[data-v-a0f306e7]{cursor:not-allowed}#g-ai-robot .robot .digital-human-wrap .statusImg[data-v-a0f306e7]{z-index:9998;position:absolute;width:30%;height:30%}#g-ai-robot .robot .digital-human-wrap .QstatusImg[data-v-a0f306e7]{width:29%!important;height:20%!important}#g-ai-robot .robot.disabled[data-v-a0f306e7]{cursor:not-allowed}#g-ai-robot .robot img[data-v-a0f306e7]{height:100px;width:100px}#g-ai-robot .robot .table-container[data-v-a0f306e7]{touch-action:pan-x}@keyframes rotateCss-a0f306e7{0%{transform:rotate(0)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}70%{transform:rotate(270deg)}to{transform:rotate(360deg)}}@keyframes dialog-dock-in-a0f306e7{0%{opacity:0;transform:scale(.15)}50%{opacity:1}75%{transform:scale(1.03)}to{opacity:1;transform:scale(1)}}@keyframes dialog-dock-out-a0f306e7{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.15)}}.dialog-dock-enter-active[data-v-a0f306e7]{animation:dialog-dock-in-a0f306e7 .38s cubic-bezier(.16,1,.3,1) forwards;transform-origin:bottom left}.dialog-dock-leave-active[data-v-a0f306e7]{animation:dialog-dock-out-a0f306e7 .26s cubic-bezier(.55,0,1,.45) forwards;transform-origin:bottom left}
|
|
1
|
+
.digital-human[data-v-b9ab6c75]{z-index:0;position:relative;display:flex;align-items:center;justify-content:center}.digital-human #video[data-v-b9ab6c75]{position:absolute;left:0;top:0}.digital-human #output-canvas[data-v-b9ab6c75]{opacity:1;transition:opacity 6s ease;width:300px;height:150px}.digital-human #output-canvas.fade-out[data-v-b9ab6c75]{opacity:0;pointer-events:none}.digital-human .xiaogVideo[data-v-b9ab6c75],.digital-human img[data-v-b9ab6c75]{position:absolute;left:0;top:0}.digital-human .statusImg[data-v-b9ab6c75]{z-index:9998;position:absolute;width:30%;height:30%;top:0%;left:0%;-webkit-user-select:auto!important;user-select:auto!important;pointer-events:auto!important}.digital-human .QstatusImg[data-v-b9ab6c75]{width:29%!important;height:20%!important}[data-v-cafadabb] .ant-bubble-content{pointer-events:auto}[data-v-cafadabb] .table-container{width:100%;max-width:100%;overflow-x:auto;touch-action:pan-x;-webkit-overflow-scrolling:touch;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(92.03deg,#77f1ff8c -2.18%,#edfaffd9 48.06%,#5ba8ff73 107.05%)}[data-v-cafadabb] .table-container .markdown-table table{min-width:max-content}[data-v-cafadabb] .markdown-table .ant-table-tbody>tr>td{padding:8px 16px;height:40px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background-color:#fff!important}[data-v-cafadabb] .markdown-table .ant-table-thead>tr>th{background-color:#f5f5f5!important;font-weight:700;padding:8px 16px;height:40px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.suspension-content[data-v-cafadabb]{overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none;position:absolute;left:72%;bottom:85%;width:220px;display:flex;flex-direction:column-reverse}.suspension-content[data-v-cafadabb]::-webkit-scrollbar{display:none}.useCustom-dialog[data-v-cafadabb]{pointer-events:none;z-index:1}.useCustom-dialog .bubble-item[data-v-cafadabb]{margin-bottom:6px}.useCustom-dialog p[data-v-cafadabb]{margin:0!important;padding:0}.useCustom-dialog[data-v-cafadabb] .ant-bubble .ant-bubble-content-filled,.useCustom-dialog[data-v-cafadabb] .ant-bubble .ant-bubble-content-outlined{background:#062e404d;border:1px solid rgba(220,237,255,.3);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:12px;color:#fff}.useCustom-dialog[data-v-cafadabb] .ant-bubble-content.ant-bubble-content-outlined p,.useCustom-dialog[data-v-cafadabb] .ant-bubble-content.ant-bubble-content-filled p{margin:0!important;padding:0}.suspension-msg-bubble[data-v-cafadabb]{pointer-events:none;z-index:1}.suspension-msg-bubble .bubble-item[data-v-cafadabb]{margin-bottom:5px}.suspension-msg-bubble p[data-v-cafadabb]{margin:0!important;padding:0}.suspension-msg-bubble[data-v-cafadabb] .ant-bubble .ant-bubble-content-filled{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:linear-gradient(92.03deg,#77f1ff40 -2.18%,#edfaff40 48.06%,#5ba8ff40 107.05%);border:1px solid rgba(255,255,255,.6);border-radius:12px}.suspension-msg-bubble[data-v-cafadabb] .ant-bubble .ant-bubble-content-outlined{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff4d;border:1px solid rgba(255,255,255,.6);border-radius:12px}.suspension-msg-bubble[data-v-cafadabb] .ant-bubble-content.ant-bubble-content-filled p,.suspension-msg-bubble[data-v-cafadabb] .ant-bubble-content.ant-bubble-content-outlined p{margin:0!important;padding:0}.bubble-move[data-v-cafadabb],.bubble-enter-active[data-v-cafadabb],.bubble-leave-active[data-v-cafadabb]{transition:all .5s ease}.bubble-enter-from[data-v-cafadabb],.bubble-leave-to[data-v-cafadabb]{opacity:0;transform:translate(30px)}.bubble-leave-active[data-v-cafadabb]{position:absolute}.ellipsisText{display:inline;letter-spacing:2px}.ellipsisText:after{content:"···";animation:loading-animation 1s infinite linear}@keyframes loading-animation{0%{content:"·"}50%{content:"··"}to{content:"···"}}.qa-extra-pre{background:#f4f4f5;padding:6px;border-radius:6px;overflow:auto;white-space:pre-wrap;margin-top:4px}.qa-knowledge-item summary{display:flex;align-items:center;color:#666;cursor:pointer}.qa-knowledge-item summary::-webkit-details-marker{display:none}.qa-knowledge-item summary::marker{content:""}.qa-knowledge-item .qa-arrow{color:#999;font-size:16px;margin-right:6px;transition:transform .2s ease;display:inline-block}.qa-knowledge-item:not([open]) .qa-arrow{transform:rotate(-90deg)}.qa-knowledge-number{color:#666;margin-right:6px}.talk_main[data-v-1b8ced74]{position:absolute;width:400px;z-index:10000;height:600px;resize:both;overflow:auto;min-width:360px;min-height:320px;max-width:80vw;max-height:90vh;background:#f5f6f766;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.55);box-shadow:0 8px 32px #0476ed1f;border-radius:8px}.talk_main header[data-v-1b8ced74]{height:44px;background:linear-gradient(to right,#ebf1ff66,#e5faf866,#f2ebfe66);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.5);display:flex;padding:0 16px;align-items:center;justify-content:space-between;cursor:move;color:#333}.talk_main header span[data-v-1b8ced74]{font-size:16px;font-weight:700;color:#333}.talk_main header span.close[data-v-1b8ced74]{color:#666;font-size:18px;line-height:1;display:flex;align-items:center;cursor:pointer}.talk_main header span.close[data-v-1b8ced74]:hover{color:#333}.talk_main header span.close .anticon.disabled[data-v-1b8ced74]{cursor:not-allowed;opacity:.4;pointer-events:none}.talk_main .clickable-image[data-v-1b8ced74]{cursor:pointer;width:80px;height:auto;border-radius:5px;transition:transform .2s}.talk_main .clickable-image[data-v-1b8ced74]:hover{transform:scale(1.1)}.talk_main .image-viewer-overlay[data-v-1b8ced74]{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000b3;display:flex;justify-content:center;align-items:center;z-index:9999}.talk_main .image-viewer[data-v-1b8ced74]{position:relative}.talk_main .large-image[data-v-1b8ced74]{max-width:90%;max-height:90%;border-radius:8px}.talk_main .qa_body[data-v-1b8ced74]{list-style:none;padding:16px;box-sizing:border-box;margin:0;width:100%;height:calc(100% - 116px);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#c1c1c1 #e1e1e1}.talk_main .qa_body[data-v-1b8ced74]::-webkit-scrollbar{width:8px;background-color:#f9f9f9}.talk_main .qa_body[data-v-1b8ced74]::-webkit-scrollbar-track{background:#e1e1e1;border-radius:10px}.talk_main .qa_body[data-v-1b8ced74]::-webkit-scrollbar-thumb{background-color:#c1c1c1;border-radius:10px}.talk_main .qa_body li[data-v-1b8ced74]{display:flex;margin-bottom:24px;justify-content:flex-end;gap:10px;min-width:0}.talk_main .qa_body li>div[data-v-1b8ced74]:not(.is_icon){min-width:0;max-width:100%}.talk_main .qa_body li[data-v-1b8ced74] .ant-bubble-content.ant-bubble-content-filled{max-width:100%;box-sizing:border-box;box-shadow:0 4px 20px #0476ed29;border:1px solid;border-image-source:linear-gradient(180deg,#ffffff 0%,rgba(255,255,255,.5) 104.31%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(92.03deg,#77f1ff8c -2.18%,#edfaffd9 48.06%,#5ba8ff73 107.05%)}.talk_main .qa_body li[data-v-1b8ced74] .ant-bubble-content.ant-bubble-content-filled p{margin:0!important;padding:0}.talk_main .qa_body li[data-v-1b8ced74] .ant-bubble-content.ant-bubble-content-outlined{max-width:100%;box-sizing:border-box}.talk_main .qa_body li[data-v-1b8ced74] .ant-bubble-content.ant-bubble-content-outlined p{margin:0!important;padding:0}.talk_main .qa_body li[data-v-1b8ced74] .ant-bubble-wrapper,.talk_main .qa_body li[data-v-1b8ced74] .ant-bubble{max-width:100%}.talk_main .qa_body li[data-v-1b8ced74] .table-container{width:100%;max-width:100%;min-width:0;overflow-x:auto;touch-action:pan-x;-webkit-overflow-scrolling:touch;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(92.03deg,#77f1ff8c -2.18%,#edfaffd9 48.06%,#5ba8ff73 107.05%)}.talk_main .qa_body li[data-v-1b8ced74] .table-container .markdown-table table{min-width:max-content}.talk_main .qa_body li[data-v-1b8ced74] .markdown-table .ant-table-tbody>tr>td{padding:8px 16px;height:40px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;background-color:#fff!important}.talk_main .qa_body li[data-v-1b8ced74] .markdown-table .ant-table-thead>tr>th{background-color:#f5f5f5!important;font-weight:700;padding:8px 16px;height:40px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.talk_main .qa_body li .copyBtn[data-v-1b8ced74]{font-size:18px;cursor:pointer;margin-right:10px}.talk_main .qa_body li .copyBtn[data-v-1b8ced74]:hover{color:#1890ff;transform:scale(1.1)}.talk_main .qa_body li .is_icon[data-v-1b8ced74]{width:30px;height:30px;border-radius:50%;color:#fff;display:flex}.talk_main .qa_body li.is_ai[data-v-1b8ced74]{justify-content:flex-start;overflow:hidden}.talk_main .qa_body li.is_ai .text_main[data-v-1b8ced74]{box-shadow:0 4px 20px #0476ed29;border:1px solid;border-image-source:linear-gradient(180deg,#ffffff 0%,rgba(255,255,255,.5) 104.31%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(92.03deg,#77f1ff8c -2.18%,#edfaffd9 48.06%,#5ba8ff73 107.05%)}.talk_main .qa_body li.is_ai .text_main>.value[data-v-1b8ced74]{white-space:pre-wrap}.talk_main .qa_body li .text_main[data-v-1b8ced74]{padding:10px;max-width:calc(100% - 100px);border:1px solid;margin:0 8px;border-image-source:linear-gradient(90deg,#ffffff 0%,rgba(255,255,255,.5) 100%);box-shadow:0 4px 20px #0476ed29;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(90.81deg,#f4fcffd9 1.75%,#ffffffe6 32.33%,#eef6ffd9 102.86%);border-radius:6px}.talk_main .qa_body li .text_main>.value[data-v-1b8ced74]{display:flex;align-items:center;overflow-wrap:break-word;word-wrap:break-word;font-size:14px;font-weight:400}.talk_main .qa_body li .text_main .btn i[data-v-1b8ced74]{font-size:14px;font-weight:400;color:#037aff;margin-right:10px;cursor:pointer;text-decoration:underline}.talk_main .qa_body li .text_main .btn i.open[data-v-1b8ced74]{filter:hue-rotate(180deg);animation:opacityCss 2s linear infinite}.talk_main #playChart[data-v-1b8ced74]{width:calc(100% - 32px);height:40px;left:16px;display:inline-block;bottom:100px;position:absolute;visibility:hidden;border:1px solid #ccc;vertical-align:bottom}.talk_main #playChart.show[data-v-1b8ced74]{visibility:visible}.talk_main #playChart.hiddle[data-v-1b8ced74]{visibility:hidden}.talk_main .qa_input[data-v-1b8ced74]{padding:10px 16px;display:flex;align-items:center;justify-content:space-between;position:absolute;bottom:0;left:0;right:0;box-sizing:border-box;background:linear-gradient(to right,#ebf1ff66,#e5faf866,#f2ebfe66);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid rgba(255,255,255,.5)}.talk_main .qa_input textarea[data-v-1b8ced74]{width:100%;max-height:68px;resize:none;background-color:#fff6;border:1px solid rgba(220,223,230,.8);color:#606266;padding:6px}.talk_main .qa_input textarea[data-v-1b8ced74]:focus{outline:none;border-color:#409effcc;background-color:#ffffffb3}.talk_main .qa_input .clear[data-v-1b8ced74]{margin-right:5px}.talk_main .qa_input .clear img[data-v-1b8ced74]{height:30px;width:30px;cursor:pointer}.talk_main .qa_input .clear img.disabled[data-v-1b8ced74]{cursor:not-allowed}.talk_main .qa_input .is_icon[data-v-1b8ced74]{width:30px}.talk_main .qa_input .is_icon p[data-v-1b8ced74]{display:flex;align-items:center;justify-content:flex-end;margin:6px 0}.talk_main .qa_input .is_icon p[data-v-1b8ced74]:nth-of-type(1){position:relative}.talk_main .qa_input .is_icon p i[data-v-1b8ced74],.talk_main .qa_input .is_icon p .anticon[data-v-1b8ced74]{font-size:20px;color:#606266}.talk_main .qa_input .is_icon p img[data-v-1b8ced74]{width:20px;height:20px;cursor:pointer}.talk_main .qa_input .is_icon p img.close[data-v-1b8ced74]{filter:hue-rotate(180deg);animation:opacityCss 2s linear infinite}.talk_main .qa_input .is_icon p.send img.disabled[data-v-1b8ced74]{cursor:not-allowed}.talk_main .qa_input .is_icon p i[data-v-1b8ced74]{cursor:pointer}.qa-extra-container[data-v-1b8ced74]{display:block;width:100%}.qa-extra-header[data-v-1b8ced74]{display:flex;align-items:center;gap:8px}.qa-extra-empty[data-v-1b8ced74]{color:#999;font-size:12px;margin-left:4px}.qa-extra-body[data-v-1b8ced74]{margin-top:6px}.qa-section[data-v-1b8ced74]{padding-top:6px}.qa-section+.qa-section[data-v-1b8ced74]{margin-top:6px}.qa-section summary[data-v-1b8ced74]{display:flex;justify-content:space-between;align-items:center;font-weight:600;color:#666;cursor:pointer}.qa-section summary[data-v-1b8ced74]::-webkit-details-marker{display:none}.qa-section summary[data-v-1b8ced74]::marker{content:""}.qa-section pre[data-v-1b8ced74]{background:#f7f7f7;padding:6px;border-radius:6px;overflow:auto;white-space:pre-wrap;margin-top:4px}.qa-status-success[data-v-1b8ced74]{color:#13ce66}.qa-status-running[data-v-1b8ced74]{color:#666}.stop-response-btn[data-v-1b8ced74]{position:absolute;top:-15px;right:50%;transform:translate(50%);border:1px solid #dddddd;border-radius:8px;padding:4px 8px;font-size:14px;color:#333;background:#fff;cursor:pointer;-webkit-user-select:auto!important;user-select:auto!important;pointer-events:auto!important;white-space:nowrap}.stop-response-btn[data-v-1b8ced74]:hover{background:#f5f5f5}.prompts-rise-enter-active[data-v-1b8ced74]{transition:opacity .4s ease,transform .4s cubic-bezier(.16,1,.3,1)}.prompts-rise-enter-from[data-v-1b8ced74]{opacity:0;transform:translateY(14px)}.prompts-rise-enter-to[data-v-1b8ced74]{opacity:1;transform:translateY(0)}.model-type-toggle{position:absolute;top:34px;left:170px}.model-type-toggle .ant-switch-inner{white-space:nowrap;color:#fff;font-size:12px}.model-type-toggle.ant-switch{background-color:#13ce66}.model-type-toggle.ant-switch-checked{background-color:#409eff}.model-type-toggle.ant-switch:hover{background-color:#13ce66}.model-type-toggle.ant-switch-checked:hover{background-color:#409eff}#g-ai-robot[data-v-a0f306e7]{position:fixed}#g-ai-robot .robot[data-v-a0f306e7]{cursor:pointer;z-index:9990;touch-action:none}#g-ai-robot .robot .digital-human-wrap[data-v-a0f306e7]{position:relative}#g-ai-robot .robot .digital-human-wrap .dialogImg[data-v-a0f306e7]{z-index:9998;position:absolute;width:15%;height:auto;top:18%;left:73%;-webkit-user-select:auto!important;user-select:auto!important;pointer-events:auto!important}#g-ai-robot .robot .digital-human-wrap .disabled[data-v-a0f306e7]{cursor:not-allowed}#g-ai-robot .robot .digital-human-wrap .statusImg[data-v-a0f306e7]{z-index:9998;position:absolute;width:30%;height:30%}#g-ai-robot .robot .digital-human-wrap .QstatusImg[data-v-a0f306e7]{width:29%!important;height:20%!important}#g-ai-robot .robot.disabled[data-v-a0f306e7]{cursor:not-allowed}#g-ai-robot .robot img[data-v-a0f306e7]{height:100px;width:100px}#g-ai-robot .robot .table-container[data-v-a0f306e7]{touch-action:pan-x}@keyframes rotateCss-a0f306e7{0%{transform:rotate(0)}25%{transform:rotate(90deg)}50%{transform:rotate(180deg)}70%{transform:rotate(270deg)}to{transform:rotate(360deg)}}@keyframes dialog-dock-in-a0f306e7{0%{opacity:0;transform:scale(.15)}50%{opacity:1}75%{transform:scale(1.03)}to{opacity:1;transform:scale(1)}}@keyframes dialog-dock-out-a0f306e7{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.15)}}.dialog-dock-enter-active[data-v-a0f306e7]{animation:dialog-dock-in-a0f306e7 .38s cubic-bezier(.16,1,.3,1) forwards;transform-origin:bottom left}.dialog-dock-leave-active[data-v-a0f306e7]{animation:dialog-dock-out-a0f306e7 .26s cubic-bezier(.55,0,1,.45) forwards;transform-origin:bottom left}
|