From 96f0412f9432842cc5a62feafe2f82c63c8aa7ec Mon Sep 17 00:00:00 2001 From: 3030332422 <3030332422@qq.com> Date: Tue, 21 Apr 2026 11:15:31 +0800 Subject: [PATCH] =?UTF-8?q?update=EF=BC=9A=E6=B5=8B=E8=AF=95=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=94=AF=E6=8C=81=E5=85=B3=E9=97=AD=E6=83=85=E7=BB=AA?= =?UTF-8?q?=E8=A1=A8=E6=83=85=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/xiaozhi-server/core/connection.py | 9 +++++---- main/xiaozhi-server/test/js/config/manager.js | 14 +++++++++++++- .../test/js/core/network/websocket.js | 3 ++- main/xiaozhi-server/test/test_page.html | 9 +++++++++ 4 files changed, 29 insertions(+), 6 deletions(-) diff --git a/main/xiaozhi-server/core/connection.py b/main/xiaozhi-server/core/connection.py index d167bf1b..663def53 100644 --- a/main/xiaozhi-server/core/connection.py +++ b/main/xiaozhi-server/core/connection.py @@ -1002,10 +1002,11 @@ class ConnectionHandler: # 在llm回复中获取情绪表情,一轮对话只在开头获取一次 if emotion_flag and content is not None and content.strip(): - asyncio.run_coroutine_threadsafe( - textUtils.get_emotion(self, content), - self.loop, - ) + if (self.features or {}).get("emoji", True): + asyncio.run_coroutine_threadsafe( + textUtils.get_emotion(self, content), + self.loop, + ) emotion_flag = False if content is not None and len(content) > 0: diff --git a/main/xiaozhi-server/test/js/config/manager.js b/main/xiaozhi-server/test/js/config/manager.js index 836f5d24..50a0c18a 100644 --- a/main/xiaozhi-server/test/js/config/manager.js +++ b/main/xiaozhi-server/test/js/config/manager.js @@ -66,6 +66,12 @@ export function loadConfig() { } else if (wakewordListInput) { wakewordListInput.value = DEFAULT_WAKE_WORDS; } + + const emojiEnabledInput = document.getElementById('emojiEnabled'); + const savedEmojiEnabled = localStorage.getItem('xz_tester_emojiEnabled'); + if (savedEmojiEnabled !== null && emojiEnabledInput) { + emojiEnabledInput.value = savedEmojiEnabled; + } } // 保存配置 @@ -80,6 +86,10 @@ export function saveConfig() { localStorage.setItem('xz_tester_deviceMac', deviceMacInput.value); localStorage.setItem('xz_tester_deviceName', deviceNameInput.value); localStorage.setItem('xz_tester_clientId', clientIdInput.value); + const emojiEnabledInput = document.getElementById('emojiEnabled'); + if (emojiEnabledInput) { + localStorage.setItem('xz_tester_emojiEnabled', emojiEnabledInput.value); + } if (wakewordEnabledInput) { localStorage.setItem('xz_tester_wakewordEnabled', wakewordEnabledInput.value); } @@ -97,12 +107,14 @@ export function getConfig() { const deviceMac = document.getElementById('deviceMac')?.value.trim() || ''; const deviceName = document.getElementById('deviceName')?.value.trim() || ''; const clientId = document.getElementById('clientId')?.value.trim() || ''; + const emojiEnabled = document.getElementById('emojiEnabled')?.value !== 'false'; return { deviceId: deviceMac, // 使用MAC地址作为deviceId deviceName, deviceMac, - clientId + clientId, + emojiEnabled }; } diff --git a/main/xiaozhi-server/test/js/core/network/websocket.js b/main/xiaozhi-server/test/js/core/network/websocket.js index 468651fd..ee7238c1 100644 --- a/main/xiaozhi-server/test/js/core/network/websocket.js +++ b/main/xiaozhi-server/test/js/core/network/websocket.js @@ -34,7 +34,8 @@ export class WebSocketHandler { device_mac: config.deviceMac, token: config.token, features: { - mcp: true + mcp: true, + emoji: config.emojiEnabled } }; diff --git a/main/xiaozhi-server/test/test_page.html b/main/xiaozhi-server/test/test_page.html index 906d7b2e..bf9ae753 100644 --- a/main/xiaozhi-server/test/test_page.html +++ b/main/xiaozhi-server/test/test_page.html @@ -163,6 +163,15 @@ placeholder="deviceName"> +