# -*- coding: utf-8 -*- import logging from pathlib import Path import uvicorn from fastapi import FastAPI from loguru import logger from app.api.routers import targets, equipment, space, item, user, 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(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(equipment.router, prefix='/equip', tags=['Equipment']) application.include_router(item.router, prefix='/items', tags=['Items']) 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']) application.include_router(user.router, prefix='/users', tags=['Users']) return application app = get_application() if __name__ == '__main__': uvicorn.run(app, host='0.0.0.0', port=8000)