Source code for model_server.model_server

# Copyright 2019 Iguazio
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Generated by nuclio.export.NuclioExporter

import mlrun

from cloudpickle import load
from typing import List
from datetime import datetime
from sklearn.datasets import load_iris

import warnings

warnings.filterwarnings("ignore")

import os
import numpy as np


[docs] class ClassifierModel(mlrun.runtimes.MLModelServer):
[docs] def load(self): """Load model from storage.""" model_file, extra_data = self.get_model(".pkl") self.model = load(open(model_file, "rb"))
[docs] def predict(self, body: dict) -> List: """Generate model predictions from sample. :param body : A dict of observations, each of which is an 1-dimensional feature vector. Returns model predictions as a `List`, one for each row in the `body` input `List`. """ try: feats = np.asarray(body["instances"]) result: np.ndarray = self.model.predict(feats) resp = result.tolist() except Exception as e: raise Exception(f"Failed to predict {e}") return resp