22f1000545 commited on
Commit
fc98586
·
1 Parent(s): e15d273

Deploy FastAPI iris classifier

Browse files
Files changed (2) hide show
  1. app.py +19 -0
  2. requirements.txt +4 -0
app.py ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from fastapi import FastAPI
2
+ from sklearn.datasets import load_iris
3
+ from sklearn.tree import DecisionTreeClassifier
4
+ import numpy as np
5
+
6
+ app = FastAPI()
7
+ iris = load_iris()
8
+ model = DecisionTreeClassifier(random_state=42)
9
+ model.fit(iris.data, iris.target)
10
+ class_names = ["setosa", "versicolor", "virginica"]
11
+
12
+ @app.get("/health")
13
+ async def health(): return {"status": "ok"}
14
+
15
+ @app.get("/predict")
16
+ async def predict(sl: float, sw: float, pl: float, pw: float):
17
+ features = np.array([[sl, sw, pl, pw]])
18
+ pred = int(model.predict(features)[0])
19
+ return {"prediction": pred, "class_name": class_names[pred]}
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ fastapi
2
+ uvicorn
3
+ scikit-learn
4
+ numpy