Centralized Model Management

Note

Supported file types: PMML model file (.xml) or a ZIP containing one of the following: (.h5), (.hdf5), (.onnx), (.pickle), (.pkl), (.pt), or (.pb).

Centralized Model Management

class CentralizedModel(facts_client: FactsClientAdapter)
store_model(model_meta: dict, model: str, inventory_id: str)

Publishes a model to IBM watsonx.ai repository. :param model: Local path to the model file (e.g., .pmml or .zip) :param model_meta: Metadata properties for the model (e.g., name, software spec, type) :param inventory_id: inventory id we the model will be published to :return: The published model metadata (dict) or None if failed

The way to use me is,:

centralized_model.store_model(model=model, model_meta=meta_props, inventory_id= inventory_id)

get_model(model_id: str, inventory_id: str) dict

Retrieve model details from a specified container.

Parameters:
  • model_id – The ID of the model to retrieve

  • inventory_id – The inventory ID where the model is stored

Returns:

Model details as a dictionary

Return type:

dict

The way to use me is,:

model_details = centralized_model.get_model(
    model_id="<model_id>",
    container_type="catalog",
    container_id="<inventory_id>"
)
copy_assets_to_container(inventory_id: str, asset_id: str, container_type: str, container_id: str, metadata_overrides: dict[str, Any] = None)

copy asset from Inventory to Project or Space

Parameters:
  • inventory_id – inventory id.

  • asset_id (list) – List of assets ID’s to be deleted.

  • container_type – container type.

  • container_id – container id.

  • metadata_overrides – (optional) metadata_overrides.

Return type:

None

Returns:

assets copied successfully to a container.

The way to use me is,:

centralized_model.copy_assets_to_container(inventory_id,asset_id,container_type,container_id)
delete_externally_managed_assets(inventory_id: str, asset_id: str)

Delete externally managed assets in Inventory

Parameters:
  • inventory_id – inventory id.

  • asset_id – List of assets ID’s to be deleted.

Return type:

None

Returns:

assets are deleted.

The way to use me is,:

centralized_model.delete_deployments(inventory_id,asset_id)
get_externally_managed_assets(inventory_id: str)

Get externally managed assets in an inventory

Parameters:

inventory_id – inventory id.

Returns:

externally managed asset

The way to use me is,:

centralized_model.get_externally_managed_asset(inventory_id)
get_all_externally_managed_assets()

Get all externally managed assets in an account

Returns:

externally managed asset

The way to use me is,:

centralized_model.get_externally_managed_asset()
track_externally_managed_asset(asset_id: str, inventory_id: str, usecase: ModelUsecaseUtilities = None, approach: ApproachUtilities = None, grc_model: dict = None, version_number: str = None, version_comment: str = None)

Link Model to model use case. Model asset should be stored in either Project or Space and corrsponding ID should be provided when registering to model use case.

Supported for CPD version >=4.7.0

Parameters:

:param asset_id : The asset id :param inventory_id : The inventory id :param str grc_model: (Optional) Openpages model id. Only applicable for CPD environments. This should be dictionary, output of get_grc_model() :param str version_number: Version number of model. supports either a semantic versioning string or one of the following keywords for auto-incrementing based on the latest version in the approach: “patch”, “minor”, “major” :param str version_comment: (Optional) An optional comment describing the changes made in this version

Return type:

ModelAssetUtilities

For tracking model with model usecase:

>>> centralized_model.track(usecase=<instance of ModelUsecaseUtilities>,approach=<instance of ApproachUtilities>,version_number=<version>)
untrack_externally_managed_asset(asset_id: str, inventory_id: str)

untrack model from it’s usecase and approach

Parameters:
  • asset_id – asset id.

  • inventory_id

    inventory id.

    The way to use me is,:

>>> centralized_model.untrack()
set_phase_for_externally_managed_asset(to_container: str, asset_id: str, inventory_id: str) None

Set externally managed assets to a phase

Parameters:
  • to_container – container phase .

  • asset_id – asset id

  • inventory_id – inventory id

Returns:

externally managed asset

The way to use me is,:

centralized_model.get_externally_managed_asset(inventory_id)
add_deployments(asset_id: str, inventory_id: str, phase: str, deployments: list = None, bss_account_id: str = None, call_ref: str = None) list

Adds deployments for external models for documentation purposes only. Supported for CPD version 4.7.0 and above

Parameters:
  • asset_id – The asset ID of the externally managed asset

  • inventory_id – The inventory ID where the asset is located

  • phase – The lifecycle phase for the deployment (e.g., ‘Develop’, ‘Validate’, ‘Operate’)

  • deployments (list) – List of deployments to be added. Provide deployments in a list.

  • bss_account_id – (optional) BSS account ID

  • call_ref – (optional) Call reference

Return type:

list(Deployment)

Returns:

External model deployments are added

The way to use me is,:

centralized_model.add_deployments(
    asset_id="<asset_id>",
    inventory_id="<inventory_id>",
    phase="Operate",
    deployments=[{
        "id":"<id>",
        "name":"<name>",
        "type":"<type>",
        "scoring_endpoint":"<scoring_endpoint>",
        "description":"<description>"
    }],
    bss_account_id="<bss_account_id>",
    call_ref="<call_ref>"
)
get_deployments(asset_id: str, inventory_id: str, phase: str, deployment_id: str = None, bss_account_id: str = None, call_ref: str = None) List

Get all deployment details in Lifecycle Phase of Externally Managed Asset

Parameters:
  • asset_id – The asset ID of the externally managed asset

  • inventory_id – The inventory ID where the asset is located

  • phase – The lifecycle phase for the deployment (e.g., ‘Develop’, ‘Validate’, ‘Operate’)

  • deployment_id – (optional) Specific deployment ID to retrieve. If not provided, returns all deployments

  • bss_account_id – (optional) BSS account ID

  • call_ref – (optional) Call reference

Returns:

All deployment details for external model

Return type:

list(Deployment) or dict

The way to use me is,:

centralized_model.get_deployments(
    asset_id="<asset_id>",
    inventory_id="<inventory_id>",
    phase="Operate"
)

# Or get a specific deployment
centralized_model.get_deployments(
    asset_id="<asset_id>",
    inventory_id="<inventory_id>",
    phase="Operate",
    deployment_id="<deployment_id>"
)
delete_deployments(asset_id: str, inventory_id: str, deployment_ids: list, phase: str, bss_account_id: str = None, call_ref: str = None) dict

Delete multiple deployments in Lifecycle Phase of Externally Managed Asset

Parameters:
  • asset_id – The asset ID of the externally managed asset

  • inventory_id – The inventory ID where the asset is located

  • deployment_ids – List of deployment IDs to delete

  • phase – The lifecycle phase for the deployment (e.g., ‘Develop’, ‘Validate’, ‘Operate’)

  • bss_account_id – (optional) BSS account ID

  • call_ref – (optional) Call reference

Return type:

dict

The way to use me is,:

result = centralized_model.delete_deployments(
    asset_id="<asset_id>",
    inventory_id="<inventory_id>",
    deployment_ids=["<deployment_id_1>", "<deployment_id_2>", "<deployment_id_3>"],
    phase="Operate"
)