From 3ceb3feccf9c80030f7f8a1a8e24ba8bd276686a Mon Sep 17 00:00:00 2001 From: CGD <3030332422@qq.com> Date: Wed, 30 Apr 2025 11:55:19 +0800 Subject: [PATCH] =?UTF-8?q?update:python=E9=83=A8=E5=88=86"=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E6=9B=B4=E6=96=B0=E9=85=8D=E7=BD=AE"=E7=9A=84?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/xiaozhi-server/core/connection.py | 11 +++++++++-- main/xiaozhi-server/core/websocket_server.py | 2 ++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/main/xiaozhi-server/core/connection.py b/main/xiaozhi-server/core/connection.py index 9a59d388..8f406ed1 100644 --- a/main/xiaozhi-server/core/connection.py +++ b/main/xiaozhi-server/core/connection.py @@ -42,9 +42,10 @@ class TTSException(RuntimeError): class ConnectionHandler: def __init__( - self, config: Dict[str, Any], _vad, _asr, _llm, _tts, _memory, _intent + self, config: Dict[str, Any], _vad, _asr, _llm, _tts, _memory, _intent, server=None ): - self.config = copy.deepcopy(config) + self.config = config + self.server = server self.logger = setup_logging() self.auth = AuthMiddleware(config) @@ -256,6 +257,12 @@ class ConnectionHandler: if config_model in ["llm", "tts", "asr", "vad", "intent", "memory"]: updated_modules.append(config_model) + # 同步更新 WebSocketServer 的配置 + if self.server: + async with self.server.config_lock: # 使用锁确保线程安全 + for config_model in updated_modules: + self.server.config[config_model].update(new_config[config_model]) + # 批量初始化模块 if updated_modules: try: diff --git a/main/xiaozhi-server/core/websocket_server.py b/main/xiaozhi-server/core/websocket_server.py index fae94046..4b933865 100644 --- a/main/xiaozhi-server/core/websocket_server.py +++ b/main/xiaozhi-server/core/websocket_server.py @@ -11,6 +11,7 @@ class WebSocketServer: def __init__(self, config: dict): self.config = config self.logger = setup_logging() + self.config_lock = asyncio.Lock() modules = initialize_modules( self.logger, self.config, True, True, True, True, True, True ) @@ -43,6 +44,7 @@ class WebSocketServer: self._tts, self._memory, self._intent, + self # 传入当前 WebSocketServer 实例 ) self.active_connections.add(handler) try: