@@ -272,18 +272,21 @@ def delete_model_reference(self, model_name: str) -> None:
272272 def describe_model (
273273 self , model_name : str , hub_name : Optional [str ] = None , model_version : Optional [str ] = None
274274 ) -> DescribeHubContentResponse :
275- """Describe model in the SageMaker Hub."""
275+ """Describe Model or ModelReference in a Hub."""
276+ hub_name = self .hub_name if not hub_name else hub_name
277+
278+ # Users only input model id, not contentType, so first try to describe with ModelReference, then with Model
276279 try :
277280 model_version = get_hub_model_version (
278281 hub_model_name = model_name ,
279282 hub_model_type = HubContentType .MODEL_REFERENCE .value ,
280- hub_name = self . hub_name if not hub_name else hub_name ,
283+ hub_name = hub_name ,
281284 sagemaker_session = self ._sagemaker_session ,
282285 hub_model_version = model_version ,
283286 )
284287
285288 hub_content_description : Dict [str , Any ] = self ._sagemaker_session .describe_hub_content (
286- hub_name = self . hub_name if not hub_name else hub_name ,
289+ hub_name = hub_name ,
287290 hub_content_name = model_name ,
288291 hub_content_version = model_version ,
289292 hub_content_type = HubContentType .MODEL_REFERENCE .value ,
@@ -294,19 +297,30 @@ def describe_model(
294297 "Received exeption while calling APIs for ContentType ModelReference, retrying with ContentType Model: "
295298 + str (ex )
296299 )
297- model_version = get_hub_model_version (
298- hub_model_name = model_name ,
299- hub_model_type = HubContentType .MODEL .value ,
300- hub_name = self .hub_name if not hub_name else hub_name ,
301- sagemaker_session = self ._sagemaker_session ,
302- hub_model_version = model_version ,
303- )
304300
305- hub_content_description : Dict [str , Any ] = self ._sagemaker_session .describe_hub_content (
306- hub_name = self .hub_name if not hub_name else hub_name ,
307- hub_content_name = model_name ,
308- hub_content_version = model_version ,
309- hub_content_type = HubContentType .MODEL .value ,
310- )
301+ # Failed to describe ModelReference, try with Model
302+ try :
303+ model_version = get_hub_model_version (
304+ hub_model_name = model_name ,
305+ hub_model_type = HubContentType .MODEL .value ,
306+ hub_name = hub_name ,
307+ sagemaker_session = self ._sagemaker_session ,
308+ hub_model_version = model_version ,
309+ )
310+
311+ hub_content_description : Dict [str , Any ] = self ._sagemaker_session .describe_hub_content (
312+ hub_name = hub_name ,
313+ hub_content_name = model_name ,
314+ hub_content_version = model_version ,
315+ hub_content_type = HubContentType .MODEL .value ,
316+ )
317+
318+ except Exception as ex :
319+ # Failed with both, throw a custom error message
320+ raise Exception (
321+ f"Cannot get details for { model_name } in Hub { hub_name } . \
322+ { model_name } does not exist as a Model or ModelReference in { hub_name } : \n "
323+ + str (ex )
324+ )
311325
312326 return DescribeHubContentResponse (hub_content_description )
0 commit comments