aicoach2 / main.py
deepakkumarsoni's picture
Update main.py
9d98811 verified
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from starlette.middleware.sessions import SessionMiddleware
from contextlib import asynccontextmanager
import torch
from app.routes import auth_routes, analysis_routes, session_routes
from app.core.config import settings
@asynccontextmanager
async def lifespan(app: FastAPI):
from app.database import SessionLocal
from app.models import InterviewSlot
torch.set_num_threads(1)
print("AI Interview Coach: Starting up and loading models...")
db = SessionLocal()
# Check if slots exist, if not, create them
if db.query(InterviewSlot).count() == 0:
db.add(InterviewSlot(id=1, is_active=False))
db.add(InterviewSlot(id=2, is_active=False))
db.commit()
db.close()
yield
print("AI Interview Coach: Shutting down...")
app = FastAPI(
title="AI Interview Coach",
lifespan=lifespan
)
app.add_middleware(
CORSMiddleware,
allow_origins=[
"http://localhost:5173",
"https://d33paksoni.github.io",
"https://www.thedeepaksoni.life",
"https://thedeepaksoni.online"
],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
app.add_middleware(
SessionMiddleware,
secret_key=settings.SECRET_KEY,
same_site="none"
)
app.include_router(auth_routes.router, prefix="/auth", tags=["Authentication"])
app.include_router(analysis_routes.router, tags=["NLP & AI"])
app.include_router(session_routes.router, tags=["History"])
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000, workers=2)