2025-09-04 22:59:27 +08:00
|
|
|
|
from PIL import Image # 正确导入
|
|
|
|
|
import numpy as np
|
|
|
|
|
|
2025-09-02 18:51:50 +08:00
|
|
|
|
import uvicorn
|
2025-09-04 22:59:27 +08:00
|
|
|
|
from PIL import Image
|
2025-09-02 18:51:50 +08:00
|
|
|
|
from fastapi import FastAPI
|
2025-09-04 22:59:27 +08:00
|
|
|
|
from core.all import load_model,detect
|
2025-09-02 18:51:50 +08:00
|
|
|
|
from ds.config import SERVER_CONFIG
|
|
|
|
|
from middle.error_handler import global_exception_handler
|
|
|
|
|
from service.user_service import router as user_router
|
2025-09-04 22:59:27 +08:00
|
|
|
|
from service.sensitive_service import router as sensitive_router
|
|
|
|
|
from service.face_service import router as face_router
|
2025-09-02 18:51:50 +08:00
|
|
|
|
from service.device_service import router as device_router
|
|
|
|
|
from ws.ws import ws_router, lifespan
|
|
|
|
|
|
2025-09-04 22:59:27 +08:00
|
|
|
|
|
2025-09-02 18:51:50 +08:00
|
|
|
|
# ------------------------------
|
|
|
|
|
# 初始化 FastAPI 应用、指定生命周期管理
|
|
|
|
|
# ------------------------------
|
|
|
|
|
app = FastAPI(
|
|
|
|
|
title="内容安全审核后台",
|
|
|
|
|
description="内容安全审核后台",
|
|
|
|
|
version="1.0.0",
|
|
|
|
|
lifespan=lifespan
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# ------------------------------
|
|
|
|
|
# 注册路由
|
|
|
|
|
# ------------------------------
|
|
|
|
|
app.include_router(user_router)
|
|
|
|
|
app.include_router(device_router)
|
2025-09-04 22:59:27 +08:00
|
|
|
|
app.include_router(face_router)
|
|
|
|
|
app.include_router(sensitive_router)
|
2025-09-02 18:51:50 +08:00
|
|
|
|
app.include_router(ws_router)
|
|
|
|
|
|
|
|
|
|
# ------------------------------
|
|
|
|
|
# 注册全局异常处理器
|
|
|
|
|
# ------------------------------
|
|
|
|
|
app.add_exception_handler(Exception, global_exception_handler)
|
|
|
|
|
|
|
|
|
|
# ------------------------------
|
|
|
|
|
# 启动服务
|
|
|
|
|
# ------------------------------
|
|
|
|
|
if __name__ == "__main__":
|
2025-09-04 22:59:27 +08:00
|
|
|
|
# -------------------------- 配置调整 --------------------------
|
|
|
|
|
# 模型配置路径(建议改为环境变量)
|
|
|
|
|
YOLO_MODEL_PATH = r"/core/models\best.pt"
|
|
|
|
|
OCR_CONFIG_PATH = r"/core/config\config.yaml"
|
|
|
|
|
|
|
|
|
|
# 初始化项目(默认端口设为8000,避免初始化失败时port未定义)
|
2025-09-02 18:51:50 +08:00
|
|
|
|
port = int(SERVER_CONFIG.get("port", 8000))
|
2025-09-04 22:59:27 +08:00
|
|
|
|
|
|
|
|
|
# 启动 UVicorn 服务
|
2025-09-02 18:51:50 +08:00
|
|
|
|
uvicorn.run(
|
|
|
|
|
app="main:app",
|
|
|
|
|
host="0.0.0.0",
|
|
|
|
|
port=port,
|
2025-09-04 22:59:27 +08:00
|
|
|
|
workers=8,
|
2025-09-02 18:51:50 +08:00
|
|
|
|
ws="websockets"
|
|
|
|
|
)
|