# api/utils/startup.py import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).parent.parent.parent)) import asyncio from contextlib import asynccontextmanager from fastapi import FastAPI from core.system_initializer import setup_system from api.config import settings, logger async def initialize_system(): """Initialize the legal assistant system""" try: system = await setup_system() settings.chat_manager = system["chat_manager"] settings.graph = system["graph"] settings.system_initialized = True logger.info("✅ Legal assistant system initialized") except Exception as e: logger.error(f"❌ Failed to initialize system: {e}") settings.system_initialized = False @asynccontextmanager async def lifespan(app: FastAPI): """Application lifespan manager""" logger.info("🚀 Starting Legal Assistant API...") initialization_task = asyncio.create_task(initialize_system()) yield logger.info("🛑 Shutting down...") initialization_task.cancel() try: await initialization_task except asyncio.CancelledError: pass