Movatterモバイル変換


[0]ホーム

URL:


ContentsMenuExpandLight modeDark modeAuto light/dark, in light modeAuto light/dark, in dark modeSkip to content
IBM watsonx.ai
IBM watsonx.ai
Back to top

Source code for ibm_watsonx_ai.factsheets

#  -----------------------------------------------------------------------------------------#  (C) Copyright IBM Corp. 2023-2025.#  https://opensource.org/licenses/BSD-3-Clause#  -----------------------------------------------------------------------------------------from__future__importannotationsfromtypingimportTYPE_CHECKINGimportibm_watsonx_ai._wrappers.requestsasrequestsfromibm_watsonx_ai.utilsimportprint_text_header_h2fromibm_watsonx_ai.wml_client_errorimportWMLClientError,WrongMetaPropsfromibm_watsonx_ai.wml_resourceimportWMLResourcefrom.metanamesimportFactsheetsMetaNamesifTYPE_CHECKING:fromibm_watsonx_aiimportAPIClient
[docs]classFactsheets(WMLResource):"""Link WML Model to Model Entry."""cloud_platform_spaces:bool=Falseicp_platform_spaces:bool=Falsedef__init__(self,client:APIClient)->None:WMLResource.__init__(self,__name__,client)self.ConfigurationMetaNames=FactsheetsMetaNames()ifclient.CLOUD_PLATFORM_SPACES:Factsheets.cloud_platform_spaces=Trueifclient.ICP_PLATFORM_SPACES:Factsheets.icp_platform_spaces=True
[docs]defregister_model_entry(self,model_id:str,meta_props:dict[str,str],catalog_id:str|None=None)->dict:"""Link WML Model to Model Entry :param model_id: ID of the published model/asset :type model_id: str :param meta_props: metaprops, to see the available list of meta names use: .. code-block:: python client.factsheets.ConfigurationMetaNames.get() :type meta_props: dict[str, str] :param catalog_id: catalog ID where you want to register model :type catalog_id: str, optional :return: metadata of the registration :rtype: dict **Example:** .. code-block:: python meta_props = { client.factsheets.ConfigurationMetaNames.ASSET_ID: '83a53931-a8c0-4c2f-8319-c793155e7517'} registration_details = client.factsheets.register_model_entry(model_id, catalog_id, meta_props) or .. code-block:: python meta_props = { client.factsheets.ConfigurationMetaNames.NAME: "New model entry", client.factsheets.ConfigurationMetaNames.DESCRIPTION: "New model entry"} registration_details = client.factsheets.register_model_entry(model_id, meta_props) """Factsheets._validate_type(model_id,"model_id",str,True)Factsheets._validate_type(catalog_id,"catalog_id",str,False)metaProps=self.ConfigurationMetaNames._generate_resource_metadata(meta_props)params=self._client._params()ifcatalog_idisnotNone:params["catalog_id"]=catalog_idif"project_id"inparams:delparams["project_id"]elif"space_id"inparams:delparams["space_id"]name_in=self.ConfigurationMetaNames.NAMEinmetaPropsdescription_in=self.ConfigurationMetaNames.DESCRIPTIONinmetaPropsasset_id_in=self.ConfigurationMetaNames.ASSET_IDinmetaProps# check for metaprops correctnessreason="Please provide either NAME and DESCRIPTION or ASSET_ID"ifname_inanddescription_in:ifasset_id_in:raiseWrongMetaProps(reason=reason)elifasset_id_in:ifname_inordescription_in:raiseWrongMetaProps(reason=reason)else:raiseWrongMetaProps(reason=reason)url=self._client._href_definitions.get_wkc_model_register_href(model_id)response=requests.post(url,json=metaProps,params=params,# version is mandatoryheaders=self._client._get_headers(),)ifresponse.status_code==200:print_text_header_h2(f"Successfully finished linking WML Model '{model_id}' to Model Entry.")else:error_msg="WML Model registration failed"reason=response.textprint(reason)print_text_header_h2(error_msg)raiseWMLClientError(error_msg+". Error: "+str(response.status_code)+". "+reason)returnresponse.json()
[docs]deflist_model_entries(self,catalog_id:str|None=None)->dict:"""Return all WKC Model Entry assets for a catalog. :param catalog_id: catalog ID where you want to register model. If no catalog_id is provided, WKC Model Entry assets from all catalogs are listed. :type catalog_id: str, optional :return: all WKC Model Entry assets for a catalog :rtype: dict **Example:** .. code-block:: python model_entries = client.factsheets.list_model_entries(catalog_id) """ifcatalog_idisnotNone:Factsheets._validate_type(catalog_id,"catalog_id",str,True)url=self._client._href_definitions.get_wkc_model_list_from_catalog_href(catalog_id)else:url=self._client._href_definitions.get_wkc_model_list_all_href()response=requests.get(url,params=self._client._params(),# version is mandatoryheaders=self._client._get_headers(),)ifresponse.status_code==200:returnresponse.json()else:error_msg="WKC Models listing failed"reason=response.textprint(reason)print_text_header_h2(error_msg)raiseWMLClientError(error_msg+". Error: "+str(response.status_code)+". "+reason)
[docs]defunregister_model_entry(self,asset_id:str,catalog_id:str|None=None)->None:"""Unregister WKC Model Entry :param asset_id: ID of the WKC model entry :type asset_id: str :param catalog_id: catalog ID where the asset is stored, when not provided, default client space or project will be taken :type catalog_id: str, optional **Example:** .. code-block:: python model_entries = client.factsheets.unregister_model_entry(asset_id='83a53931-a8c0-4c2f-8319-c793155e7517', catalog_id='34553931-a8c0-4c2f-8319-c793155e7517') or .. code-block:: python client.set.default_space('98f53931-a8c0-4c2f-8319-c793155e7517') model_entries = client.factsheets.unregister_model_entry(asset_id='83a53931-a8c0-4c2f-8319-c793155e7517') """Factsheets._validate_type(asset_id,"asset_id",str,True)Factsheets._validate_type(catalog_id,"catalog_id",str,False)url=self._client._href_definitions.get_wkc_model_delete_href(asset_id)params=self._client._params()ifcatalog_idisnotNone:params["catalog_id"]=catalog_idif"space_id"instr(params):delparams["space_id"]elif"project_id"instr(params):delparams["project_id"]response=requests.delete(url,params=params,# version is mandatoryheaders=self._client._get_headers(),)ifresponse.status_code==204:print_text_header_h2(f"Successfully finished unregistering WKC Model '{asset_id}' Entry.")else:error_msg="WKC Model Entry unregistering failed"reason=response.textprint(reason)print_text_header_h2(error_msg)raiseWMLClientError(error_msg+". Error: "+str(response.status_code)+". "+reason)

[8]
ページ先頭

©2009-2025 Movatter.jp