Files
banban/talkingq-url/initialization.py
2026-03-24 15:04:36 +08:00

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", "所有服务已注册")