Files
2025-01-22 07:34:41 +00:00

69 lines
2.0 KiB
Python

# Standard library imports
from contextlib import asynccontextmanager
# Third-party imports
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from openai import OpenAI
# Local application imports
from app.cores.config import client
from app.cores.db import (
connect_to_mongo,
close_mongo_connection,
)
from app.routers.login import router as login_router
from app.routers.project import router as project_router
from app.routers.device import router as device_router
from app.routers.experiment_device import router as experiment_device_router
from app.routers.experiment import router as experiment_router
from app.routers.experiment_report import router as experiment_report_router
from app.routers.websocket import router as websocket_router
from app.routers.project_report import router as project_report_router
from app.routers.memo import router as memo_router
from app.routers.paper import router as paper_router
from app.routers.paper_summary import router as paper_summary_router
@asynccontextmanager
async def lifespan(app: FastAPI):
# Startup
await connect_to_mongo()
yield
# Shutdown
await close_mongo_connection()
# 更新 FastAPI 实例化
app = FastAPI(lifespan=lifespan)
# 添加路由
app.include_router(login_router)
app.include_router(project_router)
app.include_router(device_router)
app.include_router(experiment_device_router)
app.include_router(experiment_router)
app.include_router(experiment_report_router)
app.include_router(websocket_router)
app.include_router(project_report_router)
app.include_router(memo_router)
app.include_router(paper_router)
app.include_router(paper_summary_router)
# CORS configuration
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
expose_headers=["*"]
)
# Health check endpoint
@app.get("/health")
async def health_check():
return {"status": "healthy"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=6000)