-
Notifications
You must be signed in to change notification settings - Fork 28
/
main.py
39 lines (34 loc) · 1.04 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from fastapi import FastAPI, File, Form, UploadFile
from pydantic import BaseModel
import pickle
import numpy as np
import pandas as pd
from io import StringIO
app = FastAPI()
class IrisSpecies(BaseModel):
sepal_length: float
sepal_width: float
petal_length: float
petal_width: float
@app.post('/predict')
async def predict_species(iris: IrisSpecies):
data = iris.dict()
loaded_model = pickle.load(open('LRClassifier.pkl', 'rb'))
data_in = [[data['sepal_length'], data['sepal_width'], data['petal_length'], data['petal_width']]]
prediction = loaded_model.predict(data_in)
probability = loaded_model.predict_proba(data_in).max()
return {
'prediction': prediction[0],
'probability': probability
}
@app.post("/files/")
async def create_file(file: bytes = File(...), token: str = Form(...)):
s=str(file,'utf-8')
data = StringIO(s)
df=pd.read_csv(data)
print(df)
#return df
return {
"file": df,
"token": token,
}