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
示例#3
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