List model versions¶
This example demonstrates how you can use the MLOps Python client to list all the model versions for a given registered model in the external model registry using the ExternalRegisteredModelVersionService
of the MLOps API.
Before you begin
- Ensure that the external model registry is configured.
- You will need the values for the following constants in order to successfully carry out the task. Contact your administrator to obtain deployment specific values.
Constant |
Value |
Description |
---|---|---|
MLOPS_API_URL |
Usually: https://api.mlops.my.domain |
Defines the URL for the MLOps Gateway component. |
TOKEN_ENDPOINT_URL |
https://mlops.keycloak.domain/auth/realms/[fill-in-realm-name]/protocol/openid-connect/token |
Defines the token endpoint URL of the Identity Provider. This uses Keycloak as the Identity Provider. Keycloak Realm should be provided. |
REFRESH_TOKEN |
<your-refresh-token> |
Defines the user's refresh token. |
CLIENT_ID |
<your-client-id> |
Sets the client id for authentication. This is the client you will be using to connect to MLOps. |
CLIENT_SECRET |
<your-client-secret> |
Sets the client secret. |
REGISTERED_MODEL_NAME |
<model-name> |
Provide the registered model name in the external model registry for which you want to list the versions. |
The following steps demonstrate how you can use the MLOps Python client to list all the model versions for a given registered model in the external model registry.
-
Change the values of the following constants in your
ListModelVersions.py
file as given in the preceding data table.ListModelVersions.py### Constants MLOPS_API_URL = "https://api.mlops.my.domain" TOKEN_ENDPOINT_URL="https://mlops.keycloak.domain/auth/realms/[fill-in-realm-name]/protocol/openid-connect/token" REFRESH_TOKEN="<your-refresh-token>" CLIENT_ID="<your-mlops-client>" CLIENT_SECRET = "<your-client-secret>" REGISTERED_MODEL_NAME = "<model-name>"
-
Run the
ListModelVersions.py
file.python3 ListModelVersions.py
-
This lists all the model versions for the registered model name you have specified.
{ "externalRegisteredModelVersions" : [ { "sourceKey" : "sourceKey", "updatedTime" : "2000-01-23T04:56:07.000+00:00", "statusDescription" : "statusDescription", "sourceCreatedBy" : "sourceCreatedBy", "adapterModelVersionId" : "adapterModelVersionId", "createdBy" : "createdBy", "artefactId" : "artefactId", "createdTime" : "2000-01-23T04:56:07.000+00:00", "mlflowStage" : "mlflowStage", "version" : "version" }, { "sourceKey" : "sourceKey", "updatedTime" : "2000-01-23T04:56:07.000+00:00", "statusDescription" : "statusDescription", "sourceCreatedBy" : "sourceCreatedBy", "adapterModelVersionId" : "adapterModelVersionId", "createdBy" : "createdBy", "artefactId" : "artefactId", "createdTime" : "2000-01-23T04:56:07.000+00:00", "mlflowStage" : "mlflowStage", "version" : "version" } ], "paging" : { "nextPageToken" : "nextPageToken" } }
Example walkthrough¶
This section provides a walkthrough of the ListModelVersions.py
file.
-
List the model versions for the given registered model name by calling the
ListRegisteredModelVersionsForModel
endpoint of theExternalRegisteredModelVersionService
.ListModelVersions.pydef _form_list_model_version_request(model_name:str): return mlops.ModelregistryListRegisteredModelVersionsForModelRequest( source_key=model_name ) def _list_all_versions_for_model( mlops_client: mlops.Client, model_name: str ): return mlops_client.external_registry.external_registered_model_version_service.list_registered_model_versions_for_model( _form_list_model_version_request(model_name) )
-
In the main function, set up the token provider using an existing refresh token and client secret, and then set up the MLOps client.
-
Call the
_list_all_versions_for_model
function with theREGISTERED_MODEL_NAME
defined at the beginning of the script.ListModelVersions.pyversion_list = _list_all_versions_for_model(mlops_client, REGISTERED_MODEL_NAME) print(version_list)