oracle-ads 2.11.7__py3-none-any.whl → 2.11.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ads/aqua/__init__.py +24 -14
- ads/aqua/base.py +0 -2
- ads/aqua/cli.py +50 -2
- ads/aqua/decorator.py +8 -0
- ads/aqua/deployment.py +37 -34
- ads/aqua/evaluation.py +106 -49
- ads/aqua/extension/base_handler.py +18 -10
- ads/aqua/extension/common_handler.py +21 -2
- ads/aqua/extension/deployment_handler.py +1 -4
- ads/aqua/extension/evaluation_handler.py +1 -2
- ads/aqua/extension/finetune_handler.py +0 -1
- ads/aqua/extension/ui_handler.py +1 -12
- ads/aqua/extension/utils.py +4 -4
- ads/aqua/finetune.py +24 -11
- ads/aqua/model.py +2 -4
- ads/aqua/utils.py +39 -23
- ads/cli.py +19 -1
- ads/common/serializer.py +5 -4
- ads/common/utils.py +6 -2
- ads/config.py +1 -0
- ads/llm/serializers/runnable_parallel.py +7 -1
- ads/opctl/operator/lowcode/anomaly/README.md +1 -1
- ads/opctl/operator/lowcode/anomaly/environment.yaml +1 -1
- ads/opctl/operator/lowcode/anomaly/model/automlx.py +15 -10
- ads/opctl/operator/lowcode/anomaly/model/autots.py +9 -10
- ads/opctl/operator/lowcode/anomaly/model/base_model.py +34 -37
- ads/opctl/operator/lowcode/anomaly/model/tods.py +4 -4
- ads/opctl/operator/lowcode/anomaly/schema.yaml +1 -1
- ads/opctl/operator/lowcode/forecast/README.md +1 -1
- ads/opctl/operator/lowcode/forecast/environment.yaml +4 -4
- ads/opctl/operator/lowcode/forecast/model/arima.py +19 -21
- ads/opctl/operator/lowcode/forecast/model/automlx.py +36 -42
- ads/opctl/operator/lowcode/forecast/model/autots.py +41 -25
- ads/opctl/operator/lowcode/forecast/model/base_model.py +93 -107
- ads/opctl/operator/lowcode/forecast/model/neuralprophet.py +51 -45
- ads/opctl/operator/lowcode/forecast/model/prophet.py +32 -27
- ads/opctl/operator/lowcode/forecast/schema.yaml +2 -2
- ads/opctl/operator/lowcode/forecast/utils.py +4 -4
- ads/opctl/operator/lowcode/pii/README.md +1 -1
- ads/opctl/operator/lowcode/pii/environment.yaml +1 -1
- ads/opctl/operator/lowcode/pii/model/report.py +71 -70
- {oracle_ads-2.11.7.dist-info → oracle_ads-2.11.8.dist-info}/METADATA +5 -5
- {oracle_ads-2.11.7.dist-info → oracle_ads-2.11.8.dist-info}/RECORD +46 -46
- {oracle_ads-2.11.7.dist-info → oracle_ads-2.11.8.dist-info}/LICENSE.txt +0 -0
- {oracle_ads-2.11.7.dist-info → oracle_ads-2.11.8.dist-info}/WHEEL +0 -0
- {oracle_ads-2.11.7.dist-info → oracle_ads-2.11.8.dist-info}/entry_points.txt +0 -0
@@ -133,7 +133,6 @@ class ProphetOperatorModel(ForecastOperatorBaseModel):
|
|
133
133
|
}
|
134
134
|
|
135
135
|
def _build_model(self) -> pd.DataFrame:
|
136
|
-
|
137
136
|
full_data_dict = self.datasets.get_data_by_series()
|
138
137
|
self.models = dict()
|
139
138
|
self.outputs = dict()
|
@@ -160,6 +159,7 @@ class ProphetOperatorModel(ForecastOperatorBaseModel):
|
|
160
159
|
def run_tuning(self, data_i, model_kwargs_i):
|
161
160
|
from prophet import Prophet
|
162
161
|
from prophet.diagnostics import cross_validation, performance_metrics
|
162
|
+
|
163
163
|
def objective(trial):
|
164
164
|
params = {
|
165
165
|
"seasonality_mode": trial.suggest_categorical(
|
@@ -243,29 +243,34 @@ class ProphetOperatorModel(ForecastOperatorBaseModel):
|
|
243
243
|
return model_kwargs_i
|
244
244
|
|
245
245
|
def _generate_report(self):
|
246
|
-
import
|
246
|
+
import report_creator as rc
|
247
247
|
from prophet.plot import add_changepoints_to_plot
|
248
|
+
|
248
249
|
series_ids = self.models.keys()
|
249
250
|
all_sections = []
|
250
251
|
if len(series_ids) > 0:
|
251
|
-
sec1_text = dp.Text(
|
252
|
-
"## Forecast Overview \n"
|
253
|
-
"These plots show your forecast in the context of historical data."
|
254
|
-
)
|
255
252
|
sec1 = _select_plot_list(
|
256
253
|
lambda s_id: self.models[s_id].plot(
|
257
254
|
self.outputs[s_id], include_legend=True
|
258
255
|
),
|
259
256
|
series_ids=series_ids,
|
260
257
|
)
|
258
|
+
section_1 = rc.Block(
|
259
|
+
rc.Heading("Forecast Overview", level=2),
|
260
|
+
rc.Text(
|
261
|
+
"These plots show your forecast in the context of historical data."
|
262
|
+
),
|
263
|
+
sec1,
|
264
|
+
)
|
261
265
|
|
262
|
-
sec2_text = dp.Text(f"## Forecast Broken Down by Trend Component")
|
263
266
|
sec2 = _select_plot_list(
|
264
267
|
lambda s_id: self.models[s_id].plot_components(self.outputs[s_id]),
|
265
268
|
series_ids=series_ids,
|
266
269
|
)
|
270
|
+
section_2 = rc.Block(
|
271
|
+
rc.Heading("Forecast Broken Down by Trend Component", level=2), sec2
|
272
|
+
)
|
267
273
|
|
268
|
-
sec3_text = dp.Text(f"## Forecast Changepoints")
|
269
274
|
sec3_figs = {
|
270
275
|
s_id: self.models[s_id].plot(self.outputs[s_id]) for s_id in series_ids
|
271
276
|
}
|
@@ -273,11 +278,14 @@ class ProphetOperatorModel(ForecastOperatorBaseModel):
|
|
273
278
|
add_changepoints_to_plot(
|
274
279
|
sec3_figs[s_id].gca(), self.models[s_id], self.outputs[s_id]
|
275
280
|
)
|
276
|
-
sec3 = _select_plot_list(
|
281
|
+
sec3 = _select_plot_list(
|
282
|
+
lambda s_id: sec3_figs[s_id], series_ids=series_ids
|
283
|
+
)
|
284
|
+
section_3 = rc.Block(rc.Heading("Forecast Changepoints", level=2), sec3)
|
277
285
|
|
278
|
-
all_sections = [
|
286
|
+
all_sections = [section_1, section_2, section_3]
|
279
287
|
|
280
|
-
sec5_text =
|
288
|
+
sec5_text = rc.Heading("Prophet Model Seasonality Components", level=2)
|
281
289
|
model_states = []
|
282
290
|
for s_id in series_ids:
|
283
291
|
m = self.models[s_id]
|
@@ -291,7 +299,7 @@ class ProphetOperatorModel(ForecastOperatorBaseModel):
|
|
291
299
|
)
|
292
300
|
all_model_states = pd.concat(model_states, axis=1)
|
293
301
|
if not all_model_states.empty:
|
294
|
-
sec5 =
|
302
|
+
sec5 = rc.DataTable(all_model_states, index=True)
|
295
303
|
all_sections = all_sections + [sec5_text, sec5]
|
296
304
|
|
297
305
|
if self.spec.generate_explanations:
|
@@ -299,12 +307,6 @@ class ProphetOperatorModel(ForecastOperatorBaseModel):
|
|
299
307
|
# If the key is present, call the "explain_model" method
|
300
308
|
self.explain_model()
|
301
309
|
|
302
|
-
# Create a markdown text block for the global explanation section
|
303
|
-
global_explanation_text = dp.Text(
|
304
|
-
f"## Global Explanation of Models \n "
|
305
|
-
"The following tables provide the feature attribution for the global explainability."
|
306
|
-
)
|
307
|
-
|
308
310
|
# Convert the global explanation data to a DataFrame
|
309
311
|
global_explanation_df = pd.DataFrame(self.global_explanation)
|
310
312
|
|
@@ -313,9 +315,12 @@ class ProphetOperatorModel(ForecastOperatorBaseModel):
|
|
313
315
|
)
|
314
316
|
|
315
317
|
# Create a markdown section for the global explainability
|
316
|
-
global_explanation_section =
|
317
|
-
"
|
318
|
-
|
318
|
+
global_explanation_section = rc.Block(
|
319
|
+
rc.Heading("Global Explanation of Models", level=2),
|
320
|
+
rc.Text(
|
321
|
+
"The following tables provide the feature attribution for the global explainability."
|
322
|
+
),
|
323
|
+
rc.DataTable(self.formatted_global_explanation, index=True),
|
319
324
|
)
|
320
325
|
|
321
326
|
aggregate_local_explanations = pd.DataFrame()
|
@@ -327,21 +332,21 @@ class ProphetOperatorModel(ForecastOperatorBaseModel):
|
|
327
332
|
)
|
328
333
|
self.formatted_local_explanation = aggregate_local_explanations
|
329
334
|
|
330
|
-
local_explanation_text = dp.Text(f"## Local Explanation of Models \n ")
|
331
335
|
blocks = [
|
332
|
-
|
336
|
+
rc.DataTable(
|
333
337
|
local_ex_df.div(local_ex_df.abs().sum(axis=1), axis=0) * 100,
|
334
338
|
label=s_id,
|
339
|
+
index=True,
|
335
340
|
)
|
336
341
|
for s_id, local_ex_df in self.local_explanation.items()
|
337
342
|
]
|
338
|
-
local_explanation_section = (
|
339
|
-
|
343
|
+
local_explanation_section = rc.Block(
|
344
|
+
rc.Heading("Local Explanation of Models", level=2),
|
345
|
+
rc.Select(blocks=blocks),
|
340
346
|
)
|
341
347
|
|
342
348
|
# Append the global explanation text and section to the "all_sections" list
|
343
349
|
all_sections = all_sections + [
|
344
|
-
global_explanation_text,
|
345
350
|
global_explanation_section,
|
346
351
|
local_explanation_text,
|
347
352
|
local_explanation_section,
|
@@ -351,7 +356,7 @@ class ProphetOperatorModel(ForecastOperatorBaseModel):
|
|
351
356
|
logger.warn(f"Failed to generate Explanations with error: {e}.")
|
352
357
|
logger.debug(f"Full Traceback: {traceback.format_exc()}")
|
353
358
|
|
354
|
-
model_description =
|
359
|
+
model_description = (
|
355
360
|
"Prophet is a procedure for forecasting time series data based on an additive "
|
356
361
|
"model where non-linear trends are fit with yearly, weekly, and daily seasonality, "
|
357
362
|
"plus holiday effects. It works best with time series that have strong seasonal "
|
@@ -302,11 +302,11 @@ spec:
|
|
302
302
|
missing_value_imputation:
|
303
303
|
type: boolean
|
304
304
|
required: false
|
305
|
-
default:
|
305
|
+
default: false
|
306
306
|
outlier_treatment:
|
307
307
|
type: boolean
|
308
308
|
required: false
|
309
|
-
default:
|
309
|
+
default: false
|
310
310
|
|
311
311
|
generate_explanations:
|
312
312
|
type: boolean
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env python
|
2
2
|
# -*- coding: utf-8 -*--
|
3
3
|
|
4
|
-
# Copyright (c) 2023 Oracle and/or its affiliates.
|
4
|
+
# Copyright (c) 2023, 2024 Oracle and/or its affiliates.
|
5
5
|
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
|
6
6
|
|
7
7
|
import os
|
@@ -258,10 +258,10 @@ def evaluate_train_metrics(output, metrics_col_name=None):
|
|
258
258
|
|
259
259
|
|
260
260
|
def _select_plot_list(fn, series_ids):
|
261
|
-
import
|
261
|
+
import report_creator as rc
|
262
262
|
|
263
|
-
blocks = [
|
264
|
-
return
|
263
|
+
blocks = [rc.Widget(fn(s_id=s_id), label=s_id) for s_id in series_ids]
|
264
|
+
return rc.Select(blocks=blocks) if len(blocks) > 1 else blocks[0]
|
265
265
|
|
266
266
|
|
267
267
|
def _add_unit(num, unit):
|
@@ -1,7 +1,7 @@
|
|
1
1
|
#!/usr/bin/env python
|
2
2
|
# -*- coding: utf-8 -*--
|
3
3
|
|
4
|
-
# Copyright (c) 2023 Oracle and/or its affiliates.
|
4
|
+
# Copyright (c) 2023, 2024 Oracle and/or its affiliates.
|
5
5
|
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
|
6
6
|
|
7
7
|
|
@@ -39,10 +39,10 @@ from ads.opctl.operator.lowcode.pii.operator_config import PiiOperatorConfig
|
|
39
39
|
from ads.opctl.operator.lowcode.pii.utils import compute_rate
|
40
40
|
|
41
41
|
try:
|
42
|
-
import
|
42
|
+
import report_creator as rc
|
43
43
|
except ImportError:
|
44
44
|
raise ModuleNotFoundError(
|
45
|
-
f"`
|
45
|
+
f"`report-creator` module was not found. Please run "
|
46
46
|
f"`pip install {OptionalDependency.PII}`."
|
47
47
|
)
|
48
48
|
|
@@ -119,8 +119,8 @@ def make_model_card(model_name="", readme_path=""):
|
|
119
119
|
logger.warning(
|
120
120
|
"You don't have internet connection. Therefore, we are not able to generate model card."
|
121
121
|
)
|
122
|
-
return
|
123
|
-
|
122
|
+
return rc.Group(
|
123
|
+
rc.Text("-"),
|
124
124
|
columns=1,
|
125
125
|
)
|
126
126
|
|
@@ -144,15 +144,15 @@ def make_model_card(model_name="", readme_path=""):
|
|
144
144
|
)
|
145
145
|
]
|
146
146
|
)
|
147
|
-
eval_res_tb =
|
147
|
+
eval_res_tb = rc.Widget(data=fig, caption="Evaluation Results")
|
148
148
|
except:
|
149
|
-
eval_res_tb =
|
149
|
+
eval_res_tb = rc.Text("-")
|
150
150
|
logger.warning(
|
151
151
|
"The given readme.md doesn't have correct template for Evaluation Results."
|
152
152
|
)
|
153
153
|
|
154
|
-
return
|
155
|
-
|
154
|
+
return rc.Group(
|
155
|
+
rc.Text(text),
|
156
156
|
eval_res_tb,
|
157
157
|
columns=2,
|
158
158
|
)
|
@@ -172,7 +172,7 @@ def map_label_to_color(labels):
|
|
172
172
|
|
173
173
|
|
174
174
|
@runtime_dependency(module="plotly", install_from=OptionalDependency.PII)
|
175
|
-
def plot_pie(count_map) ->
|
175
|
+
def plot_pie(count_map) -> rc.Widget:
|
176
176
|
import plotly.express as px
|
177
177
|
|
178
178
|
cols = count_map.keys()
|
@@ -190,7 +190,7 @@ def plot_pie(count_map) -> dp.Plot:
|
|
190
190
|
color_discrete_map=map_label_to_color(cols),
|
191
191
|
)
|
192
192
|
fig.update_traces(textposition="inside", textinfo="percent+label")
|
193
|
-
return
|
193
|
+
return rc.Widget(fig)
|
194
194
|
|
195
195
|
|
196
196
|
def build_entity_df(entites, id) -> pd.DataFrame:
|
@@ -223,37 +223,38 @@ class RowReportFields:
|
|
223
223
|
self.spec = row_spec
|
224
224
|
self.show_sensitive_info = show_sensitive_info
|
225
225
|
|
226
|
-
def build_report(self) ->
|
227
|
-
return
|
228
|
-
|
226
|
+
def build_report(self) -> rc.Group:
|
227
|
+
return rc.Group(
|
228
|
+
rc.Select(
|
229
229
|
blocks=[
|
230
230
|
self._make_stats_card(),
|
231
231
|
self._make_text_card(),
|
232
232
|
],
|
233
|
-
type=
|
233
|
+
type=rc.SelectType.TABS,
|
234
234
|
),
|
235
235
|
label="Row Id: " + str(self.spec.id),
|
236
236
|
)
|
237
237
|
|
238
238
|
def _make_stats_card(self):
|
239
239
|
stats = [
|
240
|
-
|
241
|
-
|
240
|
+
rc.Heading("Row Summary Statistics", level=2),
|
241
|
+
rc.Metric(
|
242
242
|
heading="Total No. Of Entites Proceed",
|
243
243
|
value=self.spec.total_tokens or 0,
|
244
244
|
),
|
245
|
-
|
245
|
+
rc.Heading("Entities Distribution", level=3),
|
246
246
|
plot_pie(self.spec.statics),
|
247
247
|
]
|
248
248
|
if self.show_sensitive_info:
|
249
|
-
stats.append(
|
249
|
+
stats.append(rc.Heading("Resolved Entities", level=3))
|
250
250
|
stats.append(
|
251
|
-
|
251
|
+
rc.DataTable(
|
252
252
|
build_entity_df(self.spec.entities, id=self.spec.id),
|
253
253
|
label="Resolved Entities",
|
254
|
+
index=True,
|
254
255
|
)
|
255
256
|
)
|
256
|
-
return
|
257
|
+
return rc.Group(stats, label="STATS")
|
257
258
|
|
258
259
|
def _make_text_card(self):
|
259
260
|
annotations = []
|
@@ -274,7 +275,7 @@ class RowReportFields:
|
|
274
275
|
},
|
275
276
|
return_html=True,
|
276
277
|
)
|
277
|
-
return
|
278
|
+
return rc.Group(rc.HTML(render_html), label="TEXT")
|
278
279
|
|
279
280
|
|
280
281
|
class PIIOperatorReport:
|
@@ -293,26 +294,28 @@ class PIIOperatorReport:
|
|
293
294
|
self.report_uri = report_uri
|
294
295
|
|
295
296
|
def make_view(self):
|
296
|
-
title_text =
|
297
|
-
|
297
|
+
title_text = rc.Heading(
|
298
|
+
"Personally Identifiable Information Operator Report", level=1
|
299
|
+
)
|
300
|
+
time_proceed = rc.Metric(
|
298
301
|
heading="Ran at",
|
299
302
|
value=self.report_spec.run_summary.timestamp or "today",
|
300
303
|
)
|
301
|
-
report_description =
|
304
|
+
report_description = rc.Text(PII_REPORT_DESCRIPTION)
|
302
305
|
|
303
|
-
structure =
|
304
|
-
|
306
|
+
structure = rc.Block(
|
307
|
+
rc.Select(
|
305
308
|
blocks=[
|
306
|
-
|
309
|
+
rc.Group(
|
307
310
|
self._build_summary_page(),
|
308
311
|
label="Summary",
|
309
312
|
),
|
310
|
-
|
313
|
+
rc.Group(
|
311
314
|
self._build_details_page(),
|
312
315
|
label="Details",
|
313
316
|
),
|
314
317
|
],
|
315
|
-
type=
|
318
|
+
type=rc.SelectType.TABS,
|
316
319
|
)
|
317
320
|
)
|
318
321
|
self.report_sections = [title_text, report_description, time_proceed, structure]
|
@@ -322,11 +325,10 @@ class PIIOperatorReport:
|
|
322
325
|
with tempfile.TemporaryDirectory() as temp_dir:
|
323
326
|
report_local_path = os.path.join(temp_dir, "___report.html")
|
324
327
|
disable_print()
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
|
329
|
-
)
|
328
|
+
with rc.ReportCreator("My Report") as report:
|
329
|
+
report.save(
|
330
|
+
rc.Block(report_sections or self.report_sections), report_local_path
|
331
|
+
)
|
330
332
|
enable_print()
|
331
333
|
|
332
334
|
report_uri = report_uri or self.report_uri
|
@@ -339,36 +341,36 @@ class PIIOperatorReport:
|
|
339
341
|
f2.write(f1.read())
|
340
342
|
|
341
343
|
def _build_summary_page(self):
|
342
|
-
summary =
|
343
|
-
|
344
|
-
|
345
|
-
|
344
|
+
summary = rc.Block(
|
345
|
+
rc.Heading("PII Summary", level=1),
|
346
|
+
rc.Text(self._get_summary_desc()),
|
347
|
+
rc.Select(
|
346
348
|
blocks=[
|
347
349
|
self._make_summary_stats_card(),
|
348
350
|
self._make_yaml_card(),
|
349
351
|
self._make_model_card(),
|
350
352
|
],
|
351
|
-
type=
|
353
|
+
type=rc.SelectType.TABS,
|
352
354
|
),
|
353
355
|
)
|
354
356
|
|
355
357
|
return summary
|
356
358
|
|
357
359
|
def _build_details_page(self):
|
358
|
-
details =
|
359
|
-
|
360
|
-
|
360
|
+
details = rc.Block(
|
361
|
+
rc.Text(DETAILS_REPORT_DESCRIPTION),
|
362
|
+
rc.Select(
|
361
363
|
blocks=[
|
362
364
|
row.build_report() for row in self.rows_details
|
363
365
|
], # RowReportFields
|
364
|
-
type=
|
366
|
+
type=rc.SelectType.DROPDOWN,
|
365
367
|
label="Details",
|
366
368
|
),
|
367
369
|
)
|
368
370
|
|
369
371
|
return details
|
370
372
|
|
371
|
-
def _make_summary_stats_card(self) ->
|
373
|
+
def _make_summary_stats_card(self) -> rc.Group:
|
372
374
|
"""
|
373
375
|
Shows summary statics
|
374
376
|
1. total rows
|
@@ -388,21 +390,21 @@ class PIIOperatorReport:
|
|
388
390
|
process_rate = "-"
|
389
391
|
|
390
392
|
summary_stats = [
|
391
|
-
|
392
|
-
|
393
|
-
|
393
|
+
rc.Heading("Summary Statistics", level=2),
|
394
|
+
rc.Group(
|
395
|
+
rc.Metric(
|
394
396
|
heading="Total No. Of Rows",
|
395
397
|
value=self.report_spec.run_summary.total_rows or "unknown",
|
396
398
|
),
|
397
|
-
|
399
|
+
rc.Metric(
|
398
400
|
heading="Total No. Of Entites Proceed",
|
399
401
|
value=self.report_spec.run_summary.total_tokens,
|
400
402
|
),
|
401
|
-
|
403
|
+
rc.Metric(
|
402
404
|
heading="Rows per second processed",
|
403
405
|
value=process_rate,
|
404
406
|
),
|
405
|
-
|
407
|
+
rc.Metric(
|
406
408
|
heading="Total Time Spent",
|
407
409
|
value=human_time_friendly(
|
408
410
|
self.report_spec.run_summary.elapsed_time
|
@@ -410,32 +412,31 @@ class PIIOperatorReport:
|
|
410
412
|
),
|
411
413
|
columns=2,
|
412
414
|
),
|
413
|
-
|
415
|
+
rc.Heading("Entities Distribution", level=3),
|
414
416
|
plot_pie(self.report_spec.run_summary.statics),
|
415
417
|
]
|
416
418
|
if self.report_spec.run_summary.show_sensitive_info:
|
417
419
|
entites_df = self._build_total_entity_df()
|
418
|
-
summary_stats.append(
|
419
|
-
summary_stats.append(
|
420
|
-
return
|
420
|
+
summary_stats.append(rc.Heading("Resolved Entities", level=3))
|
421
|
+
summary_stats.append(rc.DataTable(entites_df, index=True))
|
422
|
+
return rc.Group(summary_stats, label="STATS")
|
421
423
|
|
422
|
-
def _make_yaml_card(self) ->
|
424
|
+
def _make_yaml_card(self) -> rc.Group:
|
423
425
|
"""Shows the full pii config yaml."""
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
return dp.Group(blocks=[yaml_appendix_title, yaml_appendix], label="YAML")
|
426
|
+
yaml_appendix_title = rc.Heading("Reference: YAML File", level=2)
|
427
|
+
yaml_appendix = rc.Yaml(self.report_spec.run_summary.config.to_dict())
|
428
|
+
return rc.Group(yaml_appendix_title, yaml_appendix, label="YAML")
|
428
429
|
|
429
|
-
def _make_model_card(self) ->
|
430
|
+
def _make_model_card(self) -> rc.Group:
|
430
431
|
"""Generates model card."""
|
431
432
|
if len(self.report_spec.run_summary.selected_spacy_model) == 0:
|
432
|
-
return
|
433
|
-
|
433
|
+
return rc.Group(
|
434
|
+
rc.Text("No model used."),
|
434
435
|
label="MODEL CARD",
|
435
436
|
)
|
436
437
|
|
437
438
|
model_cards = [
|
438
|
-
|
439
|
+
rc.Group(
|
439
440
|
make_model_card(model_name=x.get("model")),
|
440
441
|
label=x.get("model"),
|
441
442
|
)
|
@@ -443,14 +444,14 @@ class PIIOperatorReport:
|
|
443
444
|
]
|
444
445
|
|
445
446
|
if len(model_cards) <= 1:
|
446
|
-
return
|
447
|
-
|
447
|
+
return rc.Group(
|
448
|
+
model_cards,
|
448
449
|
label="MODEL CARD",
|
449
450
|
)
|
450
|
-
return
|
451
|
-
|
452
|
-
|
453
|
-
type=
|
451
|
+
return rc.Group(
|
452
|
+
rc.Select(
|
453
|
+
model_cards,
|
454
|
+
type=rc.SelectType.TABS,
|
454
455
|
),
|
455
456
|
label="MODEL CARD",
|
456
457
|
)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: oracle_ads
|
3
|
-
Version: 2.11.
|
3
|
+
Version: 2.11.8
|
4
4
|
Summary: Oracle Accelerated Data Science SDK
|
5
5
|
Keywords: Oracle Cloud Infrastructure,OCI,Machine Learning,ML,Artificial Intelligence,AI,Data Science,Cloud,Oracle
|
6
6
|
Author: Oracle Data Science
|
@@ -22,7 +22,7 @@ Requires-Dist: gitpython>=3.1.2
|
|
22
22
|
Requires-Dist: jinja2>=2.11.2
|
23
23
|
Requires-Dist: matplotlib>=3.1.3
|
24
24
|
Requires-Dist: numpy>=1.19.2
|
25
|
-
Requires-Dist: oci>=2.
|
25
|
+
Requires-Dist: oci>=2.125.3
|
26
26
|
Requires-Dist: ocifs>=1.1.3
|
27
27
|
Requires-Dist: pandas>1.2.1; python_version<'3.9'
|
28
28
|
Requires-Dist: pandas>=2.2.0; python_version>='3.9'
|
@@ -37,7 +37,7 @@ Requires-Dist: autots ; extra == "anomaly"
|
|
37
37
|
Requires-Dist: oracle-automlx[forecasting]==23.4.1 ; extra == "anomaly"
|
38
38
|
Requires-Dist: oracle-automlx[classic]==23.4.1 ; extra == "anomaly"
|
39
39
|
Requires-Dist: oracledb ; extra == "anomaly"
|
40
|
-
Requires-Dist:
|
40
|
+
Requires-Dist: report-creator ; extra == "anomaly"
|
41
41
|
Requires-Dist: jupyter_server ; extra == "aqua"
|
42
42
|
Requires-Dist: hdfs[kerberos] ; extra == "bds"
|
43
43
|
Requires-Dist: ibis-framework[impala] ; extra == "bds"
|
@@ -61,7 +61,6 @@ Requires-Dist: oci-cli ; extra == "forecast"
|
|
61
61
|
Requires-Dist: py-cpuinfo ; extra == "forecast"
|
62
62
|
Requires-Dist: rich ; extra == "forecast"
|
63
63
|
Requires-Dist: autots[additional] ; extra == "forecast"
|
64
|
-
Requires-Dist: datapane ; extra == "forecast"
|
65
64
|
Requires-Dist: holidays==0.21.13 ; extra == "forecast"
|
66
65
|
Requires-Dist: neuralprophet ; extra == "forecast"
|
67
66
|
Requires-Dist: numpy ; extra == "forecast"
|
@@ -77,6 +76,7 @@ Requires-Dist: sktime ; extra == "forecast"
|
|
77
76
|
Requires-Dist: statsmodels ; extra == "forecast"
|
78
77
|
Requires-Dist: plotly ; extra == "forecast"
|
79
78
|
Requires-Dist: oracledb ; extra == "forecast"
|
79
|
+
Requires-Dist: report-creator ; extra == "forecast"
|
80
80
|
Requires-Dist: geopandas ; extra == "geo"
|
81
81
|
Requires-Dist: oracle_ads[viz] ; extra == "geo"
|
82
82
|
Requires-Dist: transformers ; extra == "huggingface"
|
@@ -107,7 +107,6 @@ Requires-Dist: cachetools ; extra == "opctl"
|
|
107
107
|
Requires-Dist: optuna==2.9.0 ; extra == "optuna"
|
108
108
|
Requires-Dist: oracle_ads[viz] ; extra == "optuna"
|
109
109
|
Requires-Dist: aiohttp ; extra == "pii"
|
110
|
-
Requires-Dist: datapane ; extra == "pii"
|
111
110
|
Requires-Dist: gender_guesser ; extra == "pii"
|
112
111
|
Requires-Dist: nameparser ; extra == "pii"
|
113
112
|
Requires-Dist: oracle_ads[opctl] ; extra == "pii"
|
@@ -116,6 +115,7 @@ Requires-Dist: scrubadub==2.0.1 ; extra == "pii"
|
|
116
115
|
Requires-Dist: scrubadub_spacy ; extra == "pii"
|
117
116
|
Requires-Dist: spacy-transformers==1.2.5 ; extra == "pii"
|
118
117
|
Requires-Dist: spacy==3.6.1 ; extra == "pii"
|
118
|
+
Requires-Dist: report-creator ; extra == "pii"
|
119
119
|
Requires-Dist: pyspark>=3.0.0 ; extra == "spark"
|
120
120
|
Requires-Dist: oracle_ads[viz] ; extra == "tensorflow"
|
121
121
|
Requires-Dist: tensorflow ; extra == "tensorflow"
|