# -*- coding: utf-8 -*- import logging from pathlib import Path import uvicorn from fastapi import FastAPI from loguru import logger from app.api.routers import ( algorithms, targets, space, bluetooth, devices, nlp, positioning, ) from app.api.routers.model_path import early_start from app.core.config import settings from app.core.events import create_start_app_handler from app.core.logger import InterceptHandler from app.db.session import Base, engine Base.metadata.create_all(bind=engine) logging.getLogger().handlers = [InterceptHandler()] # logger.add( # Path(settings.LOGS_DIR, "env_fastapi.log"), # level="INFO", # rotation="00:00", # encoding="utf-8", # ) def get_application() -> FastAPI: application = FastAPI(title=settings.PROJECT_NAME, root_path="/env-py") application.add_event_handler("startup", create_start_app_handler()) application.include_router(algorithms.router, prefix="/algo", tags=["Algorithms"]) application.include_router(bluetooth.router, prefix="/bluetooth", tags=["BLE"]) application.include_router(devices.router, prefix="/devices", tags=["Devices"]) application.include_router( early_start.router, prefix="/model-path", tags=["Model Path"] ) application.include_router(nlp.router, prefix="/nlp-service", tags=["NLP"]) application.include_router( positioning.router, prefix="/positioning-service", tags=["Positioning Service"] ) application.include_router(space.router, prefix="/room", tags=["Spaces"]) application.include_router(targets.router, prefix="/target", tags=["Targets"]) return application app = get_application() if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8000)