Skip to content

Commit e302767

Browse files
committed
fixing update model and deployment
1 parent 56870dc commit e302767

File tree

4 files changed

+59
-23
lines changed

4 files changed

+59
-23
lines changed

metadata.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
author: guipleite
22
datetime_creted: 29/03/2021_13:46:23:802394723
3-
deployment_uid: 5876f2ba-1e57-41a7-b452-430da96f5ac7
3+
deployment_uid: 59562979-4bb8-4cc4-85f0-fb7a280b8b3c
44
model_type: scikit-learn_0.23
5-
model_uid: 9db8c7d8-bd1d-4c0a-92da-fad29f1747e3
5+
model_uid: 3d5e76dc-a4a3-43a9-ab54-debbdbdc8673
66
project_name: Rain_aus
77
project_version: v0.3

src/scripts/Pipelines/model_redeploy_pipeline.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,12 @@
66

77
"""
88
Usage:
9-
python3 model_reploy_pipeline.py ./pickle_model ../path/to/project/ ../credentials.yaml
9+
python3 model_reploy_pipeline.py ../path/to/project/ ../credentials.yaml
1010
1111
"""
1212

13-
MODEL_PATH = os.path.abspath(sys.argv[1])
14-
PROJ_PATH = os.path.abspath(sys.argv[2])
15-
CRED_PATH = os.path.abspath(sys.argv[3])
13+
PROJ_PATH = os.path.abspath(sys.argv[1])
14+
CRED_PATH = os.path.abspath(sys.argv[2])
1615
META_PATH = PROJ_PATH + "/metadata.yaml"
1716

1817
with open(CRED_PATH) as stream:
@@ -22,10 +21,10 @@
2221
print(exc)
2322

2423
with open(META_PATH) as stream:
25-
try:
26-
metadata = yaml.safe_load(stream)
27-
except yaml.YAMLError as exc:
28-
print(exc)
24+
try:
25+
metadata = yaml.safe_load(stream)
26+
except yaml.YAMLError as exc:
27+
print(exc)
2928

3029
wml_credentials = {"url": credentials["url"], "apikey": credentials["apikey"]}
3130

@@ -41,22 +40,22 @@
4140

4241
else:
4342
MODEL_GUID = input("MODEL GUID: ")
44-
DEPLOYMENT_UID = input("DEPLOYMENT UID: ")
43+
DEPLOYMENT_UID = input("DEPLOYMENT UID: ")
4544

4645
client.set.default_space(SPACE_ID)
4746

4847
client.repository.list_models_revisions(MODEL_GUID)
4948

5049
MODEL_VERSION = input("MODEL VERSION: ")
5150

52-
metadata = {
51+
meta = {
5352
client.deployments.ConfigurationMetaNames.ASSET: {
5453
"id": MODEL_GUID,
5554
"rev": MODEL_VERSION,
5655
}
5756
}
5857
updated_deployment = client.deployments.update(
59-
deployment_uid=DEPLOYMENT_UID, changes=metadata
58+
deployment_uid=DEPLOYMENT_UID, changes=meta
6059
)
6160

6261
status = None
@@ -67,3 +66,4 @@
6766
status = deployment_details["entity"]["status"].get("state")
6867

6968
print("\nDeployment update finished with status: ", status)
69+
# print(deployment_details)

src/scripts/Pipelines/model_update_deployment_pipeline.py

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,49 @@
33
import yaml
44
from ibm_watson_machine_learning import APIClient
55

6-
CRED_PATH = os.path.abspath(sys.argv[1])
6+
"""
7+
Usage:
8+
python3 model_update_deployment_pipeline.py ../path/to/project/ ../credentials.yaml
9+
10+
"""
11+
12+
PROJ_PATH = os.path.abspath(sys.argv[1])
13+
CRED_PATH = os.path.abspath(sys.argv[2])
14+
META_PATH = PROJ_PATH + "/metadata.yaml"
715

816
with open(CRED_PATH) as stream:
917
try:
1018
credentials = yaml.safe_load(stream)
1119
except yaml.YAMLError as exc:
1220
print(exc)
1321

22+
with open(META_PATH) as stream:
23+
try:
24+
metadata = yaml.safe_load(stream)
25+
except yaml.YAMLError as exc:
26+
print(exc)
1427

1528
wml_credentials = {"url": credentials["url"], "apikey": credentials["apikey"]}
1629

1730
client = APIClient(wml_credentials)
1831
client.spaces.list()
1932

2033
SPACE_ID = credentials["space_id"]
21-
MODEL_ID = input("MODEL ID: ")
22-
DEPLOYMENT_ID = input("DEPLOYMENT ID: ")
34+
35+
if "deployment_uid" in metadata.keys():
36+
MODEL_GUID = metadata["model_uid"]
37+
DEPLOYMENT_UID = metadata["deployment_uid"]
38+
print("\nExtracting DEPLOYMENT UID and MODEL GUID from metadata file\n")
39+
40+
else:
41+
MODEL_GUID = input("MODEL GUID: ")
42+
DEPLOYMENT_UID = input("DEPLOYMENT UID: ")
2343

2444
client.set.default_space(SPACE_ID)
2545

26-
change_meta = {client.deployments.ConfigurationMetaNames.ASSET: {"id": MODEL_ID}}
46+
change_meta = {client.deployments.ConfigurationMetaNames.ASSET: {"id": MODEL_GUID}}
2747

2848
print("Alterando o deploy abaixo: ")
29-
print(client.deployments.get_details(DEPLOYMENT_ID))
49+
print(client.deployments.get_details(DEPLOYMENT_UID))
3050

31-
client.deployments.update(DEPLOYMENT_ID, change_meta)
51+
client.deployments.update(DEPLOYMENT_UID, change_meta)

src/scripts/Pipelines/model_update_pipeline.py

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
import sys
22
import os
33
import yaml
4+
import joblib
45
from ibm_watson_machine_learning import APIClient
56

7+
"""
8+
Usage:
9+
python3 model_update_pipeline.py ./pickle_model ../path/to/project/ ../credentials.yaml
10+
11+
"""
12+
613
MODEL_PATH = os.path.abspath(sys.argv[1])
7-
CRED_PATH = os.path.abspath(sys.argv[2])
8-
PROJ_PATH = os.path.abspath(sys.argv[3])
14+
PROJ_PATH = os.path.abspath(sys.argv[2])
15+
CRED_PATH = os.path.abspath(sys.argv[3])
916
META_PATH = PROJ_PATH + "/metadata.yaml"
1017

1118
with open(CRED_PATH) as stream:
@@ -20,22 +27,31 @@
2027
except yaml.YAMLError as exc:
2128
print(exc)
2229

30+
with open(MODEL_PATH, "rb") as file:
31+
# pickle_model = pickle.load(file)
32+
pipeline = joblib.load(file)
2333

2434
wml_credentials = {"url": credentials["url"], "apikey": credentials["apikey"]}
2535

2636
client = APIClient(wml_credentials)
2737
client.spaces.list()
2838

2939
SPACE_ID = credentials["space_id"]
30-
MODEL_GUID = input("MODEL GUID: ")
40+
41+
if "model_uid" in metadata.keys():
42+
MODEL_GUID = metadata["model_uid"]
43+
print("\nExtracting MODEL GUID from metadata file\n")
44+
45+
else:
46+
MODEL_GUID = input("MODEL GUID: ")
3147

3248
client.set.default_space(SPACE_ID)
3349

3450
print("\nCreating new version")
3551

3652
published_model = client.repository.update_model(
3753
model_uid=MODEL_GUID,
38-
update_model=MODEL_PATH,
54+
update_model=pipeline,
3955
updated_meta_props={
4056
client.repository.ModelMetaNames.NAME: metadata["project_name"]
4157
+ "_"

0 commit comments

Comments
 (0)