67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| 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
 | ||
|     )
 |