From ef3b3732113ce92308058206585f2db6aa070e61 Mon Sep 17 00:00:00 2001 From: Sakura-RanChen <1908198662@qq.com> Date: Wed, 18 Jun 2025 11:06:11 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=E8=B1=86=E5=8C=85=E6=B5=81=E5=BC=8F?= =?UTF-8?q?decode=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/xiaozhi-server/core/providers/asr/doubao_stream.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/main/xiaozhi-server/core/providers/asr/doubao_stream.py b/main/xiaozhi-server/core/providers/asr/doubao_stream.py index f532ff27..08126511 100644 --- a/main/xiaozhi-server/core/providers/asr/doubao_stream.py +++ b/main/xiaozhi-server/core/providers/asr/doubao_stream.py @@ -309,9 +309,10 @@ class ASRProvider(ASRProviderBase): # 如果是错误响应 if message_type == 0x0F: # SERVER_ERROR_RESPONSE - code = int.from_bytes(header[4:8], "big", signed=False) - error_msg = res[8:].decode("utf-8") - return {"code": code, "error": error_msg} + code = int.from_bytes(res[4:8], "big", signed=False) + msg_length = int.from_bytes(res[8:12], "big", signed=False) + error_msg = res[12:].decode("utf-8") + return {"code": code, "msg_length": msg_length, "error": error_msg} # 获取JSON数据(跳过12字节头部) try: From ebf68929ce99d281d2840577eb5ea4cc44884846 Mon Sep 17 00:00:00 2001 From: Sakura-RanChen <1908198662@qq.com> Date: Wed, 18 Jun 2025 14:03:18 +0800 Subject: [PATCH 2/3] =?UTF-8?q?update:=20=E9=94=99=E8=AF=AF=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E8=AF=BB=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/xiaozhi-server/core/providers/asr/doubao_stream.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/main/xiaozhi-server/core/providers/asr/doubao_stream.py b/main/xiaozhi-server/core/providers/asr/doubao_stream.py index 08126511..5c91eec3 100644 --- a/main/xiaozhi-server/core/providers/asr/doubao_stream.py +++ b/main/xiaozhi-server/core/providers/asr/doubao_stream.py @@ -93,9 +93,7 @@ class ASRProvider(ASRProviderBase): # 检查初始化响应 if "code" in result and result["code"] != 1000: - error_msg = f"ASR服务初始化失败: {result.get('payload_msg', {}).get('message', '未知错误')}" - if "payload_msg" in result: - error_msg += f"\n详细错误信息: {json.dumps(result['payload_msg'], ensure_ascii=False)}" + error_msg = f"ASR服务初始化失败: {result.get('payload_msg', {}).get('error', '未知错误')}" logger.bind(tag=TAG).error(error_msg) raise Exception(error_msg) @@ -311,8 +309,8 @@ class ASRProvider(ASRProviderBase): if message_type == 0x0F: # SERVER_ERROR_RESPONSE code = int.from_bytes(res[4:8], "big", signed=False) msg_length = int.from_bytes(res[8:12], "big", signed=False) - error_msg = res[12:].decode("utf-8") - return {"code": code, "msg_length": msg_length, "error": error_msg} + error_msg = json.loads(res[12:].decode("utf-8")) + return {"code": code, "msg_length": msg_length, "payload_msg": error_msg} # 获取JSON数据(跳过12字节头部) try: From 0a5ae70a7c5db0dbafdc1508b872d86e4532d486 Mon Sep 17 00:00:00 2001 From: Sakura-RanChen <1908198662@qq.com> Date: Wed, 18 Jun 2025 16:32:58 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/providers/memory/mem_local_short/mem_local_short.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/main/xiaozhi-server/core/providers/memory/mem_local_short/mem_local_short.py b/main/xiaozhi-server/core/providers/memory/mem_local_short/mem_local_short.py index 9f855cc6..236f3e7f 100644 --- a/main/xiaozhi-server/core/providers/memory/mem_local_short/mem_local_short.py +++ b/main/xiaozhi-server/core/providers/memory/mem_local_short/mem_local_short.py @@ -5,6 +5,7 @@ import os import yaml from config.config_loader import get_project_dir from config.manage_api_client import save_mem_local_short +from core.utils.util import check_model_key short_term_memory_prompt = """ @@ -145,6 +146,10 @@ class MemoryProvider(MemoryProviderBase): # 打印使用的模型信息 model_info = getattr(self.llm, "model_name", str(self.llm.__class__.__name__)) logger.bind(tag=TAG).debug(f"使用记忆保存模型: {model_info}") + api_key = getattr(self.llm, "api_key", None) + memory_key_msg = check_model_key("记忆总结专用LLM", api_key) + if memory_key_msg: + logger.bind(tag=TAG).error(memory_key_msg) if self.llm is None: logger.bind(tag=TAG).error("LLM is not set for memory provider") return None