in tensorflow/inference/docker/build_artifacts/sagemaker_neuron/tensorflowServing.js [109:138]
function parse_custom_attributes(r) {
var attributes = {}
var kv_pattern = /tfs-[a-z\-]+=[^,]+/g
var header = r.headersIn[custom_attributes_header]
if (header) {
var matches = header.match(kv_pattern)
if (matches) {
for (var i = 0; i < matches.length; i++) {
var kv = matches[i].split('=')
if (kv.length === 2) {
attributes[kv[0]] = kv[1]
}
}
}
}
// for MME invocations, tfs-model-name is in the uri, or use default_tfs_model
if (!attributes['tfs-model-name']) {
var uri_pattern = /\/models\/[^,]+\/invoke/g
var model_name = r.uri.match(uri_pattern)
if (model_name[0]) {
model_name = r.uri.replace('/models/', '').replace('/invoke', '')
attributes['tfs-model-name'] = model_name
} else {
attributes['tfs-model-name'] = r.variables.default_tfs_model
}
}
return attributes
}