diff --git a/src/chat/message_receive/chat_stream.py b/src/chat/message_receive/chat_stream.py index 782ff757b..4e583e8e7 100644 --- a/src/chat/message_receive/chat_stream.py +++ b/src/chat/message_receive/chat_stream.py @@ -444,10 +444,13 @@ class ChatManager: return stream # 使用优化后的API查询(带缓存) + current_time = time.time() model_instance, _ = await get_or_create_chat_stream( stream_id=stream_id, platform=platform, defaults={ + "create_time": current_time, + "last_active_time": current_time, "user_platform": user_info.platform if user_info else platform, "user_id": user_info.user_id if user_info else "", "user_nickname": user_info.user_nickname if user_info else "", diff --git a/src/chat/replyer/default_generator.py b/src/chat/replyer/default_generator.py index 106295ca9..5b214aade 100644 --- a/src/chat/replyer/default_generator.py +++ b/src/chat/replyer/default_generator.py @@ -1468,18 +1468,15 @@ class DefaultReplyer: if now < start_time: now += timedelta(days=1) - if start_time <= now < end_time: - duration_minutes = (now - start_time).total_seconds() / 60 - remaining_minutes = (end_time - now).total_seconds() / 60 - schedule_block = ( + duration_minutes = (now - start_time).total_seconds() / 60 + remaining_minutes = (end_time - now).total_seconds() / 60 + schedule_block = ( f"你当前正在进行“{activity}”," f"计划时间从{start_time.strftime('%H:%M')}到{end_time.strftime('%H:%M')}。" f"这项活动已经开始了{duration_minutes:.0f}分钟," f"预计还有{remaining_minutes:.0f}分钟结束。" "(此为你的当前状态,仅供参考。除非被直接询问,否则不要在对话中主动提及。)" ) - else: - schedule_block = f"你当前正在进行“{activity}”。(此为你的当前状态,仅供参考。除非被直接询问,否则不要在对话中主动提及。)" except (ValueError, AttributeError): schedule_block = f"你当前正在进行“{activity}”。(此为你的当前状态,仅供参考。除非被直接询问,否则不要在对话中主动提及。)" diff --git a/src/llm_models/model_client/openai_client.py b/src/llm_models/model_client/openai_client.py index 3b6055b45..efa1785d9 100644 --- a/src/llm_models/model_client/openai_client.py +++ b/src/llm_models/model_client/openai_client.py @@ -350,10 +350,10 @@ def _default_normal_response_parser( api_response.tool_calls = [] for call in message_part.tool_calls: try: - arguments = orjson.loads(repair_json(call.function.arguments)) + arguments = orjson.loads(repair_json(call.function.arguments)) # type: ignore if not isinstance(arguments, dict): raise RespParseException(resp, "响应解析失败,工具调用参数无法解析为字典类型") - api_response.tool_calls.append(ToolCall(call.id, call.function.name, arguments)) + api_response.tool_calls.append(ToolCall(call.id, call.function.name, arguments)) # type: ignore except orjson.JSONDecodeError as e: raise RespParseException(resp, "响应解析失败,无法解析工具调用参数") from e diff --git a/src/person_info/relationship_fetcher.py b/src/person_info/relationship_fetcher.py index fbf98436f..d2e61467c 100644 --- a/src/person_info/relationship_fetcher.py +++ b/src/person_info/relationship_fetcher.py @@ -257,14 +257,20 @@ class RelationshipFetcher: """ try: from src.common.database.api.specialized import get_or_create_chat_stream + import time # 使用优化后的API(带缓存) # 从stream_id解析platform,或使用默认值 platform = stream_id.split("_")[0] if "_" in stream_id else "unknown" + current_time = time.time() stream, _ = await get_or_create_chat_stream( stream_id=stream_id, platform=platform, + defaults={ + "create_time": current_time, + "last_active_time": current_time, + }, ) if not stream: diff --git a/src/plugin_system/base/base_tool.py b/src/plugin_system/base/base_tool.py index fcb2bfe17..dafccad17 100644 --- a/src/plugin_system/base/base_tool.py +++ b/src/plugin_system/base/base_tool.py @@ -112,7 +112,7 @@ class BaseTool(ABC): if not cls.is_two_step_tool: return [] - definitions: ClassVar = [] + definitions = [] for sub_name, sub_desc, sub_params in cls.sub_tools: definitions.append({"name": f"{cls.name}_{sub_name}", "description": sub_desc, "parameters": sub_params}) return definitions