archis99's picture
edited main.py backend
a41b3f2
raw
history blame contribute delete
933 Bytes
from fastapi import FastAPI
import pandas as pd
from .pipelines.run_inference import predict
from fastapi.middleware.cors import CORSMiddleware
app = FastAPI(title="Study Status Prediction API")
# CORS for frontend
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
)
@app.get("/health")
def health_check():
return {"status": "ok"}
@app.post("/predict")
def predict_endpoint(data: dict | list[dict]):
# Convert single row or multiple rows to DataFrame
df = pd.DataFrame(data if isinstance(data, list) else [data])
predictions = predict(df)
return predictions
if __name__ == "__main__":
import uvicorn
# Pass the app as an import string: "module_name:app_variable_name"
# In this case, "main:app" because your file is main.py and your app object is named 'app'
uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)