Srastog's picture
Update app/main.py
affac97 verified
raw
history blame
1.78 kB
import shutil
import glob
import os
import numpy as np
import pandas
from fastapi import FastAPI,UploadFile,File
from pydantic import BaseModel,Field
from app.modelling import train
from app.inference import predict
dataset=[]
class Item(BaseModel):
Torque:float=Field(gt=0,default=24.25)
Hydraulic_Pressure:float=Field(gt=0,default=121.86)
Cutting:float=Field(gt=0,default=2.89)
Coolant_Pressure:float=Field(gt=0,default=6.96)
Spindle_Speed:float=Field(gt=0,default=20504.0)
Coolant_Temperature:float=Field(gt=0,default=14.9)
app=FastAPI()
@app.get("/")
def home():
return {"message":"Hello World!"}
"""
@app.post("/upload/")
def upload_csv(uploaded_file:UploadFile=File(...)):
cwd=os.getcwd()
path=os.path.join(cwd,"app","dataset.csv")
with open(path, 'w+b') as file:
shutil.copyfileobj(uploaded_file.file, file)
return {'file': uploaded_file.filename,
'content': uploaded_file.content_type,
'path': path}
"""
@app.post("/upload/")
async def upload_csv(file:UploadFile=File(...)):
df=pd.read_csv(file.file)
dataset=Dataset.from_pandas(df)
return {"message": "CSV file uploaded and saved to Hugging Face Datasets"}
@app.post("/train/")
def training():
if len(dataset)>0:
results=train(dataset)
return results
else:
return {"message":"First Upload Dataset"}
@app.post("/predict/")
def prediction(item:Item):
cwd=os.getcwd()
path=os.path.join(cwd,"app","model.pkl")
if os.path.exists(path):
arr=[[item.Torque,item.Hydraulic_Pressure,item.Cutting,item.Coolant_Pressure,item.Spindle_Speed,item.Coolant_Temperature]]
results=predict(arr)
return results
else:
return {"message":"First Train Model"}