import os from fastapi import FastAPI, HTTPException, Request, Response from fastapi.staticfiles import StaticFiles from fastapi.middleware.cors import CORSMiddleware import uvicorn # Import the app from app.py from app import app as api_app # Create a new FastAPI app for serving both API and static files app = FastAPI(title="Educational Research Methods Chatbot") # Add CORS middleware app.add_middleware( CORSMiddleware, allow_origins=["*"], # In production, replace with specific origins allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Mount the API app app.mount("/api", api_app) # Mount static files app.mount("/", StaticFiles(directory="static", html=True), name="static") if __name__ == "__main__": # Get port from environment variable for cloud deployment port = int(os.environ.get("PORT", 8080)) host = os.environ.get("HOST", "0.0.0.0") uvicorn.run(app, host=host, port=port)