Files
aiData/Start.py

75 lines
2.3 KiB
Python
Raw Normal View History

2026-01-18 15:43:02 +08:00
import os
import sys
2026-01-18 16:02:40 +08:00
import logging
from contextlib import asynccontextmanager
2026-01-18 15:43:02 +08:00
2026-01-18 16:02:40 +08:00
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
2026-01-18 15:43:02 +08:00
2026-01-20 08:50:07 +08:00
from Util import Win32Patch
2026-01-18 15:43:02 +08:00
project_root = os.path.dirname(os.path.abspath(__file__))
if project_root not in sys.path:
sys.path.append(project_root)
2026-01-18 16:02:40 +08:00
def setup_api_logger():
2026-01-20 08:09:13 +08:00
logger = logging.getLogger("Start")
2026-01-18 16:02:40 +08:00
logger.setLevel(logging.INFO)
logger.propagate = False
if logger.handlers:
return logger
log_dir = os.path.join(project_root, "Logs")
os.makedirs(log_dir, exist_ok=True)
2026-01-20 08:21:08 +08:00
log_file = os.path.join(log_dir, "Start.log")
2026-01-18 16:02:40 +08:00
file_handler = logging.FileHandler(log_file, encoding="utf-8")
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
file_handler.setFormatter(formatter)
logger.addHandler(file_handler)
console_handler = logging.StreamHandler()
console_handler.setFormatter(formatter)
logger.addHandler(console_handler)
return logger
2026-01-18 15:43:02 +08:00
2026-01-18 16:02:40 +08:00
logger = setup_api_logger()
2026-01-20 08:30:04 +08:00
logger.info("驿来特AI智能分析系统模块导入完成")
2026-01-18 15:43:02 +08:00
2026-01-20 08:09:13 +08:00
from Controller.YltAnalyticsController import router as ylt_router, init_db, close_db
from Controller.DegreeController import router as degree_router
2026-01-20 09:23:15 +08:00
from Controller.HaiBaoController import router as haibao_router
2026-01-20 08:09:13 +08:00
from Util.Win32Patch import patch
from Util.RedisKit import RedisKit
2026-01-18 15:43:02 +08:00
2026-01-20 08:09:13 +08:00
patch()
2026-01-18 15:43:02 +08:00
2026-01-18 16:02:40 +08:00
@asynccontextmanager
async def lifespan(app: FastAPI):
2026-01-20 08:30:04 +08:00
logger.info("驿来特AI智能分析系统开始启动...")
2026-01-18 16:02:40 +08:00
await init_db()
2026-01-20 08:09:13 +08:00
# Initialize Redis connection
await RedisKit().get_connection()
2026-01-18 16:02:40 +08:00
try:
yield
finally:
2026-01-20 08:30:04 +08:00
logger.info("驿来特AI智能分析系统关闭...")
2026-01-18 16:02:40 +08:00
await close_db()
2026-01-18 15:43:02 +08:00
2026-01-20 08:30:04 +08:00
app = FastAPI(title="驿来特AI智能分析系统", lifespan=lifespan)
2026-01-18 15:43:02 +08:00
2026-01-18 16:02:40 +08:00
static_dir = os.path.join(project_root, "static")
app.mount("/static", StaticFiles(directory=static_dir), name="static")
2026-01-18 15:43:02 +08:00
2026-01-20 08:09:13 +08:00
app.include_router(ylt_router)
app.include_router(degree_router)
2026-01-20 09:23:15 +08:00
app.include_router(haibao_router)
2026-01-18 15:43:02 +08:00
2026-01-18 16:02:40 +08:00
if __name__ == "__main__":
2026-01-20 09:56:39 +08:00
logger.info("Starting 驿来特AI智能分析系统 with uvicorn on http://0.0.0.0:8200")
2026-01-18 16:02:40 +08:00
import uvicorn
2026-01-20 08:50:07 +08:00
Win32Patch.patch()
2026-01-20 09:56:39 +08:00
uvicorn.run(app, host="0.0.0.0", port=8200)