Spaces:
Runtime error
Runtime error
| import uvicorn | |
| from fastapi import FastAPI, WebSocket, WebSocketDisconnect | |
| from fastapi.middleware.cors import CORSMiddleware | |
| from contextlib import asynccontextmanager | |
| from app.config import env | |
| from app.database import connect_db, close_db | |
| from app.routers import assignments, papers | |
| from app.services.ws_service import manager | |
| async def lifespan(app: FastAPI): | |
| # Startup | |
| await connect_db() | |
| yield | |
| # Shutdown | |
| await close_db() | |
| app = FastAPI(lifespan=lifespan, title="VedaAI Backend") | |
| # Middleware | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=env.CORS_ORIGINS, | |
| allow_credentials=True, | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| # Health check | |
| async def health(): | |
| from datetime import datetime | |
| return {"status": "ok", "timestamp": datetime.utcnow().isoformat()} | |
| # Routers | |
| app.include_router(assignments.router, prefix="/api/assignments", tags=["Assignments"]) | |
| app.include_router(papers.router, prefix="/api/papers", tags=["Papers"]) | |
| # WebSocket Endpoint | |
| async def websocket_endpoint(websocket: WebSocket, room_id: str): | |
| await manager.connect(websocket, room_id) | |
| try: | |
| while True: | |
| # Just keep the connection open, maybe accept ping messages | |
| data = await websocket.receive_text() | |
| except WebSocketDisconnect: | |
| manager.disconnect(websocket, room_id) | |
| if __name__ == "__main__": | |
| print(f"VedaAI backend running on port {env.PORT}") | |
| print(f" AI Provider: groq") | |
| print(f" CORS origins: {env.CORS_ORIGINS}") | |
| print(f" Health check: http://localhost:{env.PORT}/health") | |
| uvicorn.run("app.main:app", host="0.0.0.0", port=env.PORT, reload=True) | |