-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathhandler.py
More file actions
26 lines (19 loc) · 795 Bytes
/
handler.py
File metadata and controls
26 lines (19 loc) · 795 Bytes
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
import os
import pickle
labels = ["setosa", "versicolor", "virginica"]
class Handler:
def __init__(self, config, model_client):
self.client = model_client
def load_model(self, model_path):
return pickle.load(open(os.path.join(model_path, "model.pkl"), "rb"))
def handle_post(self, payload, query_params):
model_version = query_params.get("version", "latest")
model = self.client.get_model(model_version=model_version)
model_input = [
payload["sepal_length"],
payload["sepal_width"],
payload["petal_length"],
payload["petal_width"],
]
label_index = model.predict([model_input]).item()
return {"prediction": labels[label_index], "model": {"version": model_version}}