From 5e91f9ef5f939fb78d98abd4dbd7ad5e29704294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=85=E8=AF=BA=E7=8B=90?= <212194964+foxcyber907@users.noreply.github.com> Date: Tue, 19 Aug 2025 11:55:24 +0800 Subject: [PATCH] Remove unused imports across multiple modules Cleaned up various files by removing unused or redundant import statements to improve code readability and reduce potential confusion. No functional changes were made. --- migration_script.py | 1 - src/chat/antipromptinjector/detector.py | 3 +-- src/chat/antipromptinjector/shield.py | 4 +--- src/chat/emoji_system/emoji_manager.py | 1 - src/chat/message_receive/chat_stream.py | 3 +-- src/chat/message_receive/message.py | 1 - src/chat/planner_actions/planner.py | 1 - src/chat/utils/chat_message_builder.py | 3 --- src/chat/utils/utils_image.py | 1 - src/common/cache_manager.py | 2 -- src/common/database/db_migration.py | 1 - src/common/database/sqlalchemy_database_api.py | 4 +--- src/common/database/sqlalchemy_models.py | 1 - src/llm_models/model_client/gemini_client.py | 2 +- src/main.py | 1 - src/manager/schedule_manager.py | 12 ++++++------ src/multimodal/video_analyzer.py | 6 +++--- src/person_info/person_info.py | 1 - src/plugin_system/core/plugin_hot_reload.py | 2 +- src/plugins/built_in/at_user_plugin/plugin.py | 1 - src/plugins/built_in/core_actions/no_reply.py | 1 - .../maizone_refactored/services/image_service.py | 1 - src/plugins/built_in/set_emoji_like/plugin.py | 3 --- 23 files changed, 15 insertions(+), 41 deletions(-) diff --git a/migration_script.py b/migration_script.py index 293d3e08b..e4d298a2b 100644 --- a/migration_script.py +++ b/migration_script.py @@ -6,7 +6,6 @@ """ from __future__ import annotations -import re import sqlite3 import pymysql from contextlib import closing diff --git a/src/chat/antipromptinjector/detector.py b/src/chat/antipromptinjector/detector.py index 8b46910e5..09051d84f 100644 --- a/src/chat/antipromptinjector/detector.py +++ b/src/chat/antipromptinjector/detector.py @@ -11,8 +11,7 @@ import re import time import hashlib -import asyncio -from typing import Dict, List, Optional, Tuple +from typing import Dict, List from dataclasses import asdict from src.common.logger import get_logger diff --git a/src/chat/antipromptinjector/shield.py b/src/chat/antipromptinjector/shield.py index 0e099dc37..948a55967 100644 --- a/src/chat/antipromptinjector/shield.py +++ b/src/chat/antipromptinjector/shield.py @@ -6,9 +6,7 @@ 主要通过注入系统提示词来指导AI安全响应。 """ -import random -import re -from typing import List, Optional +from typing import List from src.common.logger import get_logger from src.config.config import global_config diff --git a/src/chat/emoji_system/emoji_manager.py b/src/chat/emoji_system/emoji_manager.py index 7d58aa086..a267ba0c4 100644 --- a/src/chat/emoji_system/emoji_manager.py +++ b/src/chat/emoji_system/emoji_manager.py @@ -13,7 +13,6 @@ from typing import Optional, Tuple, List, Any from PIL import Image from rich.traceback import install from sqlalchemy import select -from src.common.database.database import db from src.common.database.sqlalchemy_database_api import get_db_session from src.common.database.sqlalchemy_models import Emoji, Images from src.common.logger import get_logger diff --git a/src/chat/message_receive/chat_stream.py b/src/chat/message_receive/chat_stream.py index 5ad7f2654..d7c103222 100644 --- a/src/chat/message_receive/chat_stream.py +++ b/src/chat/message_receive/chat_stream.py @@ -7,8 +7,7 @@ from rich.traceback import install from maim_message import GroupInfo, UserInfo from src.common.logger import get_logger -from src.common.database.database import db -from sqlalchemy import select, text +from sqlalchemy import select from sqlalchemy.dialects.sqlite import insert as sqlite_insert from sqlalchemy.dialects.mysql import insert as mysql_insert from src.common.database.sqlalchemy_models import ChatStreams # 新增导入 diff --git a/src/chat/message_receive/message.py b/src/chat/message_receive/message.py index ad66c5982..dd2e268ff 100644 --- a/src/chat/message_receive/message.py +++ b/src/chat/message_receive/message.py @@ -12,7 +12,6 @@ from src.common.logger import get_logger from src.chat.utils.utils_image import get_image_manager from src.chat.utils.utils_voice import get_voice_text from src.chat.utils.utils_video import get_video -from src.multimodal.video_analyzer import get_video_analyzer from src.config.config import global_config from .chat_stream import ChatStream diff --git a/src/chat/planner_actions/planner.py b/src/chat/planner_actions/planner.py index 5a90863d5..4c40593e9 100644 --- a/src/chat/planner_actions/planner.py +++ b/src/chat/planner_actions/planner.py @@ -16,7 +16,6 @@ from src.chat.utils.chat_message_builder import ( build_readable_messages_with_id, get_raw_msg_before_timestamp_with_chat, ) -from src.plugin_system.apis.message_api import filter_mai_messages from src.chat.utils.utils import get_chat_type_and_target_info from src.chat.planner_actions.action_manager import ActionManager from src.chat.message_receive.chat_stream import get_chat_manager diff --git a/src/chat/utils/chat_message_builder.py b/src/chat/utils/chat_message_builder.py index 4dde7de2b..842a72705 100644 --- a/src/chat/utils/chat_message_builder.py +++ b/src/chat/utils/chat_message_builder.py @@ -260,7 +260,6 @@ def get_actions_by_timestamp_with_chat( ) -> List[Dict[str, Any]]: """获取在特定聊天从指定时间戳到指定时间戳的动作记录,按时间升序排序,返回动作记录列表""" from src.common.logger import get_logger - from src.common.database.sqlalchemy_database_api import get_db_session logger = get_logger("chat_message_builder") @@ -353,7 +352,6 @@ def get_actions_by_timestamp_with_chat_inclusive( chat_id: str, timestamp_start: float, timestamp_end: float, limit: int = 0, limit_mode: str = "latest" ) -> List[Dict[str, Any]]: """获取在特定聊天从指定时间戳到指定时间戳的动作记录(包含边界),按时间升序排序,返回动作记录列表""" - from src.common.database.sqlalchemy_database_api import get_db_session with get_db_session() as session: if limit > 0: if limit_mode == "latest": @@ -785,7 +783,6 @@ def build_pic_mapping_info(pic_id_mapping: Dict[str, str]) -> str: sorted_items = sorted(pic_id_mapping.items(), key=lambda x: int(x[1].replace("图片", ""))) - from src.common.database.sqlalchemy_database_api import get_db_session for pic_id, display_name in sorted_items: # 从数据库中获取图片描述 description = "内容正在阅读,请稍等" diff --git a/src/chat/utils/utils_image.py b/src/chat/utils/utils_image.py index 92d8d3bd6..1f5bc3aec 100644 --- a/src/chat/utils/utils_image.py +++ b/src/chat/utils/utils_image.py @@ -12,7 +12,6 @@ from PIL import Image from rich.traceback import install from src.common.logger import get_logger -from src.common.database.database import db from src.common.database.sqlalchemy_models import Images, ImageDescriptions from src.config.config import global_config, model_config from src.llm_models.utils_model import LLMRequest diff --git a/src/common/cache_manager.py b/src/common/cache_manager.py index e4f040c83..a8306a106 100644 --- a/src/common/cache_manager.py +++ b/src/common/cache_manager.py @@ -1,8 +1,6 @@ import time import json import hashlib -import inspect -import os from pathlib import Path import numpy as np import faiss diff --git a/src/common/database/db_migration.py b/src/common/database/db_migration.py index 037fd4be7..cae3cbd29 100644 --- a/src/common/database/db_migration.py +++ b/src/common/database/db_migration.py @@ -1,7 +1,6 @@ # mmc/src/common/database/db_migration.py from sqlalchemy import inspect, text -from sqlalchemy.engine import Engine from src.common.database.sqlalchemy_models import Base, get_engine from src.common.logger import get_logger diff --git a/src/common/database/sqlalchemy_database_api.py b/src/common/database/sqlalchemy_database_api.py index e3c10ece6..9411b8f00 100644 --- a/src/common/database/sqlalchemy_database_api.py +++ b/src/common/database/sqlalchemy_database_api.py @@ -7,9 +7,7 @@ import traceback import time from typing import Dict, List, Any, Union, Type, Optional -from contextlib import contextmanager -from sqlalchemy.orm import Session -from sqlalchemy.exc import SQLAlchemyError, DisconnectionError, OperationalError +from sqlalchemy.exc import SQLAlchemyError from sqlalchemy import desc, asc, func, and_ from src.common.logger import get_logger from src.common.database.sqlalchemy_models import ( diff --git a/src/common/database/sqlalchemy_models.py b/src/common/database/sqlalchemy_models.py index 11ae50133..611486740 100644 --- a/src/common/database/sqlalchemy_models.py +++ b/src/common/database/sqlalchemy_models.py @@ -11,7 +11,6 @@ import os import datetime import time from src.common.logger import get_logger -import threading from contextlib import contextmanager logger = get_logger("sqlalchemy_models") diff --git a/src/llm_models/model_client/gemini_client.py b/src/llm_models/model_client/gemini_client.py index 9bda858ef..0b5375935 100644 --- a/src/llm_models/model_client/gemini_client.py +++ b/src/llm_models/model_client/gemini_client.py @@ -1,7 +1,7 @@ import asyncio import io import base64 -from typing import Callable, AsyncIterator, Optional, Coroutine, Any, List, Dict, Union +from typing import Callable, AsyncIterator, Optional, Coroutine, Any, List, Dict import google.generativeai as genai from google.generativeai.types import ( diff --git a/src/main.py b/src/main.py index 475b92699..6e07ee692 100644 --- a/src/main.py +++ b/src/main.py @@ -17,7 +17,6 @@ from src.common.server import get_global_server, Server from src.mood.mood_manager import mood_manager from rich.traceback import install from src.manager.schedule_manager import schedule_manager -from src.common.cache_manager import tool_cache # from src.api.main import start_api_server # 导入新的插件管理器和热重载管理器 diff --git a/src/manager/schedule_manager.py b/src/manager/schedule_manager.py index df4c66bcd..d0efd6755 100644 --- a/src/manager/schedule_manager.py +++ b/src/manager/schedule_manager.py @@ -156,7 +156,7 @@ class ScheduleManager: schedule_str += f" - {item.get('time_range', '未知时间')}: {item.get('activity', '未知活动')}\n" logger.info(schedule_str) else: - logger.warning(f"数据库中的日程数据格式无效,将重新生成日程") + logger.warning("数据库中的日程数据格式无效,将重新生成日程") await self.generate_and_save_schedule() except json.JSONDecodeError as e: logger.error(f"日程数据JSON解析失败: {e},将重新生成日程") @@ -219,13 +219,13 @@ class ScheduleManager: existing_schedule = session.query(Schedule).filter(Schedule.date == today_str).first() if existing_schedule: # 更新现有日程 - setattr(existing_schedule, 'schedule_data', json.dumps(schedule_data)) - setattr(existing_schedule, 'updated_at', datetime.now()) + existing_schedule.schedule_data = json.dumps(schedule_data) + existing_schedule.updated_at = datetime.now() else: # 创建新日程 new_schedule = Schedule() - setattr(new_schedule, 'date', today_str) - setattr(new_schedule, 'schedule_data', json.dumps(schedule_data)) + new_schedule.date = today_str + new_schedule.schedule_data = json.dumps(schedule_data) session.add(new_schedule) session.commit() @@ -241,7 +241,7 @@ class ScheduleManager: logger.warning(f"第 {attempt + 1} 次生成的日程验证失败,正在重试...") if attempt < self.max_retries - 1: # 在重试时添加更详细的错误提示 - prompt += f"\n\n**上次生成失败,请特别注意**:\n- 确保所有时间段连续覆盖24小时\n- 时间格式必须为HH:MM-HH:MM\n- 不能有时间间隙或重叠" + prompt += "\n\n**上次生成失败,请特别注意**:\n- 确保所有时间段连续覆盖24小时\n- 时间格式必须为HH:MM-HH:MM\n- 不能有时间间隙或重叠" except Exception as e: logger.error(f"第 {attempt + 1} 次生成日程失败: {e}") diff --git a/src/multimodal/video_analyzer.py b/src/multimodal/video_analyzer.py index 2a754b5c7..21253fc06 100644 --- a/src/multimodal/video_analyzer.py +++ b/src/multimodal/video_analyzer.py @@ -73,7 +73,7 @@ class VideoAnalyzer: self.frame_interval = 1.0 # 抽帧时间间隔(秒) self.batch_size = 3 # 批处理时每批处理的帧数 self.timeout = 60.0 # 分析超时时间(秒) - self.logger.info(f"✅ 从配置文件读取视频分析参数") + self.logger.info("✅ 从配置文件读取视频分析参数") except AttributeError as e: # 如果配置不存在,使用代码中的默认值 @@ -494,7 +494,7 @@ class VideoAnalyzer: return {"summary": existing_video.description} # hash未匹配,但可能是重编码的相同视频,进行特征检测 - self.logger.info(f"未找到hash匹配的视频记录,检查是否为重编码的相同视频(测试功能)") + self.logger.info("未找到hash匹配的视频记录,检查是否为重编码的相同视频(测试功能)") # 创建临时文件以提取视频特征 with tempfile.NamedTemporaryFile(delete=False, suffix='.mp4') as temp_file: @@ -520,7 +520,7 @@ class VideoAnalyzer: self._update_video_count(existing_similar_video.id) return {"summary": existing_similar_video.description} - self.logger.info(f"未找到相似视频,开始新的分析") + self.logger.info("未找到相似视频,开始新的分析") # 检查临时文件是否创建成功 if not os.path.exists(temp_path): diff --git a/src/person_info/person_info.py b/src/person_info/person_info.py index 4889b4b99..fb418f78e 100644 --- a/src/person_info/person_info.py +++ b/src/person_info/person_info.py @@ -9,7 +9,6 @@ from json_repair import repair_json from typing import Any, Callable, Dict, Union, Optional from sqlalchemy import select from src.common.logger import get_logger -from src.common.database.database import db from src.common.database.sqlalchemy_models import PersonInfo from src.common.database.sqlalchemy_database_api import get_db_session from src.llm_models.utils_model import LLMRequest diff --git a/src/plugin_system/core/plugin_hot_reload.py b/src/plugin_system/core/plugin_hot_reload.py index 8d33b1f80..a88d3e568 100644 --- a/src/plugin_system/core/plugin_hot_reload.py +++ b/src/plugin_system/core/plugin_hot_reload.py @@ -209,7 +209,7 @@ class PluginHotReloadManager: else: dir_info.append(f"{watch_dir} (外部插件)") - logger.info(f"🚀 插件热重载已启动,监听目录:") + logger.info("🚀 插件热重载已启动,监听目录:") for info in dir_info: logger.info(f" 📂 {info}") diff --git a/src/plugins/built_in/at_user_plugin/plugin.py b/src/plugins/built_in/at_user_plugin/plugin.py index 9c2d40f31..d81a79a98 100644 --- a/src/plugins/built_in/at_user_plugin/plugin.py +++ b/src/plugins/built_in/at_user_plugin/plugin.py @@ -10,7 +10,6 @@ from src.plugin_system import ( ) from src.person_info.person_info import get_person_info_manager from src.common.logger import get_logger -from src.plugin_system import database_api from src.plugin_system.base.component_types import ChatType logger = get_logger(__name__) diff --git a/src/plugins/built_in/core_actions/no_reply.py b/src/plugins/built_in/core_actions/no_reply.py index 2da146b0c..b9e634253 100644 --- a/src/plugins/built_in/core_actions/no_reply.py +++ b/src/plugins/built_in/core_actions/no_reply.py @@ -3,7 +3,6 @@ from collections import deque # 导入新插件系统 from src.plugin_system import BaseAction, ActionActivationType, ChatMode -from src.plugin_system.base.component_types import ChatType # 导入依赖的系统组件 from src.common.logger import get_logger diff --git a/src/plugins/built_in/maizone_refactored/services/image_service.py b/src/plugins/built_in/maizone_refactored/services/image_service.py index 04ef2f33c..ea6ddc2a8 100644 --- a/src/plugins/built_in/maizone_refactored/services/image_service.py +++ b/src/plugins/built_in/maizone_refactored/services/image_service.py @@ -4,7 +4,6 @@ 负责处理所有与图片相关的任务,特别是AI生成图片。 """ import base64 -import os from pathlib import Path from typing import Callable diff --git a/src/plugins/built_in/set_emoji_like/plugin.py b/src/plugins/built_in/set_emoji_like/plugin.py index 3f1a76d0f..f89d335e6 100644 --- a/src/plugins/built_in/set_emoji_like/plugin.py +++ b/src/plugins/built_in/set_emoji_like/plugin.py @@ -1,6 +1,5 @@ import re from typing import List, Tuple, Type -import difflib from src.plugin_system import ( BasePlugin, @@ -9,9 +8,7 @@ from src.plugin_system import ( ComponentInfo, ActionActivationType, ConfigField, - database_api, ) -from src.common.database.sqlalchemy_models import Messages, PersonInfo from src.common.logger import get_logger from src.plugin_system.apis import send_api from .qq_emoji_list import qq_face