from fastapi import FastAPI from fastapi.staticfiles import StaticFiles from fastapi.middleware.cors import CORSMiddleware from fastapi.security import OAuth2PasswordBearer from jose import JWTError, jwt from datetime import datetime, timedelta import json from contextlib import asynccontextmanager from app.asr_service import asr_router from app.monitor_service import monitor_router from app.tts_service import tts_router from app.login_service import login_router import uvicorn @asynccontextmanager async def lifespan(app: FastAPI): """生命周期管理""" # 服务启动初始化 print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━") print(" ASR & Monitor Service Start") print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━") yield # 服务停止清理 print("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━") print(" Service Stopped Cleanly") print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━") # 创建应用实例 app = FastAPI(lifespan=lifespan) # 配置CORS app.add_middleware( CORSMiddleware, allow_origins=["*"], # 允许所有来源,也可以指定具体的域名,例如 ["https://example.com"] allow_credentials=True, # 是否允许发送 cookies allow_methods=["*"], # 允许所有方法,也可以指定具体的方法,例如 ["GET", "POST"] allow_headers=["*"], # 允许所有头信息,也可以指定具体的头信息 ) # 挂载子路由 app.include_router(asr_router, prefix="/asr") app.include_router(monitor_router, prefix="/monitor") app.include_router(tts_router, prefix="/tts") app.include_router(login_router, prefix="/auth") # 挂载静态文件(可选) # app.mount("/static", StaticFiles(directory="static"), name="static") if __name__ == "__main__": uvicorn.run("app.main:app", host="0.0.0.0", port=9580)