Files
aiData/Start.py
HuangHai c085cea624 'commit'
2026-01-20 09:56:39 +08:00

75 lines
2.3 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import os
import sys
import logging
from contextlib import asynccontextmanager
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from Util import Win32Patch
project_root = os.path.dirname(os.path.abspath(__file__))
if project_root not in sys.path:
sys.path.append(project_root)
def setup_api_logger():
logger = logging.getLogger("Start")
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)
log_file = os.path.join(log_dir, "Start.log")
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
logger = setup_api_logger()
logger.info("驿来特AI智能分析系统模块导入完成")
from Controller.YltAnalyticsController import router as ylt_router, init_db, close_db
from Controller.DegreeController import router as degree_router
from Controller.HaiBaoController import router as haibao_router
from Util.Win32Patch import patch
from Util.RedisKit import RedisKit
patch()
@asynccontextmanager
async def lifespan(app: FastAPI):
logger.info("驿来特AI智能分析系统开始启动...")
await init_db()
# Initialize Redis connection
await RedisKit().get_connection()
try:
yield
finally:
logger.info("驿来特AI智能分析系统关闭...")
await close_db()
app = FastAPI(title="驿来特AI智能分析系统", lifespan=lifespan)
static_dir = os.path.join(project_root, "static")
app.mount("/static", StaticFiles(directory=static_dir), name="static")
app.include_router(ylt_router)
app.include_router(degree_router)
app.include_router(haibao_router)
if __name__ == "__main__":
logger.info("Starting 驿来特AI智能分析系统 with uvicorn on http://0.0.0.0:8200")
import uvicorn
Win32Patch.patch()
uvicorn.run(app, host="0.0.0.0", port=8200)