from services.registry import register_service from implementations.aliyun_asr import AliyunASR from implementations.volcano_llm import VolcanoLLM from implementations.minimax_tts import MiniMaxTTS from utils.logger import session_logger import os from config import settings from services.firmware_scanner import firmware_scanner def init_directories(): """初始化必要的目录""" tts_audio_dir = os.path.join(settings.assets_dir, "tts_audio") os.makedirs(tts_audio_dir, exist_ok=True) session_logger.info("system", "initialization", f"TTS音频目录已初始化: {tts_audio_dir}") firmware_dir = os.path.join(settings.assets_dir, "firmware") os.makedirs(firmware_dir, exist_ok=True) session_logger.info("system", "initialization", f"固件目录已初始化: {firmware_dir}") async def check_database_initialization(): """检查数据库是否已初始化""" try: from database.connection import get_db_manager db_manager = await get_db_manager() session = await db_manager.get_session() await session.close() session_logger.info("system", "initialization", "数据库已初始化") except Exception as e: session_logger.error("system", "initialization", f"数据库未初始化,请检查配置: {str(e)}") raise Exception(f"数据库连接失败: {str(e)}") async def scan_firmware_files(): """扫描固件文件并更新数据库""" try: await firmware_scanner.scan_firmware_files() except Exception as e: session_logger.error("system", "initialization", f"扫描固件文件失败: {str(e)}") async def register_services(): init_directories() await check_database_initialization() await scan_firmware_files() # 添加扫描固件文件的步骤 register_service("asr", "Aliyun", AliyunASR) register_service("llm", "Volcano", VolcanoLLM) register_service("tts", "MiniMax", MiniMaxTTS) session_logger.info("system", "initialization", "所有服务已注册")