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
|
|||
|
|
)
|