48 lines
2.0 KiB
Python
48 lines
2.0 KiB
Python
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", "所有服务已注册")
|