Skip to content

Commit 7506eb5

Browse files
committed
improving openscale scritps and cleaning up notebook
1 parent 975bf2a commit 7506eb5

File tree

1 file changed

+79
-59
lines changed

1 file changed

+79
-59
lines changed

‎src/scripts/Pipelines/openscale.py‎

Lines changed: 79 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@
1414
import pandas as pd
1515
from sklearn.model_selection import train_test_split
1616
import numpy as np
17-
from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score
17+
from sklearn.metrics import (
18+
confusion_matrix,
19+
accuracy_score,
20+
precision_score,
21+
recall_score,
22+
f1_score,
23+
)
1824
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
1925
from ibm_watson_openscale import *
2026
from ibm_watson_openscale.supporting_classes.enums import *
@@ -56,7 +62,7 @@
5662
print("Watson OpenScale GUID NOT FOUND")
5763
else:
5864
print(WOS_GUID)
59-
65+
6066
ai_client = APIClient(aios_credentials=WOS_CREDENTIALS)
6167
print(ai_client.version)
6268

@@ -74,9 +80,8 @@
7480

7581
authenticator = IAMAuthenticator(apikey=credentials["apikey"])
7682
wos_client = ibm_watson_openscale.APIClient(
77-
authenticator=authenticator,
78-
service_url="https://api.aiopenscale.cloud.ibm.com")
79-
83+
authenticator=authenticator, service_url="https://api.aiopenscale.cloud.ibm.com"
84+
)
8085

8186

8287
KEEP_MY_INTERNAL_POSTGRES = True
@@ -153,19 +158,24 @@
153158
subscription = None
154159

155160
if subscription is None:
156-
print('Subscription already exists; get the existing one')
161+
print("Subscription already exists; get the existing one")
157162
subscriptions_uids = ai_client.data_mart.subscriptions.get_uids()
158163

159164
for sub in subscriptions_uids:
160-
if ai_client.data_mart.subscriptions.get_details(sub)['entity']['asset']['name'] == MODEL_NAME:
165+
if (
166+
ai_client.data_mart.subscriptions.get_details(sub)["entity"]["asset"][
167+
"name"
168+
]
169+
== MODEL_NAME
170+
):
161171
subscription = ai_client.data_mart.subscriptions.get(sub)
162172

163173

164-
for deployment in wml_client.deployments.get_details()['resources']:
165-
if DEPLOYMENT_UID in deployment['metadata']['id']:
174+
for deployment in wml_client.deployments.get_details()["resources"]:
175+
if DEPLOYMENT_UID in deployment["metadata"]["id"]:
176+
177+
scoring_endpoint = deployment["entity"]["status"]["online_url"]["url"]
166178

167-
scoring_endpoint = deployment['entity']['status']['online_url']['url']
168-
169179
print(scoring_endpoint)
170180

171181

@@ -180,9 +190,15 @@
180190

181191
# Payload Logging DAtASET
182192

183-
payload_data_set_id = wos_client.data_sets.list(type=DataSetTypes.PAYLOAD_LOGGING,
184-
target_target_id=subscription_id,
185-
target_target_type=TargetTypes.SUBSCRIPTION).result.data_sets[0].metadata.id
193+
payload_data_set_id = (
194+
wos_client.data_sets.list(
195+
type=DataSetTypes.PAYLOAD_LOGGING,
196+
target_target_id=subscription_id,
197+
target_target_type=TargetTypes.SUBSCRIPTION,
198+
)
199+
.result.data_sets[0]
200+
.metadata.id
201+
)
186202
print("Payload data set id:", payload_data_set_id)
187203

188204

@@ -197,31 +213,36 @@
197213

198214
scoring_response = wml_client.deployments.score(DEPLOYMENT_UID, payload_scoring)
199215

200-
print('Logging')
201-
records = [PayloadRecord(request=payload_scoring, response=scoring_response, response_time=72)]
202-
store_record_info = wos_client.data_sets.store_records(payload_data_set_id,records)
216+
print("Logging")
217+
records = [
218+
PayloadRecord(request=payload_scoring, response=scoring_response, response_time=72)
219+
]
220+
store_record_info = wos_client.data_sets.store_records(payload_data_set_id, records)
203221

204222

205223
# Feedback Logging
206224

207-
feedback_dataset = wos_client.data_sets.list(type=DataSetTypes.FEEDBACK,
208-
target_target_id=subscription_id,
209-
target_target_type=TargetTypes.SUBSCRIPTION).result
225+
feedback_dataset = wos_client.data_sets.list(
226+
type=DataSetTypes.FEEDBACK,
227+
target_target_id=subscription_id,
228+
target_target_type=TargetTypes.SUBSCRIPTION,
229+
).result
210230

211231
feedback_dataset_id = feedback_dataset.data_sets[0].metadata.id
212232
if feedback_dataset_id is None:
213233
print("Feedback data set not found. Please check quality monitor status.")
214234
sys.exit(1)
215235

216-
data = X_test.to_dict('records')
236+
data = X_test.to_dict("records")
217237

218238
wos_client.data_sets.store_records(
219-
feedback_dataset_id,
220-
request_body=data,
239+
feedback_dataset_id,
240+
request_body=data,
221241
background_mode=False,
222242
header=True,
223-
delimiter=',',
224-
csv_max_line_length=1000)
243+
delimiter=",",
244+
csv_max_line_length=1000,
245+
)
225246

226247
print(wos_client.data_sets.get_records_count(data_set_id=feedback_dataset_id))
227248

@@ -231,32 +252,40 @@
231252

232253
from ibm_watson_openscale.supporting_classes.enums import *
233254

234-
print('\nData marts: ')
255+
print("\nData marts: ")
235256
datams = wos_client.data_marts.list().result.data_marts
236257
for d in datams:
237258
print(d.metadata.id)
238259
datamart_id = d.metadata.id
239260

240-
print('\nService providers: ')
261+
print("\nService providers: ")
241262
services = wos_client.service_providers.list().result.service_providers
242263
for service in services:
243-
print(service.metadata.id+" / Name: "+service.entity.name)
264+
print(service.metadata.id + " / Name: " + service.entity.name)
244265
service_id = service.metadata.id
245266

246-
#wos_client.subscriptions.show()
247-
#wos_client.data_sets.show()
267+
# wos_client.subscriptions.show()
268+
# wos_client.data_sets.show()
248269

249-
print('\nSubscriptions: ')
250-
subscriptions = wos_client.subscriptions.list(data_mart_id=datamart_id, service_provider_id=service_id).result.subscriptions
270+
print("\nSubscriptions: ")
271+
subscriptions = wos_client.subscriptions.list(
272+
data_mart_id=datamart_id, service_provider_id=service_id
273+
).result.subscriptions
251274
for s in subscriptions:
252-
print(s.metadata.id+" "+s.entity.asset.name)
275+
print(s.metadata.id + " " + s.entity.asset.name)
253276
subscription_id = s.metadata.id
254277

255-
print('\n')
278+
print("\n")
256279

257-
payload_data_set_id = wos_client.data_sets.list(type=DataSetTypes.PAYLOAD_LOGGING,
258-
target_target_id=subscription_id,
259-
target_target_type=TargetTypes.SUBSCRIPTION).result.data_sets[0].metadata.id
280+
payload_data_set_id = (
281+
wos_client.data_sets.list(
282+
type=DataSetTypes.PAYLOAD_LOGGING,
283+
target_target_id=subscription_id,
284+
target_target_type=TargetTypes.SUBSCRIPTION,
285+
)
286+
.result.data_sets[0]
287+
.metadata.id
288+
)
260289
print("Payload data set id:", payload_data_set_id)
261290

262291

@@ -266,33 +295,25 @@
266295
raise Exception("Payload logging did not happen!")
267296

268297

269-
270298
# Create Monitor
271299

272300
target = ibm_watson_openscale.base_classes.watson_open_scale_v2.Target(
273-
target_type=TargetTypes.SUBSCRIPTION,
274-
target_id=subscription.uid
275-
)
276-
parameters = {
277-
"min_feedback_data_size": 200
278-
}
279-
thresholds = [{
280-
"metric_id": "area_under_roc",
281-
"type": "lower_limit",
282-
"value": 0.75
283-
}]
301+
target_type=TargetTypes.SUBSCRIPTION, target_id=subscription.uid
302+
)
303+
parameters = {"min_feedback_data_size": 200}
304+
thresholds = [{"metric_id": "area_under_roc", "type": "lower_limit", "value": 0.75}]
284305
wos_client.monitor_instances.create(
285-
data_mart_id=datamart_id,
286-
background_mode=False,
287-
monitor_definition_id=wos_client.monitor_definitions.MONITORS.QUALITY.ID,
288-
target=target,
289-
parameters=parameters,
290-
thresholds=thresholds
306+
data_mart_id=datamart_id,
307+
background_mode=False,
308+
monitor_definition_id=wos_client.monitor_definitions.MONITORS.QUALITY.ID,
309+
target=target,
310+
parameters=parameters,
311+
thresholds=thresholds,
291312
)
292313

293314
monitor_instances_info = wos_client.monitor_instances.show(
294315
data_mart_id=datamart_id,
295-
)
316+
)
296317

297318

298319
# wos_client.monitor_instances.delete(
@@ -301,6 +322,5 @@
301322
# )
302323

303324
monitor_instance_run_info = wos_client.monitor_instances.run(
304-
background_mode=False,
305-
monitor_instance_id='5ddff093-25fa-44f8-abae-fd29659fd0d0'
306-
)
325+
background_mode=False, monitor_instance_id="5ddff093-25fa-44f8-abae-fd29659fd0d0"
326+
)

0 commit comments

Comments
 (0)