in src/inference.py [0:0]
def input_fn(request_body, request_content_type):
"""
The SageMaker XGBoost model server receives the request data body and the content type,
and invokes the `input_fn`.
Return a DMatrix (an object that can be passed to predict_fn).
"""
if request_content_type == "text/libsvm":
return xgb_encoders.libsvm_to_dmatrix(request_body)
elif request_content_type == "text/csv":
return xgb_encoders.csv_to_dmatrix(request_body.rstrip("\n"))
elif request_content_type == "application/json":
#-----------------
# single input implementation
#-----------------
request = json.loads(request_body)
feature = ",".join(request.values())
return xgb_encoders.csv_to_dmatrix(feature.rstrip("\n"))
else:
raise ValueError("Content type {} is not supported.".format(request_content_type))