def test_predict_microservice_rest(mock_post): sc = SeldonClient(deployment_name="mymodel") response = sc.microservice(method="predict") logging.info(response) assert response.success == True assert response.response.data.tensor.shape == [1, 1] assert mock_post.call_count == 1
def run_predict(args): """ Make a predict call to microservice Parameters ---------- args Command line args """ contract = json.load(open(args.contract, 'r')) contract = unfold_contract(contract) endpoint = f"{args.host}:{args.port}" sc = SeldonClient(microservice_endpoint=endpoint) for i in range(args.n_requests): batch: ndarray = generate_batch(contract, args.batch_size, 'features') if args.prnt: print(f"{'-' * 40}\nSENDING NEW REQUEST:\n") print(batch) transport = "grpc" if args.grpc else "rest" payload_type = "tensor" if args.tensor else "ndarray" response = sc.microservice(data=batch, transport=transport, method="predict", payload_type=payload_type) if args.prnt: print(f"RECEIVED RESPONSE:\n{response.response}\n")
def test_predict_microservice_rest_json_data(mock_post): sc = SeldonClient(deployment_name="mymodel") response = sc.microservice(method="predict", json_data=JSON_TEST_DATA) json_response = seldon_message_to_json(response.response) assert "jsonData" in mock_post.call_args[1]["data"]["json"] assert response.success is True assert mock_post.call_args[1]["data"]["json"] == json.dumps( {"jsonData": JSON_TEST_DATA}) assert json_response["jsonData"] == JSON_TEST_DATA assert mock_post.call_count == 1
def run_send_feedback(args): """ Make a feedback call to microservice Parameters ---------- args Command line args """ contract = json.load(open(args.contract, "r")) contract = unfold_contract(contract) endpoint = args.host + ":" + str(args.port) sc = SeldonClient(microservice_endpoint=endpoint) for i in range(args.n_requests): batch = generate_batch(contract, args.batch_size, "features") if args.prnt: print("-" * 40) print("SENDING NEW REQUEST:") if not args.grpc: transport = "rest" else: transport = "grpc" if args.tensor: payload_type = "tensor" else: payload_type = "ndarray" response_predict = sc.microservice( data=batch, transport=transport, payload_type=payload_type, method="predict" ) response_feedback = sc.microservice_feedback( prediction_request=response_predict.request, prediction_response=response_predict.response, reward=1.0, transport=transport, ) if args.prnt: print(f"RECEIVED RESPONSE:\n{response_feedback}\n")
def test_wiring_microservice_api_grpc_aggregate(mock_handler): sc = SeldonClient() response = sc.microservice(transport="grpc", method="aggregate") assert mock_handler.call_count == 1
def test_wiring_microservice_api_grpc_seldon_message(mock_handler): sc = SeldonClient() response = sc.microservice(transport="grpc", method="predict") assert mock_handler.call_count == 1
def test_predict_grpc_microservice_transform_route(): sc = SeldonClient(transport="grpc") response = sc.microservice(method="route") assert response.response.strData == "route"
from seldon_core.seldon_client import SeldonClient endpoint = "0.0.0.0:9001" # Can also use 127.0.0.1 data = [[7.0, 8.0, 9.0, 10.0]] sc = SeldonClient(microservice_endpoint=endpoint) response = sc.microservice(json_data=data, method="transform-input") print(response.request) print(response.response)