def test_sklearn_v2(self, namespace): deploy_model( "sklearn", namespace=namespace, protocol="kfserving", model_implementation="SKLEARN_SERVER", model_uri="gs://seldon-models/sklearn/iris", ) wait_for_status("sklearn", namespace) wait_for_rollout("sklearn", namespace) time.sleep(1) logging.warning("Initial request") r = v2_protocol.inference_request( model_name="sklearn", namespace=namespace, payload={ "inputs": [{ "name": "input-0", "shape": [1, 4], "datatype": "FP32", "data": [[0.1, 0.2, 0.3, 0.4]], }] }, ) assert r.status_code == 200
def test_xgboost_v2(self, namespace): deploy_model( "xgboost", namespace=namespace, protocol="kfserving", model_implementation="XGBOOST_SERVER", model_uri="gs://seldon-models/xgboost/iris", ) wait_for_status("xgboost", namespace) wait_for_rollout("xgboost", namespace) time.sleep(1) logging.warning("Initial request") r = v2_protocol.inference_request( deployment_name="xgboost", model_name="model", namespace=namespace, payload={ "inputs": [ { "name": "input-0", "shape": [1, 4], "datatype": "FP32", "data": [[0.1, 0.2, 0.3, 0.4]], } ] }, ) assert len(r["outputs"]) > 0
def test_model_rest(s2i_image, namespace): deploy_model("mymodel", namespace=namespace, model_image=s2i_image) wait_for_status("mymodel", namespace) wait_for_rollout("mymodel", namespace) r = initial_rest_request("mymodel", namespace) assert r.status_code == 200 assert r.json()["data"]["tensor"]["shape"] == [1] assert r.json()["data"]["tensor"]["values"] == [1.0]
def test_mlflow_v2(self, namespace): tag = "mlflow" deploy_model( tag, namespace=namespace, protocol="kfserving", model_implementation="MLFLOW_SERVER", model_uri="gs://seldon-models/v1.10.0-dev/mlflow/elasticnet_wine", ) wait_for_status(tag, namespace) wait_for_rollout(tag, namespace) time.sleep(1) logging.warning("Initial request") r = v2_protocol.inference_request( deployment_name=tag, model_name="model", namespace=namespace, payload={ "parameters": { "content_type": "pd" }, "inputs": [ { "name": "fixed acidity", "shape": [1], "datatype": "FP32", "data": [7.4], "parameters": { "content_type": "np" }, }, { "name": "volatile acidity", "shape": [1], "datatype": "FP32", "data": [0.7000], "parameters": { "content_type": "np" }, }, { "name": "citric acidity", "shape": [1], "datatype": "FP32", "data": [0], "parameters": { "content_type": "np" }, }, { "name": "residual sugar", "shape": [1], "datatype": "FP32", "data": [1.9], "parameters": { "content_type": "np" }, }, { "name": "chlorides", "shape": [1], "datatype": "FP32", "data": [0.076], "parameters": { "content_type": "np" }, }, { "name": "free sulfur dioxide", "shape": [1], "datatype": "FP32", "data": [11], "parameters": { "content_type": "np" }, }, { "name": "total sulfur dioxide", "shape": [1], "datatype": "FP32", "data": [34], "parameters": { "content_type": "np" }, }, { "name": "density", "shape": [1], "datatype": "FP32", "data": [0.9978], "parameters": { "content_type": "np" }, }, { "name": "pH", "shape": [1], "datatype": "FP32", "data": [3.51], "parameters": { "content_type": "np" }, }, { "name": "sulphates", "shape": [1], "datatype": "FP32", "data": [0.56], "parameters": { "content_type": "np" }, }, { "name": "alcohol", "shape": [1], "datatype": "FP32", "data": [9.4], "parameters": { "content_type": "np" }, }, ], }, ) assert r.status_code == 200