in src/sagemaker_xgboost_container/algorithm_mode/serve.py [0:0]
def invocations():
payload = flask.request.data
if len(payload) == 0:
return flask.Response(response="", status=http.client.NO_CONTENT)
try:
dtest, content_type = serve_utils.parse_content_data(payload, flask.request.content_type)
except Exception as e:
logging.exception(e)
return flask.Response(response=str(e), status=http.client.UNSUPPORTED_MEDIA_TYPE)
try:
format = load_model()
except Exception as e:
logging.exception(e)
return flask.Response(response="Unable to load model: %s" % e, status=http.client.INTERNAL_SERVER_ERROR)
try:
preds = ScoringService.predict(data=dtest, content_type=content_type, model_format=format)
except Exception as e:
logging.exception(e)
return flask.Response(response="Unable to evaluate payload provided: %s" % e, status=http.client.BAD_REQUEST)
if serve_utils.is_selectable_inference_output():
try:
accept = _parse_accept(flask.request)
except Exception as e:
logging.exception(e)
return flask.Response(response=str(e), status=http.client.NOT_ACCEPTABLE)
return _handle_selectable_inference_response(preds, accept)
if SAGEMAKER_BATCH:
return_data = "\n".join(map(str, preds.tolist())) + '\n'
else:
return_data = ",".join(map(str, preds.tolist()))
return flask.Response(response=return_data, status=http.client.OK, mimetype="text/csv")