-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpredict.py
32 lines (26 loc) · 811 Bytes
/
predict.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
from typing import List
import pandas as pd
from sklearn.linear_model import ElasticNet
from columns import WineQualityData
from utils import (
load_object,
EnvironmentVariables,
download_blob_and_return_object,
timing_decorator,
)
@timing_decorator
def predict_wine_quality(wine_list: List[WineQualityData]) -> List[float]:
"""
Load model artifact from directory and predict with LinearModel
:param wine_list: wine list
:return: wine quality
"""
dataframe = pd.DataFrame(
data=[wine.model_dump(by_alias=True) for wine in wine_list]
)
model: ElasticNet = (
load_object(file_path="model.pkl")
if EnvironmentVariables().USE_LOCAL_FILE_PATH_MODEL
else download_blob_and_return_object()
)
return model.predict(dataframe)