Skip to content

Commit 29d4e45

Browse files
vertex-sdk-botcopybara-github
authored andcommitted
feat: Add preview capability to deploy models with shared resources.
PiperOrigin-RevId: 524052585
1 parent 73011c0 commit 29d4e45

File tree

4 files changed

+1186
-24
lines changed

4 files changed

+1186
-24
lines changed

google/cloud/aiplatform/models.py

+31-5
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# -*- coding: utf-8 -*-
22

3-
# Copyright 2022 Google LLC
3+
# Copyright 2023 Google LLC
44
#
55
# Licensed under the Apache License, Version 2.0 (the "License");
66
# you may not use this file except in compliance with the License.
@@ -16,7 +16,6 @@
1616
#
1717
import json
1818
import pathlib
19-
import proto
2019
import re
2120
import shutil
2221
import tempfile
@@ -37,6 +36,7 @@
3736
from google.api_core import exceptions as api_exceptions
3837
from google.auth import credentials as auth_credentials
3938
from google.auth.transport import requests as google_auth_requests
39+
import proto
4040

4141
from google.cloud import aiplatform
4242
from google.cloud.aiplatform import base
@@ -154,7 +154,7 @@ class Prediction(NamedTuple):
154154
explanations: Optional[Sequence[gca_explanation_compat.Explanation]] = None
155155

156156

157-
class Endpoint(base.VertexAiResourceNounWithFutureManager):
157+
class Endpoint(base.VertexAiResourceNounWithFutureManager, base.PreviewMixin):
158158

159159
client_class = utils.EndpointClientWithOverride
160160
_resource_noun = "endpoints"
@@ -163,6 +163,19 @@ class Endpoint(base.VertexAiResourceNounWithFutureManager):
163163
_delete_method = "delete_endpoint"
164164
_parse_resource_name_method = "parse_endpoint_path"
165165
_format_resource_name_method = "endpoint_path"
166+
_preview_class = "google.cloud.aiplatform.aiplatform.preview.models.Endpoint"
167+
168+
@property
169+
def preview(self):
170+
"""Return an Endpoint instance with preview features enabled."""
171+
from google.cloud.aiplatform.preview import models as preview_models
172+
173+
if not hasattr(self, "_preview_instance"):
174+
self._preview_instance = preview_models.Endpoint(
175+
self.resource_name, credentials=self.credentials
176+
)
177+
178+
return self._preview_instance
166179

167180
def __init__(
168181
self,
@@ -1002,7 +1015,7 @@ def _deploy_call(
10021015
deploy_request_timeout: Optional[float] = None,
10031016
autoscaling_target_cpu_utilization: Optional[int] = None,
10041017
autoscaling_target_accelerator_duty_cycle: Optional[int] = None,
1005-
):
1018+
) -> None:
10061019
"""Helper method to deploy model to endpoint.
10071020
10081021
Args:
@@ -2420,7 +2433,7 @@ def delete(self, force: bool = False, sync: bool = True) -> None:
24202433
super().delete(force=False, sync=sync)
24212434

24222435

2423-
class Model(base.VertexAiResourceNounWithFutureManager):
2436+
class Model(base.VertexAiResourceNounWithFutureManager, base.PreviewMixin):
24242437

24252438
client_class = utils.ModelClientWithOverride
24262439
_resource_noun = "models"
@@ -2429,6 +2442,19 @@ class Model(base.VertexAiResourceNounWithFutureManager):
24292442
_delete_method = "delete_model"
24302443
_parse_resource_name_method = "parse_model_path"
24312444
_format_resource_name_method = "model_path"
2445+
_preview_class = "google.cloud.aiplatform.aiplatform.preview.models.Model"
2446+
2447+
@property
2448+
def preview(self):
2449+
"""Return a Model instance with preview features enabled."""
2450+
from google.cloud.aiplatform.preview import models as preview_models
2451+
2452+
if not hasattr(self, "_preview_instance"):
2453+
self._preview_instance = preview_models.Model(
2454+
self.resource_name, credentials=self.credentials
2455+
)
2456+
2457+
return self._preview_instance
24322458

24332459
@property
24342460
def uri(self) -> Optional[str]:

0 commit comments

Comments
 (0)