Skip to content

Commit b3336c3

Browse files
committed
fix versions
1 parent 2d58802 commit b3336c3

3 files changed

Lines changed: 474 additions & 25 deletions

File tree

pipeline.yaml

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -279,16 +279,23 @@ deploymentSpec:
279279
}\n )\n request = {\n \"parent\": f\"projects/{project_id}/locations/{location}\"\
280280
,\n \"filter\": f\"display_name={model_name}\"\n }\n\n models\
281281
\ = list(client.list_models(request=request))\n blessed_model = None\n\
282-
\n print(f\"Found {len(models)} models with name {model_name}\")\n\n\
283-
\ for model in models:\n print(f\"Model: {model.name}, Aliases:\
284-
\ {list(model.version_aliases)}\")\n if \"blessed\" in model.version_aliases:\n\
285-
\ blessed_model = model\n break\n\n if not blessed_model:\n\
286-
\ raise ValueError(f\"No blessed version found for model {model_name}.\
287-
\ Available models: {[(m.name, list(m.version_aliases)) for m in models]}\"\
288-
)\n\n print(f\"Found blessed model: {blessed_model.name}\")\n print(f\"\
289-
Model URI: {blessed_model.artifact_uri}\")\n\n # 2. Download joblib model\
290-
\ from blessed version\n gcs_uri = blessed_model.artifact_uri\n if\
291-
\ not gcs_uri.startswith('gs://'):\n raise ValueError(f\"Expected\
282+
\n print(f\"Found {len(models)} parent models with name {model_name}\"\
283+
)\n\n # Search through all versions of all models\n for parent_model\
284+
\ in models:\n print(f\"Checking parent model: {parent_model.name}\"\
285+
)\n\n # List all versions of this model\n versions_request\
286+
\ = {\"parent\": parent_model.name}\n versions = list(client.list_model_versions(request=versions_request))\n\
287+
\n print(f\"Found {len(versions)} versions for this model\")\n\n\
288+
\ for version in versions:\n print(f\"Version {version.version_id}:\
289+
\ Aliases = {list(version.version_aliases)}\")\n if \"blessed\"\
290+
\ in version.version_aliases:\n blessed_model = version\n\
291+
\ print(f\"Found blessed version: {version.version_id}\"\
292+
)\n break\n\n if blessed_model:\n break\n\
293+
\n if not blessed_model:\n raise ValueError(f\"No blessed version\
294+
\ found for model {model_name}. Available models: {[(m.name, list(m.version_aliases))\
295+
\ for m in models]}\")\n\n print(f\"Found blessed model: {blessed_model.name}\"\
296+
)\n print(f\"Model URI: {blessed_model.artifact_uri}\")\n\n # 2. Download\
297+
\ joblib model from blessed version\n gcs_uri = blessed_model.artifact_uri\n\
298+
\ if not gcs_uri.startswith('gs://'):\n raise ValueError(f\"Expected\
292299
\ GCS URI, got: {gcs_uri}\")\n\n bucket_name = gcs_uri.replace('gs://',\
293300
\ '').split('/')[0]\n model_path = '/'.join(gcs_uri.replace('gs://',\
294301
\ '').split('/')[1:])\n\n print(f\"Downloading model from gs://{bucket_name}/{model_path}\"\

src/ml_pipelines_kfp/iris_xgboost/pipelines/components/deploy.py

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,27 +31,37 @@ def deploy_blessed_model_to_fastapi(
3131
# 1. Initialize Vertex AI and find blessed model
3232
aiplatform.init(project=project_id, location=location)
3333

34-
client = aiplatform_v1.ModelServiceClient(
35-
client_options={"api_endpoint": f"{location}-aiplatform.googleapis.com"}
36-
)
37-
request = {
38-
"parent": f"projects/{project_id}/locations/{location}",
39-
"filter": f"display_name={model_name}"
40-
}
41-
42-
models = list(client.list_models(request=request))
34+
print(f"Searching for blessed model with name: {model_name}")
35+
36+
# Use the high-level aiplatform library to list all model versions
37+
models = aiplatform.Model.list(filter=f"display_name={model_name}")
4338
blessed_model = None
4439

45-
print(f"Found {len(models)} models with name {model_name}")
40+
print(f"Found {len(models)} model versions with name {model_name}")
4641

47-
for model in models:
48-
print(f"Model: {model.name}, Aliases: {list(model.version_aliases)}")
49-
if "blessed" in model.version_aliases:
50-
blessed_model = model
42+
# Search through all model versions (each item in models is already a version)
43+
for parent_model in models:
44+
print(f"Checking parent model: {parent_model.name}")
45+
46+
# List all versions of this model
47+
versions_request = {"name": parent_model.name}
48+
versions = list(client.list_model_versions(request=versions_request))
49+
50+
print(f"Found {len(versions)} versions for this model")
51+
52+
for version in versions:
53+
print(f"Version {version.version_id}: Aliases = {list(version.version_aliases)}")
54+
if "blessed" in version.version_aliases:
55+
blessed_model = version
56+
print(f"Found blessed version: {version.version_id}")
57+
break
58+
59+
if blessed_model:
5160
break
5261

5362
if not blessed_model:
54-
raise ValueError(f"No blessed version found for model {model_name}. Available models: {[(m.name, list(m.version_aliases)) for m in models]}")
63+
available_versions = [(m.resource_name, m.version_id, list(m.version_aliases)) for m in models]
64+
raise ValueError(f"No blessed version found for model {model_name}. Available versions: {available_versions}")
5565

5666
print(f"Found blessed model: {blessed_model.name}")
5767
print(f"Model URI: {blessed_model.artifact_uri}")

0 commit comments

Comments
 (0)