Skip to content

Commit 6917c98

Browse files
committed
PR review comments
1 parent 619a925 commit 6917c98

File tree

4 files changed

+41
-27
lines changed

4 files changed

+41
-27
lines changed

ads/aqua/constants.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,6 @@
5454
SERVICE_MANAGED_CONTAINER_URI_SCHEME = "dsmc://"
5555
SUPPORTED_FILE_FORMATS = ["jsonl"]
5656
MODEL_BY_REFERENCE_OSS_PATH_KEY = "artifact_location"
57-
DEFAULT_WAIT_TIME = 1200
58-
DEFAULT_POLL_INTERVAL = 10
5957

6058
CONSOLE_LINK_RESOURCE_TYPE_MAPPING = {
6159
"datasciencemodel": "models",

ads/aqua/modeldeployment/constants.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,5 @@
88
99
This module contains constants used in Aqua Model Deployment.
1010
"""
11+
DEFAULT_WAIT_TIME = 1200
12+
DEFAULT_POLL_INTERVAL = 10

ads/aqua/modeldeployment/deployment.py

Lines changed: 37 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
from typing import Dict, List, Optional, Union
99

1010
from cachetools import TTLCache, cached
11-
import concurrent
11+
from ads.aqua.modeldeployment.constants import DEFAULT_POLL_INTERVAL, DEFAULT_WAIT_TIME
12+
from ads.common.decorator.threaded import threaded
1213
from ads.common.work_request import DataScienceWorkRequest
1314
from oci.data_science.models import ModelDeploymentShapeSummary
1415
from pydantic import ValidationError
@@ -44,10 +45,9 @@
4445
AQUA_MULTI_MODEL_CONFIG,
4546
MODEL_BY_REFERENCE_OSS_PATH_KEY,
4647
MODEL_NAME_DELIMITER,
47-
UNKNOWN_DICT,
48-
DEFAULT_WAIT_TIME,
49-
DEFAULT_POLL_INTERVAL
48+
UNKNOWN_DICT
5049
)
50+
5151
from ads.aqua.data import AquaResourceIdentifier
5252
from ads.aqua.model import AquaModelApp
5353
from ads.aqua.model.constants import AquaModelMetadataKeys, ModelCustomMetadataFields
@@ -81,13 +81,10 @@
8181
ModelDeploymentInfrastructure,
8282
ModelDeploymentMode,
8383
)
84+
8485
from ads.model.model_metadata import ModelCustomMetadataItem
8586
from ads.telemetry import telemetry
8687

87-
THREAD_POOL_SIZE = 16
88-
thread_pool = concurrent.futures.ThreadPoolExecutor(max_workers=THREAD_POOL_SIZE)
89-
90-
9188
class AquaDeploymentApp(AquaApp):
9289
"""Provides a suite of APIs to interact with Aqua model deployments within the Oracle
9390
Cloud Infrastructure Data Science service, serving as an interface for deploying
@@ -789,15 +786,15 @@ def _create_deployment(
789786

790787

791788

792-
deployment_id = deployment.id()
789+
deployment_id = deployment.id
793790
logger.info(
794791
f"Aqua model deployment {deployment_id} created for model {aqua_model_id}."
795792
)
796793

797-
thread_pool.submit(self.get_deployment_status,
798-
model_deployment_id=deployment_id,
799-
work_request_id=deployment.dsc_model_deployment.workflow_req_id,
800-
model_type=model_type)
794+
self.get_deployment_status(
795+
model_deployment_id=deployment_id,
796+
work_request_id=deployment.dsc_model_deployment.workflow_req_id,
797+
model_type=model_type)
801798

802799
# we arbitrarily choose last 8 characters of OCID to identify MD in telemetry
803800
telemetry_kwargs = {"ocid": get_ocid_substring(deployment_id, key_len=8)}
@@ -1325,13 +1322,31 @@ def list_shapes(self, **kwargs) -> List[ComputeShapeSummary]:
13251322
for oci_shape in oci_shapes
13261323
]
13271324

1325+
@threaded()
1326+
def get_deployment_status(self,model_deployment_id: str, work_request_id : str, model_type : str) -> None:
1327+
"""Waits for the data science model deployment to be completed and log its status in telemetry.
1328+
1329+
Parameters
1330+
----------
13281331
1329-
def get_deployment_status(self,model_deployment_id: str, work_request_id : str, model_type : str) :
1332+
model_deployment_id: str
1333+
The id of the deployed aqua model.
1334+
work_request_id: str
1335+
The work request Id of the model deployment.
1336+
model_type: str
1337+
The type of aqua model to be deployed. Allowed values are: `custom`, `service` and `multi_model`.
13301338
1339+
Returns
1340+
-------
1341+
AquaDeployment
1342+
An Aqua deployment instance.
1343+
"""
13311344
telemetry_kwargs = {"ocid": get_ocid_substring(model_deployment_id, key_len=8)}
1345+
1346+
data_science_work_request:DataScienceWorkRequest = DataScienceWorkRequest(work_request_id)
13321347

13331348
try:
1334-
DataScienceWorkRequest(work_request_id).wait_work_request(
1349+
data_science_work_request.wait_work_request(
13351350
progress_bar_description="Creating model deployment",
13361351
max_wait_time=DEFAULT_WAIT_TIME,
13371352
poll_interval=DEFAULT_POLL_INTERVAL
@@ -1343,13 +1358,13 @@ def get_deployment_status(self,model_deployment_id: str, work_request_id : str,
13431358
self.telemetry.record_event_async(
13441359
category=f"aqua/{model_type}/deployment/status",
13451360
action="FAILED",
1346-
detail="Error creating model deployment"
1361+
detail=data_science_work_request._error_message
13471362
**telemetry_kwargs
13481363
)
1364+
else :
1365+
self.telemetry.record_event_async(
1366+
category=f"aqua/{model_type}/deployment/status",
1367+
action="SUCCEEDED",
1368+
**telemetry_kwargs
1369+
)
13491370

1350-
self.telemetry.record_event_async(
1351-
category=f"aqua/{model_type}/deployment/status",
1352-
action="SUCCEEDED",
1353-
detail=" Create model deployment successful",
1354-
**telemetry_kwargs
1355-
)

ads/common/work_request.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ def __init__(
3737
description: str = "Processing",
3838
config: dict = None,
3939
signer: Signer = None,
40-
client_kwargs: dict = None,
41-
_error_message: str = None,
40+
client_kwargs: dict = None,
4241
**kwargs
4342
) -> None:
4443
"""Initializes ADSWorkRequest object.
@@ -66,7 +65,7 @@ def __init__(
6665
self._description = description
6766
self._percentage = 0
6867
self._status = None
69-
_error_message = _error_message
68+
_error_message = None
7069
super().__init__(config, signer, client_kwargs, **kwargs)
7170

7271

0 commit comments

Comments
 (0)