import uvicorn import os from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware # 原有业务导入 from ds.config import SERVER_CONFIG from middle.error_handler import global_exception_handler from router.user_router import router as user_router from router.sensitive_router import router as sensitive_router from router.face_router import router as face_router from router.device_router import router as device_router from router.model_router import router as model_router from router.file_router import router as file_router from router.device_danger_router import router as device_danger_router from core.detect import init from ws.ws import ws_router, lifespan # 初始化 FastAPI 应用 app = FastAPI( title="内容安全审核后台", description="含图片访问服务和动态模型管理", version="1.0.0", lifespan=lifespan ) ALLOWED_ORIGINS = [ "*" ] # 配置 CORS 中间件 app.add_middleware( CORSMiddleware, allow_origins=ALLOWED_ORIGINS, # 允许的前端域名 allow_credentials=True, # 允许携带 Cookie allow_methods=["*"], # 允许所有 HTTP 方法 allow_headers=["*"], # 允许所有请求头 ) # 注册路由 app.include_router(user_router) app.include_router(device_router) app.include_router(face_router) app.include_router(sensitive_router) app.include_router(model_router) app.include_router(file_router) app.include_router(device_danger_router) app.include_router(ws_router) # 注册全局异常处理器 app.add_exception_handler(Exception, global_exception_handler) # 主服务启动入口 if __name__ == "__main__": # 启动 FastAPI 主服务(仅使用8000端口) port = int(SERVER_CONFIG.get("port", 8000)) # 加载所有模型 init() uvicorn.run( app="main:app", host="0.0.0.0", port=port, workers=1, ws="websockets", reload=False )