@@ -49,17 +49,34 @@ Status ValidateGetModelMetadataRequest(const GetModelMetadataRequest& request) {
4949
5050Status SavedModelGetSignatureDef (ServerCore* core, const ModelSpec& model_spec,
5151 const GetModelMetadataRequest& request,
52- GetModelMetadataResponse* response) {
53- ServableHandle<SavedModelBundle> bundle;
54- TF_RETURN_IF_ERROR (core->GetServableHandle (model_spec, &bundle));
52+ GetModelMetadataResponse* response,
53+ ModelMetaOption opt) {
5554 SignatureDefMap signature_def_map;
56- for (const auto & signature : bundle->meta_graph_def .signature_def ()) {
57- (*signature_def_map.mutable_signature_def ())[signature.first ] =
58- signature.second ;
55+ std::string model_name;
56+ int64 version;
57+ if (opt.use_session_group ) {
58+ ServableHandle<SavedModelBundleV2> bundle;
59+ TF_RETURN_IF_ERROR (core->GetServableHandle (model_spec, &bundle));
60+ for (const auto & signature : bundle->meta_graph_def .signature_def ()) {
61+ (*signature_def_map.mutable_signature_def ())[signature.first ] =
62+ signature.second ;
63+ }
64+ model_name = bundle.id ().name ;
65+ version = bundle.id ().version ;
66+ } else {
67+ ServableHandle<SavedModelBundle> bundle;
68+ TF_RETURN_IF_ERROR (core->GetServableHandle (model_spec, &bundle));
69+ for (const auto & signature : bundle->meta_graph_def .signature_def ()) {
70+ (*signature_def_map.mutable_signature_def ())[signature.first ] =
71+ signature.second ;
72+ }
73+ model_name = bundle.id ().name ;
74+ version = bundle.id ().version ;
5975 }
76+
6077 auto response_model_spec = response->mutable_model_spec ();
61- response_model_spec->set_name (bundle. id (). name );
62- response_model_spec->mutable_version ()->set_value (bundle. id (). version );
78+ response_model_spec->set_name (model_name );
79+ response_model_spec->mutable_version ()->set_value (version);
6380
6481 (*response->mutable_metadata ())[GetModelMetadataImpl::kSignatureDef ].PackFrom (
6582 signature_def_map);
@@ -72,24 +89,26 @@ constexpr const char GetModelMetadataImpl::kSignatureDef[];
7289
7390Status GetModelMetadataImpl::GetModelMetadata (
7491 ServerCore* core, const GetModelMetadataRequest& request,
75- GetModelMetadataResponse* response) {
92+ GetModelMetadataResponse* response,
93+ ModelMetaOption opt) {
7694 if (!request.has_model_spec ()) {
7795 return tensorflow::Status (tensorflow::error::INVALID_ARGUMENT,
7896 " Missing ModelSpec" );
7997 }
8098 return GetModelMetadataWithModelSpec (core, request.model_spec (), request,
81- response);
99+ response, opt );
82100}
83101
84102Status GetModelMetadataImpl::GetModelMetadataWithModelSpec (
85103 ServerCore* core, const ModelSpec& model_spec,
86104 const GetModelMetadataRequest& request,
87- GetModelMetadataResponse* response) {
105+ GetModelMetadataResponse* response,
106+ ModelMetaOption opt) {
88107 TF_RETURN_IF_ERROR (ValidateGetModelMetadataRequest (request));
89108 for (const auto & metadata_field : request.metadata_field ()) {
90109 if (metadata_field == kSignatureDef ) {
91110 TF_RETURN_IF_ERROR (
92- SavedModelGetSignatureDef (core, model_spec, request, response));
111+ SavedModelGetSignatureDef (core, model_spec, request, response, opt ));
93112 } else {
94113 return tensorflow::errors::InvalidArgument (
95114 " MetadataField %s is not supported" , metadata_field);
0 commit comments