From 558f23688f1336abac142f5580fe13188f252083 Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Thu, 17 Apr 2025 23:57:04 +0800 Subject: [PATCH 01/74] =?UTF-8?q?fix:websocket=E8=BF=9E=E6=8E=A5=E5=90=8E?= =?UTF-8?q?=E4=B8=8D=E8=AF=B4=E8=AF=9D=E7=9A=84=E5=A4=87=E7=94=A8=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E6=96=B9=E6=B3=95=20(#872)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update: 增加对httpClient的统一管理 * update: 增加retry机制 * update: 增加retry机制 * fix:websocket连接后不说话的备用关闭方法 --------- Co-authored-by: haotian Co-authored-by: GoodyHao <865700600@qq.com> --- main/xiaozhi-server/config/config_loader.py | 103 ++---------- .../config/manage_api_client.py | 154 ++++++++++++++++++ main/xiaozhi-server/core/connection.py | 50 ++++-- main/xiaozhi-server/docker-compose_all.yml | 1 - .../plugins_func/functions/play_music.py | 111 +++++++++---- 5 files changed, 277 insertions(+), 142 deletions(-) create mode 100644 main/xiaozhi-server/config/manage_api_client.py diff --git a/main/xiaozhi-server/config/config_loader.py b/main/xiaozhi-server/config/config_loader.py index d71da2d3..49a66558 100644 --- a/main/xiaozhi-server/config/config_loader.py +++ b/main/xiaozhi-server/config/config_loader.py @@ -1,18 +1,7 @@ import os import argparse -import requests import yaml -import time - - -class DeviceNotFoundException(Exception): - pass - - -class DeviceBindException(Exception): - def __init__(self, bind_code): - self.bind_code = bind_code - super().__init__(f"设备绑定异常,绑定码: {bind_code}") +from config.manage_api_client import init_service, get_server_config, get_agent_models # 添加全局配置缓存 @@ -65,97 +54,27 @@ def get_config_file(): return config_file -def _make_api_request(api_url, secret, endpoint, json_data=None): - """执行API请求的通用函数 - - Args: - api_url: API的基础URL - secret: API密钥 - endpoint: API端点 - json_data: 请求的JSON数据 - - Returns: - dict: API返回的数据 - - Raises: - Exception: 当请求失败时抛出异常 - """ - if not api_url or not secret: - raise Exception("manager-api的url或secret配置错误") - - if "你" in secret: - raise Exception("请先配置manager-api的secret") - - max_retries = 10 - retry_delay = 2 # 秒 - - for attempt in range(max_retries): - try: - response = requests.post(f"{api_url}{endpoint}", json=json_data) - if response.status_code == 200: - result = response.json() - if result.get("code") == 10041: - raise DeviceNotFoundException(result.get("msg")) - elif result.get("code") == 10042: - raise DeviceBindException(result.get("msg")) - elif result.get("code") != 0: - raise Exception(f"API返回错误: {result.get('msg', '未知错误')}") - return result.get("data") - - error_msg = f"manager-api请求失败,状态码: {response.status_code}" - try: - error_data = response.json() - if "msg" in error_data: - error_msg = f"{error_msg}, 错误信息: {error_data['msg']}" - except: - error_msg = f"{error_msg}, 响应内容: {response.text}" - - if attempt < max_retries - 1: - print(f"请求manager-api失败,正在重试 ({attempt + 1}/{max_retries})...") - time.sleep(retry_delay) - else: - raise Exception(error_msg) - - except requests.exceptions.RequestException as e: - if attempt < max_retries - 1: - print(f"请求manager-api异常,正在重试 ({attempt + 1}/{max_retries})...") - time.sleep(retry_delay) - else: - raise Exception(f"manager-api请求异常: {str(e)}") - - def get_config_from_api(config): """从Java API获取配置""" - api_url = config["manager-api"].get("url", "") - secret = config["manager-api"].get("secret", "") + # 初始化API客户端 + init_service(config) + + # 获取服务器配置 + config_data = get_server_config() + if config_data is None: + raise Exception("Failed to fetch server config from API") - config_data = _make_api_request( - api_url, secret, "/config/server-base", {"secret": secret} - ) config_data["read_config_from_api"] = True config_data["manager-api"] = { - "url": api_url, - "secret": secret, + "url": config["manager-api"].get("url", ""), + "secret": config["manager-api"].get("secret", ""), } return config_data def get_private_config_from_api(config, device_id, client_id): """从Java API获取私有配置""" - api_url = config["manager-api"].get("url", "") - secret = config["manager-api"].get("secret", "") - - return _make_api_request( - api_url, - secret, - "/config/agent-models", - { - "secret": secret, - "macAddress": device_id, - "clientId": client_id, - "selectedModule": config["selected_module"], - }, - ) + return get_agent_models(device_id, client_id, config["selected_module"]) def ensure_directories(config): diff --git a/main/xiaozhi-server/config/manage_api_client.py b/main/xiaozhi-server/config/manage_api_client.py new file mode 100644 index 00000000..1f583857 --- /dev/null +++ b/main/xiaozhi-server/config/manage_api_client.py @@ -0,0 +1,154 @@ +import os +import time +from typing import Optional, Dict + +import httpx + +TAG = __name__ + + +class DeviceNotFoundException(Exception): + pass + + +class DeviceBindException(Exception): + def __init__(self, bind_code): + self.bind_code = bind_code + super().__init__(f"设备绑定异常,绑定码: {bind_code}") + + +class ManageApiClient: + _instance = None + _client = None + _secret = None + + def __new__(cls, config): + """单例模式确保全局唯一实例,并支持传入配置参数""" + if cls._instance is None: + cls._instance = super().__new__(cls) + cls._init_client(config) + return cls._instance + + @classmethod + def _init_client(cls, config): + """初始化持久化连接池""" + cls.config = config.get("manager-api") + + if not cls.config: + raise Exception("manager-api配置错误") + + if not cls.config.get("url") or not cls.config.get("secret"): + raise Exception("manager-api的url或secret配置错误") + + if "你" in cls.config.get("secret"): + raise Exception("请先配置manager-api的secret") + + cls._secret = cls.config.get("secret") + cls.max_retries = cls.config.get("max_retries", 6) # 最大重试次数 + cls.retry_delay = cls.config.get("retry_delay", 10) # 初始重试延迟(秒) + # NOTE(goody): 2025/4/16 http相关资源统一管理,后续可以增加线程池或者超时 + # 后续也可以统一配置apiToken之类的走通用的Auth + cls._client = httpx.Client( + base_url=cls.config.get("url"), + headers={ + "User-Agent": f"PythonClient/2.0 (PID:{os.getpid()})", + "Accept": "application/json", + }, + timeout=cls.config.get("timeout", 30), # 默认超时时间30秒 + ) + + @classmethod + def _request(cls, method: str, endpoint: str, **kwargs) -> Dict: + """发送单次HTTP请求并处理响应""" + endpoint = endpoint.lstrip("/") + response = cls._client.request(method, endpoint, **kwargs) + response.raise_for_status() + + result = response.json() + + # 处理API返回的业务错误 + if result.get("code") == 10041: + raise DeviceNotFoundException(result.get("msg")) + elif result.get("code") == 10042: + raise DeviceBindException(result.get("msg")) + elif result.get("code") != 0: + raise Exception(f"API返回错误: {result.get('msg', '未知错误')}") + + # 返回成功数据 + return result.get("data") if result.get("code") == 0 else None + + @classmethod + def _should_retry(cls, exception: Exception) -> bool: + """判断异常是否应该重试""" + # 网络连接相关错误 + if isinstance( + exception, (httpx.ConnectError, httpx.TimeoutException, httpx.NetworkError) + ): + return True + + # HTTP状态码错误 + if isinstance(exception, httpx.HTTPStatusError): + status_code = exception.response.status_code + return status_code in [408, 429, 500, 502, 503, 504] + + return False + + @classmethod + def _execute_request(cls, method: str, endpoint: str, **kwargs) -> Dict: + """带重试机制的请求执行器""" + retry_count = 0 + + while retry_count <= cls.max_retries: + try: + # 执行请求 + return cls._request(method, endpoint, **kwargs) + except Exception as e: + # 判断是否应该重试 + if retry_count < cls.max_retries and cls._should_retry(e): + retry_count += 1 + print( + f"{method} {endpoint} 请求失败,将在 {cls.retry_delay:.1f} 秒后进行第 {retry_count} 次重试" + ) + time.sleep(cls.retry_delay) + continue + else: + # 不重试,直接抛出异常 + raise + + @classmethod + def safe_close(cls): + """安全关闭连接池""" + if cls._client: + cls._client.close() + cls._instance = None + + +def get_server_config() -> Optional[Dict]: + """获取服务器基础配置""" + return ManageApiClient._instance._execute_request( + "POST", "/config/server-base", json={"secret": ManageApiClient._secret} + ) + + +def get_agent_models( + mac_address: str, client_id: str, selected_module: Dict +) -> Optional[Dict]: + """获取代理模型配置""" + return ManageApiClient._instance._execute_request( + "POST", + "/config/agent-models", + json={ + "secret": ManageApiClient._secret, + "macAddress": mac_address, + "clientId": client_id, + "selectedModule": selected_module, + }, + ) + + +def init_service(config): + ManageApiClient(config) + + +def manage_api_http_safe_close(): + ManageApiClient.safe_close() diff --git a/main/xiaozhi-server/core/connection.py b/main/xiaozhi-server/core/connection.py index 22cb981e..b3a78ee2 100644 --- a/main/xiaozhi-server/core/connection.py +++ b/main/xiaozhi-server/core/connection.py @@ -27,11 +27,8 @@ from core.handle.functionHandler import FunctionHandler from plugins_func.register import Action, ActionResponse from core.auth import AuthMiddleware, AuthenticationError from core.mcp.manager import MCPManager -from config.config_loader import ( - get_private_config_from_api, - DeviceNotFoundException, - DeviceBindException, -) +from config.config_loader import get_private_config_from_api +from config.manage_api_client import DeviceNotFoundException, DeviceBindException TAG = __name__ @@ -112,6 +109,11 @@ class ConnectionHandler: self.close_after_chat = False # 是否在聊天结束后关闭连接 self.use_function_call_mode = False + self.timeout_task = None + self.timeout_seconds = ( + int(self.config.get("close_connection_no_voice_time", 120)) + 60 + ) # 在原来第一道关闭的基础上加60秒,进行二道关闭 + async def handle_connection(self, ws): try: # 获取并验证headers @@ -150,6 +152,9 @@ class ConnectionHandler: self.websocket = ws self.session_id = str(uuid.uuid4()) + # 启动超时检查任务 + self.timeout_task = asyncio.create_task(self._check_timeout()) + self.welcome_msg = self.config["xiaozhi"] self.welcome_msg["session_id"] = self.session_id await self.websocket.send(json.dumps(self.welcome_msg)) @@ -195,6 +200,11 @@ class ConnectionHandler: async def _route_message(self, message): """消息路由""" + # 重置超时计时器 + if self.timeout_task: + self.timeout_task.cancel() + self.timeout_task = asyncio.create_task(self._check_timeout()) + if isinstance(message, str): await handleTextMessage(self, message) elif isinstance(message, bytes): @@ -497,7 +507,7 @@ class ConnectionHandler: function_id = None function_arguments = "" content_arguments = "" - + for response in llm_responses: content, tools_call = response @@ -506,7 +516,7 @@ class ConnectionHandler: tools_call = None if content is not None and len(content) > 0: content_arguments += content - + if not tool_call_flag and content_arguments.startswith(""): # print("content_arguments", content_arguments) tool_call_flag = True @@ -679,7 +689,6 @@ class ConnectionHandler: self.tts_queue.put(future) self.dialogue.put(Message(role="assistant", content=text)) elif result.action == Action.REQLLM: # 调用函数后再请求llm生成回复 - text = result.result if text is not None and len(text) > 0: function_id = function_call_data["id"] @@ -706,18 +715,14 @@ class ConnectionHandler: Message(role="tool", tool_call_id=function_id, content=text) ) self.chat_with_function_calling(text, tool_call=True) - elif result.action == Action.NOTFOUND: + elif result.action == Action.NOTFOUND or result.action == Action.ERROR: text = result.result self.recode_first_last_text(text, text_index) future = self.executor.submit(self.speak_and_play, text, text_index) self.tts_queue.put(future) self.dialogue.put(Message(role="assistant", content=text)) else: - text = result.result - self.recode_first_last_text(text, text_index) - future = self.executor.submit(self.speak_and_play, text, text_index) - self.tts_queue.put(future) - self.dialogue.put(Message(role="assistant", content=text)) + pass def _tts_priority_thread(self): while not self.stop_event.is_set(): @@ -831,6 +836,11 @@ class ConnectionHandler: async def close(self, ws=None): """资源清理方法""" + # 取消超时任务 + if self.timeout_task: + self.timeout_task.cancel() + self.timeout_task = None + # 清理MCP资源 if hasattr(self, "mcp_manager") and self.mcp_manager: await self.mcp_manager.cleanup_all() @@ -884,3 +894,15 @@ class ConnectionHandler: self.close_after_chat = True except Exception as e: self.logger.bind(tag=TAG).error(f"Chat and close error: {str(e)}") + + async def _check_timeout(self): + """检查连接超时""" + try: + while not self.stop_event.is_set(): + await asyncio.sleep(self.timeout_seconds) + if not self.stop_event.is_set(): + self.logger.bind(tag=TAG).info("连接超时,准备关闭") + await self.close(self.websocket) + break + except Exception as e: + self.logger.bind(tag=TAG).error(f"超时检查任务出错: {e}") diff --git a/main/xiaozhi-server/docker-compose_all.yml b/main/xiaozhi-server/docker-compose_all.yml index 81b227b1..eac7bef5 100644 --- a/main/xiaozhi-server/docker-compose_all.yml +++ b/main/xiaozhi-server/docker-compose_all.yml @@ -42,7 +42,6 @@ services: - "8002:8002" environment: - TZ=Asia/Shanghai - ##记得改mysql和redis IP 密码 - SPRING_DATASOURCE_DRUID_URL=jdbc:mysql://xiaozhi-esp32-server-db:3306/xiaozhi_esp32_server?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true&connectTimeout=30000&socketTimeout=30000&autoReconnect=true&failOverReadOnly=false&maxReconnects=10 - SPRING_DATASOURCE_DRUID_USERNAME=root - SPRING_DATASOURCE_DRUID_PASSWORD=123456 diff --git a/main/xiaozhi-server/plugins_func/functions/play_music.py b/main/xiaozhi-server/plugins_func/functions/play_music.py index 20148b5f..0b283c8e 100644 --- a/main/xiaozhi-server/plugins_func/functions/play_music.py +++ b/main/xiaozhi-server/plugins_func/functions/play_music.py @@ -9,7 +9,7 @@ import traceback from pathlib import Path from core.utils import p3 from core.handle.sendAudioHandle import send_stt_message -from plugins_func.register import register_function,ToolType, ActionResponse, Action +from plugins_func.register import register_function, ToolType, ActionResponse, Action TAG = __name__ @@ -18,38 +18,41 @@ logger = setup_logging() MUSIC_CACHE = {} play_music_function_desc = { - "type": "function", - "function": { - "name": "play_music", - "description": "唱歌、听歌、播放音乐的方法。", - "parameters": { - "type": "object", - "properties": { - "song_name": { - "type": "string", - "description": "歌曲名称,如果用户没有指定具体歌名则为'random', 明确指定的时返回音乐的名字 示例: ```用户:播放两只老虎\n参数:两只老虎``` ```用户:播放音乐 \n参数:random ```" - } - }, - "required": ["song_name"] - } + "type": "function", + "function": { + "name": "play_music", + "description": "唱歌、听歌、播放音乐的方法。", + "parameters": { + "type": "object", + "properties": { + "song_name": { + "type": "string", + "description": "歌曲名称,如果用户没有指定具体歌名则为'random', 明确指定的时返回音乐的名字 示例: ```用户:播放两只老虎\n参数:两只老虎``` ```用户:播放音乐 \n参数:random ```", } - } + }, + "required": ["song_name"], + }, + }, +} -@register_function('play_music', play_music_function_desc, ToolType.SYSTEM_CTL) +@register_function("play_music", play_music_function_desc, ToolType.SYSTEM_CTL) def play_music(conn, song_name: str): try: - music_intent = f"播放音乐 {song_name}" if song_name != "random" else "随机播放音乐" + music_intent = ( + f"播放音乐 {song_name}" if song_name != "random" else "随机播放音乐" + ) # 检查事件循环状态 if not conn.loop.is_running(): logger.bind(tag=TAG).error("事件循环未运行,无法提交任务") - return ActionResponse(action=Action.RESPONSE, result="系统繁忙", response="请稍后再试") + return ActionResponse( + action=Action.RESPONSE, result="系统繁忙", response="请稍后再试" + ) # 提交异步任务 future = asyncio.run_coroutine_threadsafe( - handle_music_command(conn, music_intent), - conn.loop + handle_music_command(conn, music_intent), conn.loop ) # 非阻塞回调处理 @@ -62,10 +65,14 @@ def play_music(conn, song_name: str): future.add_done_callback(handle_done) - return ActionResponse(action=Action.RESPONSE, result="指令已接收", response="正在为您播放音乐") + return ActionResponse( + action=Action.NONE, result="指令已接收", response="正在为您播放音乐" + ) except Exception as e: logger.bind(tag=TAG).error(f"处理音乐意图错误: {e}") - return ActionResponse(action=Action.RESPONSE, result=str(e), response="播放音乐时出错了") + return ActionResponse( + action=Action.RESPONSE, result=str(e), response="播放音乐时出错了" + ) def _extract_song_name(text): @@ -105,7 +112,9 @@ def get_music_files(music_dir, music_ext): if ext in music_ext: # 添加相对路径 music_files.append(str(file.relative_to(music_dir))) - music_file_names.append(os.path.splitext(str(file.relative_to(music_dir)))[0]) + music_file_names.append( + os.path.splitext(str(file.relative_to(music_dir)))[0] + ) return music_files, music_file_names @@ -117,15 +126,20 @@ def initialize_music_handler(conn): MUSIC_CACHE["music_dir"] = os.path.abspath( MUSIC_CACHE["music_config"].get("music_dir", "./music") # 默认路径修改 ) - MUSIC_CACHE["music_ext"] = MUSIC_CACHE["music_config"].get("music_ext", (".mp3", ".wav", ".p3")) - MUSIC_CACHE["refresh_time"] = MUSIC_CACHE["music_config"].get("refresh_time", 60) + MUSIC_CACHE["music_ext"] = MUSIC_CACHE["music_config"].get( + "music_ext", (".mp3", ".wav", ".p3") + ) + MUSIC_CACHE["refresh_time"] = MUSIC_CACHE["music_config"].get( + "refresh_time", 60 + ) else: MUSIC_CACHE["music_dir"] = os.path.abspath("./music") MUSIC_CACHE["music_ext"] = (".mp3", ".wav", ".p3") MUSIC_CACHE["refresh_time"] = 60 # 获取音乐文件列表 - MUSIC_CACHE["music_files"], MUSIC_CACHE["music_file_names"] = get_music_files(MUSIC_CACHE["music_dir"], - MUSIC_CACHE["music_ext"]) + MUSIC_CACHE["music_files"], MUSIC_CACHE["music_file_names"] = get_music_files( + MUSIC_CACHE["music_dir"], MUSIC_CACHE["music_ext"] + ) MUSIC_CACHE["scan_time"] = time.time() return MUSIC_CACHE @@ -135,15 +149,16 @@ async def handle_music_command(conn, text): global MUSIC_CACHE """处理音乐播放指令""" - clean_text = re.sub(r'[^\w\s]', '', text).strip() + clean_text = re.sub(r"[^\w\s]", "", text).strip() logger.bind(tag=TAG).debug(f"检查是否是音乐命令: {clean_text}") # 尝试匹配具体歌名 if os.path.exists(MUSIC_CACHE["music_dir"]): if time.time() - MUSIC_CACHE["scan_time"] > MUSIC_CACHE["refresh_time"]: # 刷新音乐文件列表 - MUSIC_CACHE["music_files"], MUSIC_CACHE["music_file_names"] = get_music_files(MUSIC_CACHE["music_dir"], - MUSIC_CACHE["music_ext"]) + MUSIC_CACHE["music_files"], MUSIC_CACHE["music_file_names"] = ( + get_music_files(MUSIC_CACHE["music_dir"], MUSIC_CACHE["music_ext"]) + ) MUSIC_CACHE["scan_time"] = time.time() potential_song = _extract_song_name(clean_text) @@ -158,6 +173,23 @@ async def handle_music_command(conn, text): return True +def _get_random_play_prompt(song_name): + """生成随机播放引导语""" + # 移除文件扩展名 + clean_name = os.path.splitext(song_name)[0] + prompts = [ + f"正在为您播放,{clean_name}", + f"请欣赏歌曲,{clean_name}", + f"即将为您播放,{clean_name}", + f"为您带来,{clean_name}", + f"让我们聆听,{clean_name}", + f"接下来请欣赏,{clean_name}", + f"为您献上,{clean_name}", + ] + # 直接使用random.choice,不设置seed + return random.choice(prompts) + + async def play_local_music(conn, specific_file=None): global MUSIC_CACHE """播放本地音乐文件""" @@ -180,16 +212,25 @@ async def play_local_music(conn, specific_file=None): if not os.path.exists(music_path): logger.bind(tag=TAG).error(f"选定的音乐文件不存在: {music_path}") return - text = f"正在播放{selected_music}" + text = _get_random_play_prompt(selected_music) await send_stt_message(conn, text) conn.tts_first_text_index = 0 conn.tts_last_text_index = 0 + + tts_file = await asyncio.to_thread(conn.tts.to_tts, text) + if tts_file is not None and os.path.exists(tts_file): + conn.tts_last_text_index = 1 + opus_packets, _ = conn.tts.audio_to_opus_data(tts_file) + conn.audio_play_queue.put((opus_packets, None, 0)) + os.remove(tts_file) + conn.llm_finish_task = True + if music_path.endswith(".p3"): - opus_packets, duration = p3.decode_opus_from_file(music_path) + opus_packets, _ = p3.decode_opus_from_file(music_path) else: - opus_packets, duration = conn.tts.audio_to_opus_data(music_path) - conn.audio_play_queue.put((opus_packets, selected_music, 0)) + opus_packets, _ = conn.tts.audio_to_opus_data(music_path) + conn.audio_play_queue.put((opus_packets, None, conn.tts_last_text_index)) except Exception as e: logger.bind(tag=TAG).error(f"播放音乐失败: {str(e)}") From 6282ef14e81e2adc6379b1c41998f80211315ffb Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Fri, 18 Apr 2025 00:37:40 +0800 Subject: [PATCH 02/74] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8D=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E5=8F=A5=E8=AF=9D=E6=98=AF=E9=BB=98=E8=AE=A4=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E7=9A=84bug=20(#873)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update: 增加对httpClient的统一管理 * update: 增加retry机制 * update: 增加retry机制 * fix:websocket连接后不说话的备用关闭方法 * fix:修复第一句话是默认配置的bug --------- Co-authored-by: haotian Co-authored-by: GoodyHao <865700600@qq.com> --- main/xiaozhi-server/core/connection.py | 64 +++++++++++++++++--------- 1 file changed, 43 insertions(+), 21 deletions(-) diff --git a/main/xiaozhi-server/core/connection.py b/main/xiaozhi-server/core/connection.py index b3a78ee2..56debead 100644 --- a/main/xiaozhi-server/core/connection.py +++ b/main/xiaozhi-server/core/connection.py @@ -159,8 +159,10 @@ class ConnectionHandler: self.welcome_msg["session_id"] = self.session_id await self.websocket.send(json.dumps(self.welcome_msg)) + # 获取差异化配置 + private_config = self._initialize_private_config() # 异步初始化 - self.executor.submit(self._initialize_components) + self.executor.submit(self._initialize_components, private_config) # tts 消化线程 self.tts_priority_thread = threading.Thread( target=self._tts_priority_thread, daemon=True @@ -210,12 +212,9 @@ class ConnectionHandler: elif isinstance(message, bytes): await handleAudioMessage(self, message) - def _initialize_components(self): + def _initialize_components(self, private_config): """初始化组件""" - self._initialize_models() - - """加载提示词""" - self.dialogue.put(Message(role="system", content=self.prompt)) + self._initialize_models(private_config) """加载记忆""" self._initialize_memory() @@ -229,20 +228,23 @@ class ConnectionHandler: self.dialogue.update_system_message(self.prompt) - def _initialize_models(self): + def _initialize_private_config(self): read_config_from_api = self.config.get("read_config_from_api", False) """如果是从配置文件获取,则进行二次实例化""" if not read_config_from_api: return """从接口获取差异化的配置进行二次实例化,非全量重新实例化""" try: + begin_time = time.time() private_config = get_private_config_from_api( self.config, self.headers.get("device-id", None), self.headers.get("client-id", None), ) private_config["delete_audio"] = bool(self.config.get("delete_audio", True)) - self.logger.bind(tag=TAG).info(f"获取差异化配置成功: {private_config}") + self.logger.bind(tag=TAG).info( + f"{time.time() - begin_time} 秒,获取差异化配置成功: {private_config}" + ) except DeviceNotFoundException as e: self.need_bind = True private_config = {} @@ -255,8 +257,37 @@ class ConnectionHandler: self.logger.bind(tag=TAG).error(f"获取差异化配置失败: {e}") private_config = {} - init_vad, init_asr, init_llm, init_tts, init_memory, init_intent = ( - False, + init_tts = False + if private_config.get("TTS", None) is not None: + init_tts = True + self.config["TTS"] = private_config["TTS"] + self.config["selected_module"]["TTS"] = private_config["selected_module"][ + "TTS" + ] + + try: + modules = initialize_modules( + self.logger, + private_config, + False, + False, + False, + init_tts, + False, + False, + ) + except Exception as e: + self.logger.bind(tag=TAG).error(f"初始化组件失败: {e}") + modules = {} + if modules.get("tts", None) is not None: + self.tts = modules["tts"] + if modules.get("prompt", None) is not None: + self.change_system_prompt(modules["prompt"]) + private_config["prompt"] = None + return private_config + + def _initialize_models(self, private_config): + init_vad, init_asr, init_llm, init_memory, init_intent = ( False, False, False, @@ -281,12 +312,7 @@ class ConnectionHandler: self.config["selected_module"]["LLM"] = private_config["selected_module"][ "LLM" ] - if private_config.get("TTS", None) is not None: - init_tts = True - self.config["TTS"] = private_config["TTS"] - self.config["selected_module"]["TTS"] = private_config["selected_module"][ - "TTS" - ] + if private_config.get("Memory", None) is not None: init_memory = True self.config["Memory"] = private_config["Memory"] @@ -306,7 +332,7 @@ class ConnectionHandler: init_vad, init_asr, init_llm, - init_tts, + False, init_memory, init_intent, ) @@ -317,16 +343,12 @@ class ConnectionHandler: self.vad = modules["vad"] if modules.get("asr", None) is not None: self.asr = modules["asr"] - if modules.get("tts", None) is not None: - self.tts = modules["tts"] if modules.get("llm", None) is not None: self.llm = modules["llm"] if modules.get("intent", None) is not None: self.intent = modules["intent"] if modules.get("memory", None) is not None: self.memory = modules["memory"] - if modules.get("prompt", None) is not None: - self.change_system_prompt(modules["prompt"]) def _initialize_memory(self): """初始化记忆模块""" From bd2e2e77d515090099bbac4aed405c84453bbbb8 Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Fri, 18 Apr 2025 00:51:09 +0800 Subject: [PATCH 03/74] =?UTF-8?q?update:=E6=9B=B4=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7=20(#874)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xiaozhi/modules/security/controller/LoginController.java | 2 +- main/xiaozhi-server/config.yaml | 4 ++-- main/xiaozhi-server/config/logger.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java b/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java index bced5518..68e84139 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java @@ -121,7 +121,7 @@ public class LoginController { @Operation(summary = "公共配置") public Result> pubConfig() { Map config = new HashMap<>(); - config.put("version", "0.3.5"); + config.put("version", "0.3.6"); config.put("allowUserRegister", sysUserService.getAllowUserRegister()); return new Result>().ok(config); } diff --git a/main/xiaozhi-server/config.yaml b/main/xiaozhi-server/config.yaml index 9649244b..0f694fba 100644 --- a/main/xiaozhi-server/config.yaml +++ b/main/xiaozhi-server/config.yaml @@ -147,7 +147,7 @@ selected_module: Memory: nomem # 意图识别模块开启后,可以播放音乐、控制音量、识别退出指令。 # 不想开通意图识别,就设置成:nointent - # 意图识别可使用intent_llm,如果你的LLM是DifyLLM或CozeLLM,建议使用这个。优点:通用性强,缺点:增加串行前置意图识别模块,会增加处理时间,这个意图识别暂时不支持控制音量大小等iot操作 + # 意图识别可使用intent_llm。优点:通用性强,缺点:增加串行前置意图识别模块,会增加处理时间,这个意图识别暂时不支持控制音量大小等iot操作 # 意图识别可使用function_call,缺点:需要所选择的LLM支持function_call,优点:按需调用工具、速度快,理论上能全部操作所有iot指令 # 默认免费的ChatGLMLLM就已经支持function_call,但是如果像追求稳定建议把LLM设置成:DoubaoLLM,使用的具体model_name是:doubao-pro-32k-functioncall-241028 Intent: function_call @@ -163,7 +163,7 @@ Intent: type: intent_llm # 配备意图识别独立的思考模型 # 如果这里不填,则会默认使用selected_module.LLM的模型作为意图识别的思考模型 - # 如果你的selected_module.LLM选择了DifyLLM或CozeLLM,这里最好使用独立的LLM作为意图识别,例如使用免费的ChatGLMLLM + # 如果你的不想使用selected_module.LLM意图识别,这里最好使用独立的LLM作为意图识别,例如使用免费的ChatGLMLLM llm: ChatGLMLLM function_call: # 不需要动type diff --git a/main/xiaozhi-server/config/logger.py b/main/xiaozhi-server/config/logger.py index 35c5b1ec..43342288 100644 --- a/main/xiaozhi-server/config/logger.py +++ b/main/xiaozhi-server/config/logger.py @@ -3,7 +3,7 @@ import sys from loguru import logger from config.config_loader import load_config -SERVER_VERSION = "0.3.5" +SERVER_VERSION = "0.3.6" def get_module_abbreviation(module_name, module_dict): From 1f836c32351a45ad741a15c2180a254ee3abc1c3 Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Fri, 18 Apr 2025 11:38:31 +0800 Subject: [PATCH 04/74] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E6=9C=AC=E5=9C=B0=E9=85=8D=E7=BD=AE=E6=97=B6=E5=BF=98?= =?UTF-8?q?=E8=AE=B0=E9=99=84=E5=B8=A6=E6=8F=90=E7=A4=BA=E8=AF=8D=20(#880)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/xiaozhi-server/core/connection.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/main/xiaozhi-server/core/connection.py b/main/xiaozhi-server/core/connection.py index 56debead..c77de638 100644 --- a/main/xiaozhi-server/core/connection.py +++ b/main/xiaozhi-server/core/connection.py @@ -214,8 +214,11 @@ class ConnectionHandler: def _initialize_components(self, private_config): """初始化组件""" - self._initialize_models(private_config) - + if private_config is not None: + self._initialize_models(private_config) + else: + self.prompt = self.config["prompt"] + self.change_system_prompt(self.prompt) """加载记忆""" self._initialize_memory() """加载意图识别""" From c74dbf03cd11f997bbf7cc4bab336949328100ef Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Fri, 18 Apr 2025 16:39:18 +0800 Subject: [PATCH 05/74] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8D=E6=84=8F?= =?UTF-8?q?=E5=9B=BE=E8=AF=86=E5=88=AB=E6=8F=92=E4=BB=B6=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E6=A0=BC=E5=BC=8Fbug=20(#885)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix:修复使用本地配置时忘记附带提示词 * fix:修复意图识别插件名称格式bug --- .../modules/config/service/impl/ConfigServiceImpl.java | 6 ++++++ .../src/main/resources/db/changelog/202504181534.sql | 2 ++ .../main/resources/db/changelog/db.changelog-master.yaml | 7 +++++++ 3 files changed, 15 insertions(+) create mode 100644 main/manager-api/src/main/resources/db/changelog/202504181534.sql diff --git a/main/manager-api/src/main/java/xiaozhi/modules/config/service/impl/ConfigServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/config/service/impl/ConfigServiceImpl.java index 44f19089..dd2a2881 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/config/service/impl/ConfigServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/config/service/impl/ConfigServiceImpl.java @@ -267,6 +267,12 @@ public class ConfigServiceImpl implements ConfigService { if (intentLLMModelId != null && intentLLMModelId.equals(llmModelId)) { intentLLMModelId = null; } + } else if ("function_call".equals(map.get("type"))) { + String functionStr = (String) map.get("functions"); + if (StringUtils.isNotBlank(functionStr)) { + String[] functions = functionStr.split("\\;"); + map.put("functions", functions); + } } } // 如果是LLM类型,且intentLLMModelId不为空,则添加附加模型 diff --git a/main/manager-api/src/main/resources/db/changelog/202504181534.sql b/main/manager-api/src/main/resources/db/changelog/202504181534.sql new file mode 100644 index 00000000..dcf7d336 --- /dev/null +++ b/main/manager-api/src/main/resources/db/changelog/202504181534.sql @@ -0,0 +1,2 @@ +delete from `ai_model_config` where id = 'Intent_function_call'; +INSERT INTO `ai_model_config` VALUES ('Intent_function_call', 'Intent', 'function_call', '函数调用意图识别', 0, 1, '{\"type\": \"function_call\", \"functions\": \"change_role;get_weather;get_news;play_music\"}', NULL, NULL, 3, NULL, NULL, NULL, NULL); diff --git a/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml b/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml index 178f9ebe..a2a322a8 100755 --- a/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml +++ b/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml @@ -58,3 +58,10 @@ databaseChangeLog: - sqlFile: encoding: utf8 path: classpath:db/changelog/202504151206.sql + - changeSet: + id: 202504181534 + author: John + changes: + - sqlFile: + encoding: utf8 + path: classpath:db/changelog/202504181534.sql \ No newline at end of file From 488f24774487440c3593c1f3bce749534157b550 Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Fri, 18 Apr 2025 23:39:56 +0800 Subject: [PATCH 06/74] =?UTF-8?q?update:=E5=A2=9E=E5=8A=A0=E5=8D=95?= =?UTF-8?q?=E5=8F=B0=E8=AE=BE=E5=A4=87=E6=AF=8F=E5=A4=A9=E6=9C=80=E5=A4=9A?= =?UTF-8?q?=E8=81=8A=E5=A4=A9=E5=AD=97=E6=95=B0=EF=BC=8C=E9=98=B2=E6=AD=A2?= =?UTF-8?q?=E8=A2=ABddos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 添加清空redis所有库的接口 --AdminController.java 添加了清除所有的接口 --RedisUtils.java 添加了清除redis所有key的方法,redisTemplate提供的清空方法已经被标记为弃用了,所有选择用执行lua脚本方式 * fix:修复使用本地配置时忘记附带提示词 * fix:修复意图识别插件名称格式bug * update:版本升级后强制刷新redis * update:增加单台设备每天最多聊天字数,防止被ddos --------- Co-authored-by: 剑雨 <2375294554@qq.com> --- .../xiaozhi/common/constant/Constant.java | 5 ++ .../java/xiaozhi/common/redis/RedisKeys.java | 7 +++ .../java/xiaozhi/common/redis/RedisUtils.java | 25 +++++++++- .../modules/config/init/SystemInitConfig.java | 15 ++++++ .../service/impl/ConfigServiceImpl.java | 5 +- .../security/controller/LoginController.java | 3 +- .../resources/db/changelog/202504181536.sql | 7 +++ .../db/changelog/db.changelog-master.yaml | 4 +- main/xiaozhi-server/core/connection.py | 7 ++- .../core/handle/receiveAudioHandle.py | 23 ++++++++- .../core/utils/output_counter.py | 50 +++++++++++++++++++ 11 files changed, 144 insertions(+), 7 deletions(-) create mode 100644 main/manager-api/src/main/resources/db/changelog/202504181536.sql create mode 100644 main/xiaozhi-server/core/utils/output_counter.py diff --git a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java index 1ff70fd4..522ceb27 100644 --- a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java +++ b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java @@ -163,4 +163,9 @@ public interface Constant { return value; } } + + /** + * 版本号 + */ + public static final String VERSION = "0.3.6"; } \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/common/redis/RedisKeys.java b/main/manager-api/src/main/java/xiaozhi/common/redis/RedisKeys.java index 7bc0c48d..8c266ce4 100644 --- a/main/manager-api/src/main/java/xiaozhi/common/redis/RedisKeys.java +++ b/main/manager-api/src/main/java/xiaozhi/common/redis/RedisKeys.java @@ -75,4 +75,11 @@ public class RedisKeys { public static String getTimbreDetailsKey(String id) { return "timbre:details:" + id; } + + /** + * 获取版本号Key + */ + public static String getVersionKey() { + return "system:version"; + } } diff --git a/main/manager-api/src/main/java/xiaozhi/common/redis/RedisUtils.java b/main/manager-api/src/main/java/xiaozhi/common/redis/RedisUtils.java index 240e1339..9115e806 100644 --- a/main/manager-api/src/main/java/xiaozhi/common/redis/RedisUtils.java +++ b/main/manager-api/src/main/java/xiaozhi/common/redis/RedisUtils.java @@ -1,11 +1,14 @@ package xiaozhi.common.redis; import java.util.Collection; +import java.util.Collections; +import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.script.DefaultRedisScript; import org.springframework.stereotype.Component; import jakarta.annotation.Resource; @@ -27,7 +30,7 @@ public class RedisUtils { /** * 过期时长为1小时,单位:秒 */ - public final static long HOUR_ONE_EXPIRE = 60 * 60 * 1L; + public final static long HOUR_ONE_EXPIRE = (long) 60 * 60; /** * 过期时长为6小时,单位:秒 */ @@ -124,4 +127,24 @@ public class RedisUtils { public Object rightPop(String key) { return redisTemplate.opsForList().rightPop(key); } + + + /** + * 清空所有 Redis 数据库中的所有键 + */ + public void emptyAll() { + // Lua 脚本 FLUSHALL是redis清空所有库的命令 + String luaScript ="redis.call('FLUSHALL')"; + + // 创建 DefaultRedisScript 对象 + DefaultRedisScript redisScript = new DefaultRedisScript<>(); + redisScript.setScriptText(luaScript); // 设置 Lua 脚本内容 + redisScript.setResultType(Void.class); // 设置返回值类型 + + // 执行 Lua 脚本 + List keys = Collections.emptyList(); // 如果脚本不依赖 key,可以传入空列表 + redisTemplate.execute(redisScript, keys); + + } + } \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/modules/config/init/SystemInitConfig.java b/main/manager-api/src/main/java/xiaozhi/modules/config/init/SystemInitConfig.java index a8e3794e..e47cd0c7 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/config/init/SystemInitConfig.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/config/init/SystemInitConfig.java @@ -5,6 +5,9 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.DependsOn; import jakarta.annotation.PostConstruct; +import xiaozhi.common.constant.Constant; +import xiaozhi.common.redis.RedisKeys; +import xiaozhi.common.redis.RedisUtils; import xiaozhi.modules.config.service.ConfigService; import xiaozhi.modules.sys.service.SysParamsService; @@ -18,8 +21,20 @@ public class SystemInitConfig { @Autowired private ConfigService configService; + @Autowired + private RedisUtils redisUtils; + @PostConstruct public void init() { + // 检查版本号 + String redisVersion = (String) redisUtils.get(RedisKeys.getVersionKey()); + if (!Constant.VERSION.equals(redisVersion)) { + // 如果版本不一致,清空Redis + redisUtils.emptyAll(); + // 存储新版本号 + redisUtils.set(RedisKeys.getVersionKey(), Constant.VERSION); + } + sysParamsService.initServerSecret(); configService.getConfig(false); } diff --git a/main/manager-api/src/main/java/xiaozhi/modules/config/service/impl/ConfigServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/config/service/impl/ConfigServiceImpl.java index dd2a2881..f7c06fdb 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/config/service/impl/ConfigServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/config/service/impl/ConfigServiceImpl.java @@ -91,6 +91,7 @@ public class ConfigServiceImpl implements ConfigService { } throw new RenException(ErrorCode.OTA_DEVICE_NOT_FOUND, "not found device"); } + // 获取智能体信息 AgentEntity agent = agentService.getAgentById(device.getAgentId()); if (agent == null) { @@ -104,7 +105,9 @@ public class ConfigServiceImpl implements ConfigService { } // 构建返回数据 Map result = new HashMap<>(); - + // 获取单台设备每天最多输出字数 + String deviceMaxOutputSize = sysParamsService.getValue("device_max_output_size", true); + result.put("device_max_output_size", deviceMaxOutputSize); // 如果客户端已实例化模型,则不返回 String alreadySelectedVadModelId = (String) selectedModule.get("VAD"); if (alreadySelectedVadModelId != null && alreadySelectedVadModelId.equals(agent.getVadModelId())) { diff --git a/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java b/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java index 68e84139..7cbaa8af 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/security/controller/LoginController.java @@ -15,6 +15,7 @@ import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.servlet.http.HttpServletResponse; import lombok.AllArgsConstructor; +import xiaozhi.common.constant.Constant; import xiaozhi.common.exception.ErrorCode; import xiaozhi.common.exception.RenException; import xiaozhi.common.page.TokenDTO; @@ -121,7 +122,7 @@ public class LoginController { @Operation(summary = "公共配置") public Result> pubConfig() { Map config = new HashMap<>(); - config.put("version", "0.3.6"); + config.put("version", Constant.VERSION); config.put("allowUserRegister", sysUserService.getAllowUserRegister()); return new Result>().ok(config); } diff --git a/main/manager-api/src/main/resources/db/changelog/202504181536.sql b/main/manager-api/src/main/resources/db/changelog/202504181536.sql new file mode 100644 index 00000000..327aa605 --- /dev/null +++ b/main/manager-api/src/main/resources/db/changelog/202504181536.sql @@ -0,0 +1,7 @@ +-- 调整意图识别配置 +delete from `ai_model_config` where id = 'Intent_function_call'; +INSERT INTO `ai_model_config` VALUES ('Intent_function_call', 'Intent', 'function_call', '函数调用意图识别', 0, 1, '{\"type\": \"function_call\", \"functions\": \"change_role;get_weather;get_news;play_music\"}', NULL, NULL, 3, NULL, NULL, NULL, NULL); + +-- 增加单台设备每天最多聊天句数 +delete from `sys_params` where id = 105; +INSERT INTO `sys_params` (id, param_code, param_value, value_type, param_type, remark) VALUES (105, 'device_max_output_size', '0', 'number', 1, '单台设备每天最多输出字数,0表示不限制'); \ No newline at end of file diff --git a/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml b/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml index a2a322a8..09136dc4 100755 --- a/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml +++ b/main/manager-api/src/main/resources/db/changelog/db.changelog-master.yaml @@ -59,9 +59,9 @@ databaseChangeLog: encoding: utf8 path: classpath:db/changelog/202504151206.sql - changeSet: - id: 202504181534 + id: 202504181536 author: John changes: - sqlFile: encoding: utf8 - path: classpath:db/changelog/202504181534.sql \ No newline at end of file + path: classpath:db/changelog/202504181536.sql diff --git a/main/xiaozhi-server/core/connection.py b/main/xiaozhi-server/core/connection.py index c77de638..6b2de546 100644 --- a/main/xiaozhi-server/core/connection.py +++ b/main/xiaozhi-server/core/connection.py @@ -29,6 +29,7 @@ from core.auth import AuthMiddleware, AuthenticationError from core.mcp.manager import MCPManager from config.config_loader import get_private_config_from_api from config.manage_api_client import DeviceNotFoundException, DeviceBindException +from core.utils.output_counter import add_device_output TAG = __name__ @@ -57,6 +58,7 @@ class ConnectionHandler: self.session_id = None self.prompt = None self.welcome_msg = None + self.max_output_size = 0 # 客户端状态相关 self.client_abort = False @@ -315,7 +317,6 @@ class ConnectionHandler: self.config["selected_module"]["LLM"] = private_config["selected_module"][ "LLM" ] - if private_config.get("Memory", None) is not None: init_memory = True self.config["Memory"] = private_config["Memory"] @@ -328,6 +329,8 @@ class ConnectionHandler: self.config["selected_module"]["Intent"] = private_config[ "selected_module" ]["Intent"] + if private_config.get("device_max_output_size", None) is not None: + self.max_output_size = int(private_config["device_max_output_size"]) try: modules = initialize_modules( self.logger, @@ -845,6 +848,8 @@ class ConnectionHandler: self.logger.bind(tag=TAG).error(f"tts转换失败,{text}") return None, text, text_index self.logger.bind(tag=TAG).debug(f"TTS 文件生成完毕: {tts_file}") + if self.max_output_size > 0: + add_device_output(self.headers.get("device-id"), len(text)) return tts_file, text, text_index def clearSpeakStatus(self): diff --git a/main/xiaozhi-server/core/handle/receiveAudioHandle.py b/main/xiaozhi-server/core/handle/receiveAudioHandle.py index 09f342dc..485544f7 100644 --- a/main/xiaozhi-server/core/handle/receiveAudioHandle.py +++ b/main/xiaozhi-server/core/handle/receiveAudioHandle.py @@ -1,9 +1,9 @@ from config.logger import setup_logging import time -import asyncio from core.utils.util import remove_punctuation_and_length from core.handle.sendAudioHandle import send_stt_message from core.handle.intentHandler import handle_user_intent +from core.utils.output_counter import check_device_output_limit TAG = __name__ logger = setup_logging() @@ -51,6 +51,15 @@ async def startToChat(conn, text): if conn.need_bind: await check_bind_device(conn) return + + # 如果当日的输出字数大于限定的字数 + if conn.max_output_size > 0: + if check_device_output_limit( + conn.headers.get("device-id"), conn.max_output_size + ): + await max_out_size(conn) + return + # 首先进行意图分析 intent_handled = await handle_user_intent(conn, text) @@ -89,6 +98,18 @@ async def no_voice_close_connect(conn): await startToChat(conn, prompt) +async def max_out_size(conn): + text = "不好意思,我现在有点事情要忙,明天这个时候我们再聊,约好了哦!明天不见不散,拜拜!" + await send_stt_message(conn, text) + conn.tts_first_text_index = 0 + conn.tts_last_text_index = 0 + conn.llm_finish_task = True + file_path = "config/assets/max_output_size.wav" + opus_packets, _ = conn.tts.audio_to_opus_data(file_path) + conn.audio_play_queue.put((opus_packets, text, 0)) + conn.close_after_chat = True + + async def check_bind_device(conn): if conn.bind_code: # 确保bind_code是6位数字 diff --git a/main/xiaozhi-server/core/utils/output_counter.py b/main/xiaozhi-server/core/utils/output_counter.py new file mode 100644 index 00000000..1e7ae8df --- /dev/null +++ b/main/xiaozhi-server/core/utils/output_counter.py @@ -0,0 +1,50 @@ +import datetime +from typing import Dict, Tuple + +# 全局字典,用于存储每个设备的每日输出字数 +_device_daily_output: Dict[Tuple[str, datetime.date], int] = {} +# 记录最后一次检查的日期 +_last_check_date: datetime.date = None + + +def reset_device_output(): + """ + 重置所有设备的每日输出字数 + 每天0点调用此函数 + """ + _device_daily_output.clear() + + +def get_device_output(device_id: str) -> int: + """ + 获取设备当日的输出字数 + """ + current_date = datetime.datetime.now().date() + return _device_daily_output.get((device_id, current_date), 0) + + +def add_device_output(device_id: str, char_count: int): + """ + 增加设备的输出字数 + """ + current_date = datetime.datetime.now().date() + global _last_check_date + + # 如果是第一次调用或者日期发生变化,清空计数器 + if _last_check_date is None or _last_check_date != current_date: + _device_daily_output.clear() + _last_check_date = current_date + + current_count = _device_daily_output.get((device_id, current_date), 0) + _device_daily_output[(device_id, current_date)] = current_count + char_count + + +def check_device_output_limit(device_id: str, max_output_size: int) -> bool: + """ + 检查设备是否超过输出限制 + :return: True 如果超过限制,False 如果未超过 + """ + if not device_id: + return False + current_output = get_device_output(device_id) + return current_output >= max_output_size From 098d13a34bab33ce7af364383f60395ac02ef3de Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Sat, 19 Apr 2025 00:11:12 +0800 Subject: [PATCH 07/74] =?UTF-8?q?update:=E6=9B=B4=E6=96=B00.3.7=20(#892)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/xiaozhi/common/constant/Constant.java | 2 +- main/xiaozhi-server/config/logger.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java index 522ceb27..07f560f5 100644 --- a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java +++ b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java @@ -167,5 +167,5 @@ public interface Constant { /** * 版本号 */ - public static final String VERSION = "0.3.6"; + public static final String VERSION = "0.3.7"; } \ No newline at end of file diff --git a/main/xiaozhi-server/config/logger.py b/main/xiaozhi-server/config/logger.py index 43342288..c02f1e7d 100644 --- a/main/xiaozhi-server/config/logger.py +++ b/main/xiaozhi-server/config/logger.py @@ -3,7 +3,7 @@ import sys from loguru import logger from config.config_loader import load_config -SERVER_VERSION = "0.3.6" +SERVER_VERSION = "0.3.7" def get_module_abbreviation(module_name, module_dict): From 14a63c4b97a0640dc322e50d181f45eabb7d3ddd Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Sat, 19 Apr 2025 13:24:03 +0800 Subject: [PATCH 08/74] =?UTF-8?q?update=EF=BC=9A=E8=A1=A5=E9=BD=90ddos?= =?UTF-8?q?=E6=94=BB=E5=87=BB=E6=8F=90=E7=A4=BA=E9=9F=B3=20(#896)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../config/assets/max_output_size.wav | Bin 0 -> 312456 bytes 2 files changed, 1 insertion(+) create mode 100644 main/xiaozhi-server/config/assets/max_output_size.wav diff --git a/.gitignore b/.gitignore index 9a07f445..ddcb065e 100644 --- a/.gitignore +++ b/.gitignore @@ -158,6 +158,7 @@ my_wakeup_words.mp3 !main/xiaozhi-server/config/assets/bind_code.wav !main/xiaozhi-server/config/assets/bind_not_found.wav !main/xiaozhi-server/config/assets/bind_code/*.wav +!main/xiaozhi-server/config/assets/max_output_size.wav main/manager-api/.vscode # Ignore webpack cache directory diff --git a/main/xiaozhi-server/config/assets/max_output_size.wav b/main/xiaozhi-server/config/assets/max_output_size.wav new file mode 100644 index 0000000000000000000000000000000000000000..9b5177d10d91497b384d9f8b32a6ddd317a2101a GIT binary patch literal 312456 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�!r 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 literal 0 HcmV?d00001 From 6c04a6cf698f4ff314b3b807ac0b4ab25cb4181a Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Sun, 20 Apr 2025 01:28:01 +0800 Subject: [PATCH 09/74] =?UTF-8?q?update:Server=E7=AB=AF=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=E8=80=81=E8=AE=BE=E5=A4=87=E7=BC=BA=E5=A4=B1"client-id"?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E5=A4=B4=20(#902)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update:Server端兼容老设备缺失"client-id"请求头 * update:优化iot日志 * update:绑定设备时,板子类型优先获取品牌商版名称 --- .../service/impl/DeviceServiceImpl.java | 5 +- main/xiaozhi-server/core/connection.py | 6 +- .../core/handle/functionHandler.py | 2 +- main/xiaozhi-server/core/handle/iotHandle.py | 87 ++++++++++++------- 4 files changed, 61 insertions(+), 39 deletions(-) diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java index 71531c76..2f90a102 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java @@ -260,8 +260,9 @@ public class DeviceServiceImpl extends BaseServiceImpl dataMap.put("id", deviceId); dataMap.put("mac_address", deviceId); - dataMap.put("board", (deviceReport.getChipModelName() != null) ? deviceReport.getChipModelName() - : (deviceReport.getBoard() != null ? deviceReport.getBoard().getType() : "unknown")); + dataMap.put("board", (deviceReport.getBoard() != null && deviceReport.getBoard().getType() != null) + ? deviceReport.getBoard().getType() + : (deviceReport.getChipModelName() != null ? deviceReport.getChipModelName() : "unknown")); dataMap.put("app_version", (deviceReport.getApplication() != null) ? deviceReport.getApplication().getVersion() : null); diff --git a/main/xiaozhi-server/core/connection.py b/main/xiaozhi-server/core/connection.py index 6b2de546..5bf7540b 100644 --- a/main/xiaozhi-server/core/connection.py +++ b/main/xiaozhi-server/core/connection.py @@ -243,8 +243,8 @@ class ConnectionHandler: begin_time = time.time() private_config = get_private_config_from_api( self.config, - self.headers.get("device-id", None), - self.headers.get("client-id", None), + self.headers.get("device-id"), + self.headers.get("client-id", self.headers.get("device-id")), ) private_config["delete_audio"] = bool(self.config.get("delete_audio", True)) self.logger.bind(tag=TAG).info( @@ -622,7 +622,7 @@ class ConnectionHandler: ) if not bHasError: response_message.clear() - self.logger.bind(tag=TAG).info( + self.logger.bind(tag=TAG).debug( f"function_name={function_name}, function_id={function_id}, function_arguments={function_arguments}" ) function_call_data = { diff --git a/main/xiaozhi-server/core/handle/functionHandler.py b/main/xiaozhi-server/core/handle/functionHandler.py index d1bf9b44..77d22bb9 100644 --- a/main/xiaozhi-server/core/handle/functionHandler.py +++ b/main/xiaozhi-server/core/handle/functionHandler.py @@ -79,7 +79,7 @@ class FunctionHandler: func = funcItem.func arguments = function_call_data["arguments"] arguments = json.loads(arguments) if arguments else {} - logger.bind(tag=TAG).info(f"调用函数: {function_name}, 参数: {arguments}") + logger.bind(tag=TAG).debug(f"调用函数: {function_name}, 参数: {arguments}") if ( funcItem.type == ToolType.SYSTEM_CTL or funcItem.type == ToolType.IOT_CTL diff --git a/main/xiaozhi-server/core/handle/iotHandle.py b/main/xiaozhi-server/core/handle/iotHandle.py index edb7d338..c6d9f4d1 100644 --- a/main/xiaozhi-server/core/handle/iotHandle.py +++ b/main/xiaozhi-server/core/handle/iotHandle.py @@ -57,7 +57,7 @@ def create_iot_function(device_name, method_name, method_info): response_failure = "操作失败" # 打印响应参数 - logger.bind(tag=TAG).info( + logger.bind(tag=TAG).debug( f"控制函数接收到的响应参数: success='{response_success}', failure='{response_failure}'" ) @@ -146,7 +146,7 @@ class IotDescriptor: # 根据描述创建属性 if properties is not None: for key, value in properties.items(): - property_item = globals()[key] = {} + property_item = {} property_item["name"] = key property_item["description"] = value["description"] if value["type"] == "number": @@ -160,18 +160,17 @@ class IotDescriptor: # 根据描述创建方法 if methods is not None: for key, value in methods.items(): - method = globals()[key] = {} + method = {} method["description"] = value["description"] method["name"] = key - for k, v in value["parameters"].items(): - method[k] = {} - method[k]["description"] = v["description"] - if v["type"] == "number": - method[k]["value"] = 0 - elif v["type"] == "boolean": - method[k]["value"] = False - else: - method[k]["value"] = "" + # 检查方法是否有参数 + if "parameters" in value: + method["parameters"] = {} + for k, v in value["parameters"].items(): + method["parameters"][k] = { + "description": v["description"], + "type": v["type"], + } self.methods.append(method) @@ -221,13 +220,19 @@ def register_device_type(descriptor): func_name = f"{device_name.lower()}_{method_name.lower()}" # 创建参数字典,添加原有参数 - parameters = { - param_name: { - "type": param_info["type"], - "description": param_info["description"], + parameters = {} + required_params = [] + + # 如果方法有参数,则添加参数信息 + if "parameters" in method_info: + parameters = { + param_name: { + "type": param_info["type"], + "description": param_info["description"], + } + for param_name, param_info in method_info["parameters"].items() } - for param_name, param_info in method_info["parameters"].items() - } + required_params = list(method_info["parameters"].keys()) # 添加响应参数 parameters.update( @@ -244,7 +249,6 @@ def register_device_type(descriptor): ) # 构建必须参数列表(原有参数 + 响应参数) - required_params = list(method_info["parameters"].keys()) required_params.extend(["response_success", "response_failure"]) func_desc = { @@ -282,6 +286,25 @@ async def handleIotDescriptors(conn, descriptors): functions_changed = False for descriptor in descriptors: + + # 如果descriptor没有properties和methods,则直接跳过 + if "properties" not in descriptor and "methods" not in descriptor: + continue + + # 处理缺失properties的情况 + if "properties" not in descriptor: + descriptor["properties"] = {} + # 从methods中提取所有参数作为properties + if "methods" in descriptor: + for method_name, method_info in descriptor["methods"].items(): + if "parameters" in method_info: + for param_name, param_info in method_info["parameters"].items(): + # 将参数信息转换为属性信息 + descriptor["properties"][param_name] = { + "description": param_info["description"], + "type": param_info["type"], + } + # 创建IOT设备描述符 iot_descriptor = IotDescriptor( descriptor["name"], @@ -375,19 +398,17 @@ async def send_iot_conn(conn, name, method_name, parameters): for method in value.methods: # 找到了方法 if method["name"] == method_name: - await conn.websocket.send( - json.dumps( - { - "type": "iot", - "commands": [ - { - "name": name, - "method": method_name, - "parameters": parameters, - } - ], - } - ) - ) + # 构建命令对象 + command = { + "name": name, + "method": method_name, + } + + # 只有当参数不为空时才添加parameters字段 + if parameters: + command["parameters"] = parameters + send_message = json.dumps({"type": "iot", "commands": [command]}) + await conn.websocket.send(send_message) + logger.bind(tag=TAG).info(f"发送物联网指令: {send_message}") return logger.bind(tag=TAG).error(f"未找到方法{method_name}") From 8b9174b67ed36caa5c8fd644f8caf6922a925cf9 Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Sun, 20 Apr 2025 01:40:21 +0800 Subject: [PATCH 10/74] =?UTF-8?q?update:=E7=BB=91=E5=AE=9A=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E6=97=B6=EF=BC=8C=E6=9D=BF=E5=AD=90=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E4=BC=98=E5=85=88=E8=8E=B7=E5=8F=96=E5=93=81=E7=89=8C=E5=95=86?= =?UTF-8?q?=E7=89=88=E5=90=8D=E7=A7=B0=20(#903)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update:Server端兼容老设备缺失"client-id"请求头 * update:优化iot日志 * update:绑定设备时,板子类型优先获取品牌商版名称 * update:更新版本号 --- .../src/main/java/xiaozhi/common/constant/Constant.java | 2 +- main/xiaozhi-server/config/logger.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java index 07f560f5..d5e600f9 100644 --- a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java +++ b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java @@ -167,5 +167,5 @@ public interface Constant { /** * 版本号 */ - public static final String VERSION = "0.3.7"; + public static final String VERSION = "0.3.8"; } \ No newline at end of file diff --git a/main/xiaozhi-server/config/logger.py b/main/xiaozhi-server/config/logger.py index c02f1e7d..519bc73f 100644 --- a/main/xiaozhi-server/config/logger.py +++ b/main/xiaozhi-server/config/logger.py @@ -3,7 +3,7 @@ import sys from loguru import logger from config.config_loader import load_config -SERVER_VERSION = "0.3.7" +SERVER_VERSION = "0.3.8" def get_module_abbreviation(module_name, module_dict): From bc99341f85657c6d3ee1271dbdc44b0054721e20 Mon Sep 17 00:00:00 2001 From: hrz <1710360675@qq.com> Date: Sun, 20 Apr 2025 21:15:00 +0800 Subject: [PATCH 11/74] Merge pull request #909 from xinnan-tech/ota-activate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit update:输入验证码后设备端快速刷新结果 --- .../xiaozhi/common/constant/Constant.java | 2 +- .../device/controller/OTAController.java | 26 ++++++++++++++++--- .../device/dto/DeviceReportRespDTO.java | 2 ++ .../service/impl/DeviceServiceImpl.java | 2 ++ main/xiaozhi-server/config/logger.py | 2 +- 5 files changed, 29 insertions(+), 5 deletions(-) diff --git a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java index d5e600f9..6f9dca2f 100644 --- a/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java +++ b/main/manager-api/src/main/java/xiaozhi/common/constant/Constant.java @@ -167,5 +167,5 @@ public interface Constant { /** * 版本号 */ - public static final String VERSION = "0.3.8"; + public static final String VERSION = "0.3.9"; } \ No newline at end of file diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/controller/OTAController.java b/main/manager-api/src/main/java/xiaozhi/modules/device/controller/OTAController.java index 30f30b53..e18439a1 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/device/controller/OTAController.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/controller/OTAController.java @@ -15,25 +15,29 @@ import org.springframework.web.bind.annotation.RestController; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; +import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; +import lombok.extern.slf4j.Slf4j; import xiaozhi.modules.device.dto.DeviceReportReqDTO; import xiaozhi.modules.device.dto.DeviceReportRespDTO; +import xiaozhi.modules.device.entity.DeviceEntity; import xiaozhi.modules.device.service.DeviceService; import xiaozhi.modules.device.utils.NetworkUtil; @Tag(name = "设备管理", description = "OTA 相关接口") +@Slf4j @RestController @RequiredArgsConstructor @RequestMapping("/ota/") public class OTAController { private final DeviceService deviceService; - @Operation(summary = "检查 OTA 版本和设备激活状态") + @Operation(summary = "OTA版本和设备激活状态检查") @PostMapping public ResponseEntity checkOTAVersion( @RequestBody DeviceReportReqDTO deviceReportReqDTO, @@ -54,9 +58,25 @@ public class OTAController { return createResponse(deviceService.checkDeviceActive(macAddress, clientId, deviceReportReqDTO)); } + @Operation(summary = "设备快速检查激活状态") + @PostMapping("activate") + public ResponseEntity activateDevice( + @Parameter(name = "Device-Id", description = "设备唯一标识", required = true, in = ParameterIn.HEADER) @RequestHeader("Device-Id") String deviceId, + @Parameter(name = "Client-Id", description = "客户端标识", required = false, in = ParameterIn.HEADER) @RequestHeader(value = "Client-Id", required = false) String clientId) { + if (StringUtils.isBlank(deviceId)) { + return ResponseEntity.status(202).build(); + } + DeviceEntity device = deviceService.getDeviceByMacAddress(deviceId); + if (device == null) { + return ResponseEntity.status(202).build(); + } + return ResponseEntity.ok("success"); + } + @GetMapping - public ResponseEntity getOTAPrompt() { - return createResponse(DeviceReportRespDTO.createError("请提交正确的ota参数")); + @Hidden + public ResponseEntity getOTA() { + return ResponseEntity.ok("OTA接口运行正常"); } @SneakyThrows diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/dto/DeviceReportRespDTO.java b/main/manager-api/src/main/java/xiaozhi/modules/device/dto/DeviceReportRespDTO.java index 9f93a9b7..d7e10792 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/device/dto/DeviceReportRespDTO.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/dto/DeviceReportRespDTO.java @@ -44,6 +44,8 @@ public class DeviceReportRespDTO { @Schema(description = "激活码信息: 激活地址") private String message; + @Schema(description = "挑战码") + private String challenge; } @Getter diff --git a/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java b/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java index 2f90a102..aef15749 100644 --- a/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java +++ b/main/manager-api/src/main/java/xiaozhi/modules/device/service/impl/DeviceServiceImpl.java @@ -251,10 +251,12 @@ public class DeviceServiceImpl extends BaseServiceImpl if (StringUtils.isNotBlank(cachedCode)) { code.setCode(cachedCode); code.setMessage(frontedUrl + "\n" + cachedCode); + code.setChallenge(deviceId); } else { String newCode = RandomUtil.randomNumbers(6); code.setCode(newCode); code.setMessage(frontedUrl + "\n" + newCode); + code.setChallenge(deviceId); Map dataMap = new HashMap<>(); dataMap.put("id", deviceId); diff --git a/main/xiaozhi-server/config/logger.py b/main/xiaozhi-server/config/logger.py index 519bc73f..5e933584 100644 --- a/main/xiaozhi-server/config/logger.py +++ b/main/xiaozhi-server/config/logger.py @@ -3,7 +3,7 @@ import sys from loguru import logger from config.config_loader import load_config -SERVER_VERSION = "0.3.8" +SERVER_VERSION = "0.3.9" def get_module_abbreviation(module_name, module_dict): From 5904ee15716ef1587152a84bd3e4f64f598bf9e7 Mon Sep 17 00:00:00 2001 From: CGD <3030332422@qq.com> Date: Mon, 21 Apr 2025 10:02:50 +0800 Subject: [PATCH 12/74] =?UTF-8?q?update:=E6=B7=BB=E5=8A=A0=E2=80=9C?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E9=85=8D=E7=BD=AE=E2=80=9D=E3=80=81=E2=80=9C?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86=E2=80=9D=E3=80=81=E2=80=9C?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E7=AE=A1=E7=90=86=E2=80=9D=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E2=80=9C=E8=8E=B7=E5=8F=96=E5=88=97=E8=A1=A8=E2=80=9D=E6=97=B6?= =?UTF-8?q?=E7=9A=84=E5=8A=A0=E8=BD=BD=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/manager-web/src/views/ModelConfig.vue | 38 ++++++++- .../src/views/ParamsManagement.vue | 77 +++++++++++++------ main/manager-web/src/views/UserManagement.vue | 62 ++++++++++----- 3 files changed, 132 insertions(+), 45 deletions(-) diff --git a/main/manager-web/src/views/ModelConfig.vue b/main/manager-web/src/views/ModelConfig.vue index dbcd2b1f..7c158001 100644 --- a/main/manager-web/src/views/ModelConfig.vue +++ b/main/manager-web/src/views/ModelConfig.vue @@ -44,9 +44,19 @@