Files
ragflow_python/asr-monitor-test/app/main.py

66 lines
2.4 KiB
Python

import os
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 dotenv import load_dotenv
import uvicorn
@asynccontextmanager
async def lifespan(app: FastAPI):
"""生命周期管理"""
# 服务启动初始化
print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
print(" ASR & Monitor Service Start")
print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
yield
# 服务停止清理
print("\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
print(" Service Stopped Cleanly")
print("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━")
# 加载 .env 文件中的环境变量
load_dotenv() # 默认加载项目根目录的 .env 文件
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
from app.chat_service import chat_router
from app.payment_service import payment_router
# 创建应用实例
app = FastAPI(lifespan=lifespan)
# 配置CORS
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # 允许所有来源,也可以指定具体的域名,例如 ["https://example.com"]
allow_credentials=True, # 是否允许发送 cookies
allow_methods=["*"], # 允许所有方法,也可以指定具体的方法,例如 ["GET", "POST"]
allow_headers=["*"], # 允许所有头信息,也可以指定具体的头信息
expose_headers=["Content-Range", "Content-Length"] # 关键添加
)
# 挂载子路由
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.include_router(chat_router, prefix="/chat")
app.include_router(payment_router, prefix="/payment")
# 挂载静态文件(可选)
# app.mount("/static", StaticFiles(directory="static"), name="static")
if __name__ == "__main__":
uvicorn.run("app.main:app", host="0.0.0.0", port=9580)