forked from zjesko/mlops-iris
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.py
More file actions
57 lines (45 loc) · 1.25 KB
/
main.py
File metadata and controls
57 lines (45 loc) · 1.25 KB
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import uvicorn
from scipy.sparse import issparse
from fastapi import FastAPI
from pydantic import BaseModel
from ml_utils import load_model, predict
from datetime import datetime, timezone
app = FastAPI(
title="Iris Predictor",
docs_url="/"
)
app.add_event_handler("startup", load_model)
class QueryIn(BaseModel):
sepal_length: float
sepal_width: float
petal_length: float
petal_width: float
class FeedbackIn(BaseModel):
sepal_length: float
sepal_width: float
petal_length: float
petal_width: float
flower_class: str
class QueryOut(BaseModel):
flower_class: str
@app.get("/ping")
def ping():
return {"ping": "pong"}
#@app.post("/feedback_loop", status_code=200)
#def feedback_loop(
# data: list[FeedbackIn]
#):
# retrain(data)
# return {"detail": "Feedback loop successful"}
@app.get("/Time")
async def root(start_date: datetime = datetime.now(timezone.utc)):
print(start_date)
return {"Time_Stamp": start_date}
@app.post("/predict_flower", response_model=QueryOut, status_code=200)
def predict_flower(
query_data: QueryIn
):
output = {'flower_class': predict(query_data)}
return output
if __name__ == "__main__":
uvicorn.run("main:app", host='0.0.0.0', port=8888, reload=True)