Spaces:
Sleeping
Sleeping
| # 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 | |
| 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 |