| | |
| |
|
| | from fastapi import FastAPI |
| | from fastapi.responses import RedirectResponse |
| | from pydantic import BaseModel |
| | import joblib |
| | import pandas as pd |
| |
|
| | app = FastAPI() |
| | model = joblib.load("./pipeline.joblib") |
| |
|
| | class Input(BaseModel): |
| | CUST_NBR: str |
| | MENU_TYP_DESC: str |
| | PYR_SEG_CD: str |
| | DIV_NBR: str |
| | WKLY_ORDERS: float |
| | PERC_EB: float |
| | AVG_WKLY_SALES: float |
| | AVG_WKLY_CASES: float |
| |
|
| | class Output(BaseModel): |
| | prediction: list[int] |
| |
|
| | @app.post("/predict", response_model=Output) |
| | def predict(data: list[Input]) -> Output: |
| | print(data) |
| | data = [item.model_dump() for item in data] |
| | data = pd.DataFrame(data) |
| | prediction = model.predict(data).tolist() |
| | return {"prediction":prediction} |
| |
|
| | @app.get("/") |
| | def home(): |
| | return RedirectResponse(url="/docs", status_code=302) |