File size: 1,151 Bytes
f37bf1d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 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