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_sklearn_v2(self, namespace): spec = "../resources/iris-sklearn-v2.yaml" retry_run(f"kubectl apply -f {spec} -n {namespace}") 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": [4], "datatype": "FP32", "data": [[0.1, 0.2, 0.3, 0.4]], }], }, ) assert r.status_code == 200 run(f"kubectl delete -f {spec} -n {namespace}", shell=True)
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