oracle-ads 2.13.7__py3-none-any.whl → 2.13.9rc0__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.
- {oracle_ads-2.13.7.dist-info → oracle_ads-2.13.9rc0.dist-info}/METADATA +151 -151
- oracle_ads-2.13.9rc0.dist-info/RECORD +9 -0
- {oracle_ads-2.13.7.dist-info → oracle_ads-2.13.9rc0.dist-info}/WHEEL +2 -1
- {oracle_ads-2.13.7.dist-info → oracle_ads-2.13.9rc0.dist-info}/entry_points.txt +1 -2
- oracle_ads-2.13.9rc0.dist-info/top_level.txt +1 -0
- ads/aqua/__init__.py +0 -40
- ads/aqua/app.py +0 -506
- ads/aqua/cli.py +0 -96
- ads/aqua/client/__init__.py +0 -3
- ads/aqua/client/client.py +0 -836
- ads/aqua/client/openai_client.py +0 -305
- ads/aqua/common/__init__.py +0 -5
- ads/aqua/common/decorator.py +0 -125
- ads/aqua/common/entities.py +0 -266
- ads/aqua/common/enums.py +0 -122
- ads/aqua/common/errors.py +0 -109
- ads/aqua/common/utils.py +0 -1285
- ads/aqua/config/__init__.py +0 -4
- ads/aqua/config/container_config.py +0 -248
- ads/aqua/config/evaluation/__init__.py +0 -4
- ads/aqua/config/evaluation/evaluation_service_config.py +0 -147
- ads/aqua/config/utils/__init__.py +0 -4
- ads/aqua/config/utils/serializer.py +0 -339
- ads/aqua/constants.py +0 -114
- ads/aqua/data.py +0 -14
- ads/aqua/dummy_data/icon.txt +0 -1
- ads/aqua/dummy_data/oci_model_deployments.json +0 -56
- ads/aqua/dummy_data/oci_models.json +0 -1
- ads/aqua/dummy_data/readme.md +0 -26
- ads/aqua/evaluation/__init__.py +0 -8
- ads/aqua/evaluation/constants.py +0 -53
- ads/aqua/evaluation/entities.py +0 -186
- ads/aqua/evaluation/errors.py +0 -70
- ads/aqua/evaluation/evaluation.py +0 -1814
- ads/aqua/extension/__init__.py +0 -42
- ads/aqua/extension/aqua_ws_msg_handler.py +0 -76
- ads/aqua/extension/base_handler.py +0 -90
- ads/aqua/extension/common_handler.py +0 -121
- ads/aqua/extension/common_ws_msg_handler.py +0 -36
- ads/aqua/extension/deployment_handler.py +0 -298
- ads/aqua/extension/deployment_ws_msg_handler.py +0 -54
- ads/aqua/extension/errors.py +0 -30
- ads/aqua/extension/evaluation_handler.py +0 -129
- ads/aqua/extension/evaluation_ws_msg_handler.py +0 -61
- ads/aqua/extension/finetune_handler.py +0 -96
- ads/aqua/extension/model_handler.py +0 -390
- ads/aqua/extension/models/__init__.py +0 -0
- ads/aqua/extension/models/ws_models.py +0 -145
- ads/aqua/extension/models_ws_msg_handler.py +0 -50
- ads/aqua/extension/ui_handler.py +0 -282
- ads/aqua/extension/ui_websocket_handler.py +0 -130
- ads/aqua/extension/utils.py +0 -133
- ads/aqua/finetuning/__init__.py +0 -7
- ads/aqua/finetuning/constants.py +0 -23
- ads/aqua/finetuning/entities.py +0 -181
- ads/aqua/finetuning/finetuning.py +0 -731
- ads/aqua/model/__init__.py +0 -8
- ads/aqua/model/constants.py +0 -60
- ads/aqua/model/entities.py +0 -306
- ads/aqua/model/enums.py +0 -30
- ads/aqua/model/model.py +0 -2079
- ads/aqua/modeldeployment/__init__.py +0 -8
- ads/aqua/modeldeployment/constants.py +0 -10
- ads/aqua/modeldeployment/deployment.py +0 -1324
- ads/aqua/modeldeployment/entities.py +0 -653
- ads/aqua/modeldeployment/inference.py +0 -74
- ads/aqua/modeldeployment/utils.py +0 -543
- ads/aqua/resources/gpu_shapes_index.json +0 -94
- ads/aqua/server/__init__.py +0 -4
- ads/aqua/server/__main__.py +0 -24
- ads/aqua/server/app.py +0 -47
- ads/aqua/server/aqua_spec.yml +0 -1291
- ads/aqua/training/__init__.py +0 -4
- ads/aqua/training/exceptions.py +0 -476
- ads/aqua/ui.py +0 -499
- ads/automl/__init__.py +0 -9
- ads/automl/driver.py +0 -330
- ads/automl/provider.py +0 -975
- ads/bds/__init__.py +0 -5
- ads/bds/auth.py +0 -127
- ads/bds/big_data_service.py +0 -255
- ads/catalog/__init__.py +0 -19
- ads/catalog/model.py +0 -1576
- ads/catalog/notebook.py +0 -461
- ads/catalog/project.py +0 -468
- ads/catalog/summary.py +0 -178
- ads/common/__init__.py +0 -11
- ads/common/analyzer.py +0 -65
- ads/common/artifact/.model-ignore +0 -63
- ads/common/artifact/__init__.py +0 -10
- ads/common/auth.py +0 -1122
- ads/common/card_identifier.py +0 -83
- ads/common/config.py +0 -647
- ads/common/data.py +0 -165
- ads/common/decorator/__init__.py +0 -9
- ads/common/decorator/argument_to_case.py +0 -88
- ads/common/decorator/deprecate.py +0 -69
- ads/common/decorator/require_nonempty_arg.py +0 -65
- ads/common/decorator/runtime_dependency.py +0 -178
- ads/common/decorator/threaded.py +0 -97
- ads/common/decorator/utils.py +0 -35
- ads/common/dsc_file_system.py +0 -303
- ads/common/error.py +0 -14
- ads/common/extended_enum.py +0 -81
- ads/common/function/__init__.py +0 -5
- ads/common/function/fn_util.py +0 -142
- ads/common/function/func_conf.yaml +0 -25
- ads/common/ipython.py +0 -76
- ads/common/model.py +0 -679
- ads/common/model_artifact.py +0 -1759
- ads/common/model_artifact_schema.json +0 -107
- ads/common/model_export_util.py +0 -664
- ads/common/model_metadata.py +0 -24
- ads/common/object_storage_details.py +0 -296
- ads/common/oci_client.py +0 -175
- ads/common/oci_datascience.py +0 -46
- ads/common/oci_logging.py +0 -1144
- ads/common/oci_mixin.py +0 -957
- ads/common/oci_resource.py +0 -136
- ads/common/serializer.py +0 -559
- ads/common/utils.py +0 -1852
- ads/common/word_lists.py +0 -1491
- ads/common/work_request.py +0 -189
- ads/data_labeling/__init__.py +0 -13
- ads/data_labeling/boundingbox.py +0 -253
- ads/data_labeling/constants.py +0 -47
- ads/data_labeling/data_labeling_service.py +0 -244
- ads/data_labeling/interface/__init__.py +0 -5
- ads/data_labeling/interface/loader.py +0 -16
- ads/data_labeling/interface/parser.py +0 -16
- ads/data_labeling/interface/reader.py +0 -23
- ads/data_labeling/loader/__init__.py +0 -5
- ads/data_labeling/loader/file_loader.py +0 -241
- ads/data_labeling/metadata.py +0 -110
- ads/data_labeling/mixin/__init__.py +0 -5
- ads/data_labeling/mixin/data_labeling.py +0 -232
- ads/data_labeling/ner.py +0 -129
- ads/data_labeling/parser/__init__.py +0 -5
- ads/data_labeling/parser/dls_record_parser.py +0 -388
- ads/data_labeling/parser/export_metadata_parser.py +0 -94
- ads/data_labeling/parser/export_record_parser.py +0 -473
- ads/data_labeling/reader/__init__.py +0 -5
- ads/data_labeling/reader/dataset_reader.py +0 -574
- ads/data_labeling/reader/dls_record_reader.py +0 -121
- ads/data_labeling/reader/export_record_reader.py +0 -62
- ads/data_labeling/reader/jsonl_reader.py +0 -75
- ads/data_labeling/reader/metadata_reader.py +0 -203
- ads/data_labeling/reader/record_reader.py +0 -263
- ads/data_labeling/record.py +0 -52
- ads/data_labeling/visualizer/__init__.py +0 -5
- ads/data_labeling/visualizer/image_visualizer.py +0 -525
- ads/data_labeling/visualizer/text_visualizer.py +0 -357
- ads/database/__init__.py +0 -5
- ads/database/connection.py +0 -338
- ads/dataset/__init__.py +0 -10
- ads/dataset/capabilities.md +0 -51
- ads/dataset/classification_dataset.py +0 -339
- ads/dataset/correlation.py +0 -226
- ads/dataset/correlation_plot.py +0 -563
- ads/dataset/dask_series.py +0 -173
- ads/dataset/dataframe_transformer.py +0 -110
- ads/dataset/dataset.py +0 -1979
- ads/dataset/dataset_browser.py +0 -360
- ads/dataset/dataset_with_target.py +0 -995
- ads/dataset/exception.py +0 -25
- ads/dataset/factory.py +0 -987
- ads/dataset/feature_engineering_transformer.py +0 -35
- ads/dataset/feature_selection.py +0 -107
- ads/dataset/forecasting_dataset.py +0 -26
- ads/dataset/helper.py +0 -1450
- ads/dataset/label_encoder.py +0 -99
- ads/dataset/mixin/__init__.py +0 -5
- ads/dataset/mixin/dataset_accessor.py +0 -134
- ads/dataset/pipeline.py +0 -58
- ads/dataset/plot.py +0 -710
- ads/dataset/progress.py +0 -86
- ads/dataset/recommendation.py +0 -297
- ads/dataset/recommendation_transformer.py +0 -502
- ads/dataset/regression_dataset.py +0 -14
- ads/dataset/sampled_dataset.py +0 -1050
- ads/dataset/target.py +0 -98
- ads/dataset/timeseries.py +0 -18
- ads/dbmixin/__init__.py +0 -5
- ads/dbmixin/db_pandas_accessor.py +0 -153
- ads/environment/__init__.py +0 -9
- ads/environment/ml_runtime.py +0 -66
- ads/evaluations/README.md +0 -14
- ads/evaluations/__init__.py +0 -109
- ads/evaluations/evaluation_plot.py +0 -983
- ads/evaluations/evaluator.py +0 -1334
- ads/evaluations/statistical_metrics.py +0 -543
- ads/experiments/__init__.py +0 -9
- ads/experiments/capabilities.md +0 -0
- ads/explanations/__init__.py +0 -21
- ads/explanations/base_explainer.py +0 -142
- ads/explanations/capabilities.md +0 -83
- ads/explanations/explainer.py +0 -190
- ads/explanations/mlx_global_explainer.py +0 -1050
- ads/explanations/mlx_interface.py +0 -386
- ads/explanations/mlx_local_explainer.py +0 -287
- ads/explanations/mlx_whatif_explainer.py +0 -201
- ads/feature_engineering/__init__.py +0 -20
- ads/feature_engineering/accessor/__init__.py +0 -5
- ads/feature_engineering/accessor/dataframe_accessor.py +0 -535
- ads/feature_engineering/accessor/mixin/__init__.py +0 -5
- ads/feature_engineering/accessor/mixin/correlation.py +0 -166
- ads/feature_engineering/accessor/mixin/eda_mixin.py +0 -266
- ads/feature_engineering/accessor/mixin/eda_mixin_series.py +0 -85
- ads/feature_engineering/accessor/mixin/feature_types_mixin.py +0 -211
- ads/feature_engineering/accessor/mixin/utils.py +0 -65
- ads/feature_engineering/accessor/series_accessor.py +0 -431
- ads/feature_engineering/adsimage/__init__.py +0 -5
- ads/feature_engineering/adsimage/image.py +0 -192
- ads/feature_engineering/adsimage/image_reader.py +0 -170
- ads/feature_engineering/adsimage/interface/__init__.py +0 -5
- ads/feature_engineering/adsimage/interface/reader.py +0 -19
- ads/feature_engineering/adsstring/__init__.py +0 -7
- ads/feature_engineering/adsstring/oci_language/__init__.py +0 -8
- ads/feature_engineering/adsstring/string/__init__.py +0 -8
- ads/feature_engineering/data_schema.json +0 -57
- ads/feature_engineering/dataset/__init__.py +0 -5
- ads/feature_engineering/dataset/zip_code_data.py +0 -42062
- ads/feature_engineering/exceptions.py +0 -40
- ads/feature_engineering/feature_type/__init__.py +0 -133
- ads/feature_engineering/feature_type/address.py +0 -184
- ads/feature_engineering/feature_type/adsstring/__init__.py +0 -5
- ads/feature_engineering/feature_type/adsstring/common_regex_mixin.py +0 -164
- ads/feature_engineering/feature_type/adsstring/oci_language.py +0 -93
- ads/feature_engineering/feature_type/adsstring/parsers/__init__.py +0 -5
- ads/feature_engineering/feature_type/adsstring/parsers/base.py +0 -47
- ads/feature_engineering/feature_type/adsstring/parsers/nltk_parser.py +0 -96
- ads/feature_engineering/feature_type/adsstring/parsers/spacy_parser.py +0 -221
- ads/feature_engineering/feature_type/adsstring/string.py +0 -258
- ads/feature_engineering/feature_type/base.py +0 -58
- ads/feature_engineering/feature_type/boolean.py +0 -183
- ads/feature_engineering/feature_type/category.py +0 -146
- ads/feature_engineering/feature_type/constant.py +0 -137
- ads/feature_engineering/feature_type/continuous.py +0 -151
- ads/feature_engineering/feature_type/creditcard.py +0 -314
- ads/feature_engineering/feature_type/datetime.py +0 -190
- ads/feature_engineering/feature_type/discrete.py +0 -134
- ads/feature_engineering/feature_type/document.py +0 -43
- ads/feature_engineering/feature_type/gis.py +0 -251
- ads/feature_engineering/feature_type/handler/__init__.py +0 -5
- ads/feature_engineering/feature_type/handler/feature_validator.py +0 -524
- ads/feature_engineering/feature_type/handler/feature_warning.py +0 -319
- ads/feature_engineering/feature_type/handler/warnings.py +0 -128
- ads/feature_engineering/feature_type/integer.py +0 -142
- ads/feature_engineering/feature_type/ip_address.py +0 -144
- ads/feature_engineering/feature_type/ip_address_v4.py +0 -138
- ads/feature_engineering/feature_type/ip_address_v6.py +0 -138
- ads/feature_engineering/feature_type/lat_long.py +0 -256
- ads/feature_engineering/feature_type/object.py +0 -43
- ads/feature_engineering/feature_type/ordinal.py +0 -132
- ads/feature_engineering/feature_type/phone_number.py +0 -135
- ads/feature_engineering/feature_type/string.py +0 -171
- ads/feature_engineering/feature_type/text.py +0 -93
- ads/feature_engineering/feature_type/unknown.py +0 -43
- ads/feature_engineering/feature_type/zip_code.py +0 -164
- ads/feature_engineering/feature_type_manager.py +0 -406
- ads/feature_engineering/schema.py +0 -795
- ads/feature_engineering/utils.py +0 -245
- ads/feature_store/.readthedocs.yaml +0 -19
- ads/feature_store/README.md +0 -65
- ads/feature_store/__init__.py +0 -9
- ads/feature_store/common/__init__.py +0 -0
- ads/feature_store/common/enums.py +0 -339
- ads/feature_store/common/exceptions.py +0 -18
- ads/feature_store/common/spark_session_singleton.py +0 -125
- ads/feature_store/common/utils/__init__.py +0 -0
- ads/feature_store/common/utils/base64_encoder_decoder.py +0 -72
- ads/feature_store/common/utils/feature_schema_mapper.py +0 -283
- ads/feature_store/common/utils/transformation_utils.py +0 -82
- ads/feature_store/common/utils/utility.py +0 -403
- ads/feature_store/data_validation/__init__.py +0 -0
- ads/feature_store/data_validation/great_expectation.py +0 -129
- ads/feature_store/dataset.py +0 -1230
- ads/feature_store/dataset_job.py +0 -530
- ads/feature_store/docs/Dockerfile +0 -7
- ads/feature_store/docs/Makefile +0 -44
- ads/feature_store/docs/conf.py +0 -28
- ads/feature_store/docs/requirements.txt +0 -14
- ads/feature_store/docs/source/ads.feature_store.query.rst +0 -20
- ads/feature_store/docs/source/cicd.rst +0 -137
- ads/feature_store/docs/source/conf.py +0 -86
- ads/feature_store/docs/source/data_versioning.rst +0 -33
- ads/feature_store/docs/source/dataset.rst +0 -388
- ads/feature_store/docs/source/dataset_job.rst +0 -27
- ads/feature_store/docs/source/demo.rst +0 -70
- ads/feature_store/docs/source/entity.rst +0 -78
- ads/feature_store/docs/source/feature_group.rst +0 -624
- ads/feature_store/docs/source/feature_group_job.rst +0 -29
- ads/feature_store/docs/source/feature_store.rst +0 -122
- ads/feature_store/docs/source/feature_store_class.rst +0 -123
- ads/feature_store/docs/source/feature_validation.rst +0 -66
- ads/feature_store/docs/source/figures/cicd.png +0 -0
- ads/feature_store/docs/source/figures/data_validation.png +0 -0
- ads/feature_store/docs/source/figures/data_versioning.png +0 -0
- ads/feature_store/docs/source/figures/dataset.gif +0 -0
- ads/feature_store/docs/source/figures/dataset.png +0 -0
- ads/feature_store/docs/source/figures/dataset_lineage.png +0 -0
- ads/feature_store/docs/source/figures/dataset_statistics.png +0 -0
- ads/feature_store/docs/source/figures/dataset_statistics_viz.png +0 -0
- ads/feature_store/docs/source/figures/dataset_validation_results.png +0 -0
- ads/feature_store/docs/source/figures/dataset_validation_summary.png +0 -0
- ads/feature_store/docs/source/figures/drift_monitoring.png +0 -0
- ads/feature_store/docs/source/figures/entity.png +0 -0
- ads/feature_store/docs/source/figures/feature_group.png +0 -0
- ads/feature_store/docs/source/figures/feature_group_lineage.png +0 -0
- ads/feature_store/docs/source/figures/feature_group_statistics_viz.png +0 -0
- ads/feature_store/docs/source/figures/feature_store_deployment.png +0 -0
- ads/feature_store/docs/source/figures/feature_store_overview.png +0 -0
- ads/feature_store/docs/source/figures/featuregroup.gif +0 -0
- ads/feature_store/docs/source/figures/lineage_d1.png +0 -0
- ads/feature_store/docs/source/figures/lineage_d2.png +0 -0
- ads/feature_store/docs/source/figures/lineage_fg.png +0 -0
- ads/feature_store/docs/source/figures/logo-dark-mode.png +0 -0
- ads/feature_store/docs/source/figures/logo-light-mode.png +0 -0
- ads/feature_store/docs/source/figures/overview.png +0 -0
- ads/feature_store/docs/source/figures/resource_manager.png +0 -0
- ads/feature_store/docs/source/figures/resource_manager_feature_store_stack.png +0 -0
- ads/feature_store/docs/source/figures/resource_manager_home.png +0 -0
- ads/feature_store/docs/source/figures/stats_1.png +0 -0
- ads/feature_store/docs/source/figures/stats_2.png +0 -0
- ads/feature_store/docs/source/figures/stats_d.png +0 -0
- ads/feature_store/docs/source/figures/stats_fg.png +0 -0
- ads/feature_store/docs/source/figures/transformation.png +0 -0
- ads/feature_store/docs/source/figures/transformations.gif +0 -0
- ads/feature_store/docs/source/figures/validation.png +0 -0
- ads/feature_store/docs/source/figures/validation_fg.png +0 -0
- ads/feature_store/docs/source/figures/validation_results.png +0 -0
- ads/feature_store/docs/source/figures/validation_summary.png +0 -0
- ads/feature_store/docs/source/index.rst +0 -81
- ads/feature_store/docs/source/module.rst +0 -8
- ads/feature_store/docs/source/notebook.rst +0 -94
- ads/feature_store/docs/source/overview.rst +0 -47
- ads/feature_store/docs/source/quickstart.rst +0 -176
- ads/feature_store/docs/source/release_notes.rst +0 -194
- ads/feature_store/docs/source/setup_feature_store.rst +0 -81
- ads/feature_store/docs/source/statistics.rst +0 -58
- ads/feature_store/docs/source/transformation.rst +0 -199
- ads/feature_store/docs/source/ui.rst +0 -65
- ads/feature_store/docs/source/user_guides.setup.feature_store_operator.rst +0 -66
- ads/feature_store/docs/source/user_guides.setup.helm_chart.rst +0 -192
- ads/feature_store/docs/source/user_guides.setup.terraform.rst +0 -338
- ads/feature_store/entity.py +0 -718
- ads/feature_store/execution_strategy/__init__.py +0 -0
- ads/feature_store/execution_strategy/delta_lake/__init__.py +0 -0
- ads/feature_store/execution_strategy/delta_lake/delta_lake_service.py +0 -375
- ads/feature_store/execution_strategy/engine/__init__.py +0 -0
- ads/feature_store/execution_strategy/engine/spark_engine.py +0 -316
- ads/feature_store/execution_strategy/execution_strategy.py +0 -113
- ads/feature_store/execution_strategy/execution_strategy_provider.py +0 -47
- ads/feature_store/execution_strategy/spark/__init__.py +0 -0
- ads/feature_store/execution_strategy/spark/spark_execution.py +0 -618
- ads/feature_store/feature.py +0 -192
- ads/feature_store/feature_group.py +0 -1494
- ads/feature_store/feature_group_expectation.py +0 -346
- ads/feature_store/feature_group_job.py +0 -602
- ads/feature_store/feature_lineage/__init__.py +0 -0
- ads/feature_store/feature_lineage/graphviz_service.py +0 -180
- ads/feature_store/feature_option_details.py +0 -50
- ads/feature_store/feature_statistics/__init__.py +0 -0
- ads/feature_store/feature_statistics/statistics_service.py +0 -99
- ads/feature_store/feature_store.py +0 -699
- ads/feature_store/feature_store_registrar.py +0 -518
- ads/feature_store/input_feature_detail.py +0 -149
- ads/feature_store/mixin/__init__.py +0 -4
- ads/feature_store/mixin/oci_feature_store.py +0 -145
- ads/feature_store/model_details.py +0 -73
- ads/feature_store/query/__init__.py +0 -0
- ads/feature_store/query/filter.py +0 -266
- ads/feature_store/query/generator/__init__.py +0 -0
- ads/feature_store/query/generator/query_generator.py +0 -298
- ads/feature_store/query/join.py +0 -161
- ads/feature_store/query/query.py +0 -403
- ads/feature_store/query/validator/__init__.py +0 -0
- ads/feature_store/query/validator/query_validator.py +0 -57
- ads/feature_store/response/__init__.py +0 -0
- ads/feature_store/response/response_builder.py +0 -68
- ads/feature_store/service/__init__.py +0 -0
- ads/feature_store/service/oci_dataset.py +0 -139
- ads/feature_store/service/oci_dataset_job.py +0 -199
- ads/feature_store/service/oci_entity.py +0 -125
- ads/feature_store/service/oci_feature_group.py +0 -164
- ads/feature_store/service/oci_feature_group_job.py +0 -214
- ads/feature_store/service/oci_feature_store.py +0 -182
- ads/feature_store/service/oci_lineage.py +0 -87
- ads/feature_store/service/oci_transformation.py +0 -104
- ads/feature_store/statistics/__init__.py +0 -0
- ads/feature_store/statistics/abs_feature_value.py +0 -49
- ads/feature_store/statistics/charts/__init__.py +0 -0
- ads/feature_store/statistics/charts/abstract_feature_plot.py +0 -37
- ads/feature_store/statistics/charts/box_plot.py +0 -148
- ads/feature_store/statistics/charts/frequency_distribution.py +0 -65
- ads/feature_store/statistics/charts/probability_distribution.py +0 -68
- ads/feature_store/statistics/charts/top_k_frequent_elements.py +0 -98
- ads/feature_store/statistics/feature_stat.py +0 -126
- ads/feature_store/statistics/generic_feature_value.py +0 -33
- ads/feature_store/statistics/statistics.py +0 -41
- ads/feature_store/statistics_config.py +0 -101
- ads/feature_store/templates/feature_store_template.yaml +0 -45
- ads/feature_store/transformation.py +0 -499
- ads/feature_store/validation_output.py +0 -57
- ads/hpo/__init__.py +0 -9
- ads/hpo/_imports.py +0 -91
- ads/hpo/ads_search_space.py +0 -439
- ads/hpo/distributions.py +0 -325
- ads/hpo/objective.py +0 -280
- ads/hpo/search_cv.py +0 -1657
- ads/hpo/stopping_criterion.py +0 -75
- ads/hpo/tuner_artifact.py +0 -413
- ads/hpo/utils.py +0 -91
- ads/hpo/validation.py +0 -140
- ads/hpo/visualization/__init__.py +0 -5
- ads/hpo/visualization/_contour.py +0 -23
- ads/hpo/visualization/_edf.py +0 -20
- ads/hpo/visualization/_intermediate_values.py +0 -21
- ads/hpo/visualization/_optimization_history.py +0 -25
- ads/hpo/visualization/_parallel_coordinate.py +0 -169
- ads/hpo/visualization/_param_importances.py +0 -26
- ads/jobs/__init__.py +0 -53
- ads/jobs/ads_job.py +0 -663
- ads/jobs/builders/__init__.py +0 -5
- ads/jobs/builders/base.py +0 -156
- ads/jobs/builders/infrastructure/__init__.py +0 -6
- ads/jobs/builders/infrastructure/base.py +0 -165
- ads/jobs/builders/infrastructure/dataflow.py +0 -1252
- ads/jobs/builders/infrastructure/dsc_job.py +0 -1894
- ads/jobs/builders/infrastructure/dsc_job_runtime.py +0 -1233
- ads/jobs/builders/infrastructure/utils.py +0 -65
- ads/jobs/builders/runtimes/__init__.py +0 -5
- ads/jobs/builders/runtimes/artifact.py +0 -338
- ads/jobs/builders/runtimes/base.py +0 -325
- ads/jobs/builders/runtimes/container_runtime.py +0 -242
- ads/jobs/builders/runtimes/python_runtime.py +0 -1016
- ads/jobs/builders/runtimes/pytorch_runtime.py +0 -204
- ads/jobs/cli.py +0 -104
- ads/jobs/env_var_parser.py +0 -131
- ads/jobs/extension.py +0 -160
- ads/jobs/schema/__init__.py +0 -5
- ads/jobs/schema/infrastructure_schema.json +0 -116
- ads/jobs/schema/job_schema.json +0 -42
- ads/jobs/schema/runtime_schema.json +0 -183
- ads/jobs/schema/validator.py +0 -141
- ads/jobs/serializer.py +0 -296
- ads/jobs/templates/__init__.py +0 -5
- ads/jobs/templates/container.py +0 -6
- ads/jobs/templates/driver_notebook.py +0 -177
- ads/jobs/templates/driver_oci.py +0 -500
- ads/jobs/templates/driver_python.py +0 -48
- ads/jobs/templates/driver_pytorch.py +0 -852
- ads/jobs/templates/driver_utils.py +0 -615
- ads/jobs/templates/hostname_from_env.c +0 -55
- ads/jobs/templates/oci_metrics.py +0 -181
- ads/jobs/utils.py +0 -104
- ads/llm/__init__.py +0 -28
- ads/llm/autogen/__init__.py +0 -2
- ads/llm/autogen/constants.py +0 -15
- ads/llm/autogen/reports/__init__.py +0 -2
- ads/llm/autogen/reports/base.py +0 -67
- ads/llm/autogen/reports/data.py +0 -103
- ads/llm/autogen/reports/session.py +0 -526
- ads/llm/autogen/reports/templates/chat_box.html +0 -13
- ads/llm/autogen/reports/templates/chat_box_lt.html +0 -5
- ads/llm/autogen/reports/templates/chat_box_rt.html +0 -6
- ads/llm/autogen/reports/utils.py +0 -56
- ads/llm/autogen/v02/__init__.py +0 -4
- ads/llm/autogen/v02/client.py +0 -295
- ads/llm/autogen/v02/log_handlers/__init__.py +0 -2
- ads/llm/autogen/v02/log_handlers/oci_file_handler.py +0 -83
- ads/llm/autogen/v02/loggers/__init__.py +0 -6
- ads/llm/autogen/v02/loggers/metric_logger.py +0 -320
- ads/llm/autogen/v02/loggers/session_logger.py +0 -580
- ads/llm/autogen/v02/loggers/utils.py +0 -86
- ads/llm/autogen/v02/runtime_logging.py +0 -163
- ads/llm/chain.py +0 -268
- ads/llm/chat_template.py +0 -31
- ads/llm/deploy.py +0 -63
- ads/llm/guardrails/__init__.py +0 -5
- ads/llm/guardrails/base.py +0 -442
- ads/llm/guardrails/huggingface.py +0 -44
- ads/llm/langchain/__init__.py +0 -5
- ads/llm/langchain/plugins/__init__.py +0 -5
- ads/llm/langchain/plugins/chat_models/__init__.py +0 -5
- ads/llm/langchain/plugins/chat_models/oci_data_science.py +0 -1027
- ads/llm/langchain/plugins/embeddings/__init__.py +0 -4
- ads/llm/langchain/plugins/embeddings/oci_data_science_model_deployment_endpoint.py +0 -184
- ads/llm/langchain/plugins/llms/__init__.py +0 -5
- ads/llm/langchain/plugins/llms/oci_data_science_model_deployment_endpoint.py +0 -979
- ads/llm/requirements.txt +0 -3
- ads/llm/serialize.py +0 -219
- ads/llm/serializers/__init__.py +0 -0
- ads/llm/serializers/retrieval_qa.py +0 -153
- ads/llm/serializers/runnable_parallel.py +0 -27
- ads/llm/templates/score_chain.jinja2 +0 -155
- ads/llm/templates/tool_chat_template_hermes.jinja +0 -130
- ads/llm/templates/tool_chat_template_mistral_parallel.jinja +0 -94
- ads/model/__init__.py +0 -52
- ads/model/artifact.py +0 -573
- ads/model/artifact_downloader.py +0 -254
- ads/model/artifact_uploader.py +0 -267
- ads/model/base_properties.py +0 -238
- ads/model/common/.model-ignore +0 -66
- ads/model/common/__init__.py +0 -5
- ads/model/common/utils.py +0 -142
- ads/model/datascience_model.py +0 -2635
- ads/model/deployment/__init__.py +0 -20
- ads/model/deployment/common/__init__.py +0 -5
- ads/model/deployment/common/utils.py +0 -308
- ads/model/deployment/model_deployer.py +0 -466
- ads/model/deployment/model_deployment.py +0 -1846
- ads/model/deployment/model_deployment_infrastructure.py +0 -671
- ads/model/deployment/model_deployment_properties.py +0 -493
- ads/model/deployment/model_deployment_runtime.py +0 -838
- ads/model/extractor/__init__.py +0 -5
- ads/model/extractor/automl_extractor.py +0 -74
- ads/model/extractor/embedding_onnx_extractor.py +0 -80
- ads/model/extractor/huggingface_extractor.py +0 -88
- ads/model/extractor/keras_extractor.py +0 -84
- ads/model/extractor/lightgbm_extractor.py +0 -93
- ads/model/extractor/model_info_extractor.py +0 -114
- ads/model/extractor/model_info_extractor_factory.py +0 -105
- ads/model/extractor/pytorch_extractor.py +0 -87
- ads/model/extractor/sklearn_extractor.py +0 -112
- ads/model/extractor/spark_extractor.py +0 -89
- ads/model/extractor/tensorflow_extractor.py +0 -85
- ads/model/extractor/xgboost_extractor.py +0 -94
- ads/model/framework/__init__.py +0 -5
- ads/model/framework/automl_model.py +0 -178
- ads/model/framework/embedding_onnx_model.py +0 -438
- ads/model/framework/huggingface_model.py +0 -399
- ads/model/framework/lightgbm_model.py +0 -266
- ads/model/framework/pytorch_model.py +0 -266
- ads/model/framework/sklearn_model.py +0 -250
- ads/model/framework/spark_model.py +0 -326
- ads/model/framework/tensorflow_model.py +0 -254
- ads/model/framework/xgboost_model.py +0 -258
- ads/model/generic_model.py +0 -3518
- ads/model/model_artifact_boilerplate/README.md +0 -381
- ads/model/model_artifact_boilerplate/__init__.py +0 -5
- ads/model/model_artifact_boilerplate/artifact_introspection_test/__init__.py +0 -5
- ads/model/model_artifact_boilerplate/artifact_introspection_test/model_artifact_validate.py +0 -427
- ads/model/model_artifact_boilerplate/artifact_introspection_test/requirements.txt +0 -2
- ads/model/model_artifact_boilerplate/runtime.yaml +0 -7
- ads/model/model_artifact_boilerplate/score.py +0 -61
- ads/model/model_file_description_schema.json +0 -68
- ads/model/model_introspect.py +0 -331
- ads/model/model_metadata.py +0 -1810
- ads/model/model_metadata_mixin.py +0 -460
- ads/model/model_properties.py +0 -63
- ads/model/model_version_set.py +0 -739
- ads/model/runtime/__init__.py +0 -5
- ads/model/runtime/env_info.py +0 -306
- ads/model/runtime/model_deployment_details.py +0 -37
- ads/model/runtime/model_provenance_details.py +0 -58
- ads/model/runtime/runtime_info.py +0 -81
- ads/model/runtime/schemas/inference_env_info_schema.yaml +0 -16
- ads/model/runtime/schemas/model_provenance_schema.yaml +0 -36
- ads/model/runtime/schemas/training_env_info_schema.yaml +0 -16
- ads/model/runtime/utils.py +0 -201
- ads/model/serde/__init__.py +0 -5
- ads/model/serde/common.py +0 -40
- ads/model/serde/model_input.py +0 -547
- ads/model/serde/model_serializer.py +0 -1184
- ads/model/service/__init__.py +0 -5
- ads/model/service/oci_datascience_model.py +0 -1076
- ads/model/service/oci_datascience_model_deployment.py +0 -500
- ads/model/service/oci_datascience_model_version_set.py +0 -176
- ads/model/transformer/__init__.py +0 -5
- ads/model/transformer/onnx_transformer.py +0 -324
- ads/mysqldb/__init__.py +0 -5
- ads/mysqldb/mysql_db.py +0 -227
- ads/opctl/__init__.py +0 -18
- ads/opctl/anomaly_detection.py +0 -11
- ads/opctl/backend/__init__.py +0 -5
- ads/opctl/backend/ads_dataflow.py +0 -353
- ads/opctl/backend/ads_ml_job.py +0 -710
- ads/opctl/backend/ads_ml_pipeline.py +0 -164
- ads/opctl/backend/ads_model_deployment.py +0 -209
- ads/opctl/backend/base.py +0 -146
- ads/opctl/backend/local.py +0 -1053
- ads/opctl/backend/marketplace/__init__.py +0 -9
- ads/opctl/backend/marketplace/helm_helper.py +0 -173
- ads/opctl/backend/marketplace/local_marketplace.py +0 -271
- ads/opctl/backend/marketplace/marketplace_backend_runner.py +0 -71
- ads/opctl/backend/marketplace/marketplace_operator_interface.py +0 -44
- ads/opctl/backend/marketplace/marketplace_operator_runner.py +0 -24
- ads/opctl/backend/marketplace/marketplace_utils.py +0 -212
- ads/opctl/backend/marketplace/models/__init__.py +0 -5
- ads/opctl/backend/marketplace/models/bearer_token.py +0 -94
- ads/opctl/backend/marketplace/models/marketplace_type.py +0 -70
- ads/opctl/backend/marketplace/models/ocir_details.py +0 -56
- ads/opctl/backend/marketplace/prerequisite_checker.py +0 -238
- ads/opctl/cli.py +0 -707
- ads/opctl/cmds.py +0 -869
- ads/opctl/conda/__init__.py +0 -5
- ads/opctl/conda/cli.py +0 -193
- ads/opctl/conda/cmds.py +0 -749
- ads/opctl/conda/config.yaml +0 -34
- ads/opctl/conda/manifest_template.yaml +0 -13
- ads/opctl/conda/multipart_uploader.py +0 -188
- ads/opctl/conda/pack.py +0 -89
- ads/opctl/config/__init__.py +0 -5
- ads/opctl/config/base.py +0 -57
- ads/opctl/config/diagnostics/__init__.py +0 -5
- ads/opctl/config/diagnostics/distributed/default_requirements_config.yaml +0 -62
- ads/opctl/config/merger.py +0 -255
- ads/opctl/config/resolver.py +0 -297
- ads/opctl/config/utils.py +0 -79
- ads/opctl/config/validator.py +0 -17
- ads/opctl/config/versioner.py +0 -68
- ads/opctl/config/yaml_parsers/__init__.py +0 -7
- ads/opctl/config/yaml_parsers/base.py +0 -58
- ads/opctl/config/yaml_parsers/distributed/__init__.py +0 -7
- ads/opctl/config/yaml_parsers/distributed/yaml_parser.py +0 -201
- ads/opctl/constants.py +0 -66
- ads/opctl/decorator/__init__.py +0 -5
- ads/opctl/decorator/common.py +0 -129
- ads/opctl/diagnostics/__init__.py +0 -5
- ads/opctl/diagnostics/__main__.py +0 -25
- ads/opctl/diagnostics/check_distributed_job_requirements.py +0 -212
- ads/opctl/diagnostics/check_requirements.py +0 -144
- ads/opctl/diagnostics/requirement_exception.py +0 -9
- ads/opctl/distributed/README.md +0 -109
- ads/opctl/distributed/__init__.py +0 -5
- ads/opctl/distributed/certificates.py +0 -32
- ads/opctl/distributed/cli.py +0 -207
- ads/opctl/distributed/cmds.py +0 -731
- ads/opctl/distributed/common/__init__.py +0 -5
- ads/opctl/distributed/common/abstract_cluster_provider.py +0 -449
- ads/opctl/distributed/common/abstract_framework_spec_builder.py +0 -88
- ads/opctl/distributed/common/cluster_config_helper.py +0 -103
- ads/opctl/distributed/common/cluster_provider_factory.py +0 -21
- ads/opctl/distributed/common/cluster_runner.py +0 -54
- ads/opctl/distributed/common/framework_factory.py +0 -29
- ads/opctl/docker/Dockerfile.job +0 -103
- ads/opctl/docker/Dockerfile.job.arm +0 -107
- ads/opctl/docker/Dockerfile.job.gpu +0 -175
- ads/opctl/docker/base-env.yaml +0 -13
- ads/opctl/docker/cuda.repo +0 -6
- ads/opctl/docker/operator/.dockerignore +0 -0
- ads/opctl/docker/operator/Dockerfile +0 -41
- ads/opctl/docker/operator/Dockerfile.gpu +0 -85
- ads/opctl/docker/operator/cuda.repo +0 -6
- ads/opctl/docker/operator/environment.yaml +0 -8
- ads/opctl/forecast.py +0 -11
- ads/opctl/index.yaml +0 -3
- ads/opctl/model/__init__.py +0 -5
- ads/opctl/model/cli.py +0 -65
- ads/opctl/model/cmds.py +0 -73
- ads/opctl/operator/README.md +0 -4
- ads/opctl/operator/__init__.py +0 -31
- ads/opctl/operator/cli.py +0 -344
- ads/opctl/operator/cmd.py +0 -596
- ads/opctl/operator/common/__init__.py +0 -5
- ads/opctl/operator/common/backend_factory.py +0 -460
- ads/opctl/operator/common/const.py +0 -27
- ads/opctl/operator/common/data/synthetic.csv +0 -16001
- ads/opctl/operator/common/dictionary_merger.py +0 -148
- ads/opctl/operator/common/errors.py +0 -42
- ads/opctl/operator/common/operator_config.py +0 -99
- ads/opctl/operator/common/operator_loader.py +0 -811
- ads/opctl/operator/common/operator_schema.yaml +0 -130
- ads/opctl/operator/common/operator_yaml_generator.py +0 -152
- ads/opctl/operator/common/utils.py +0 -208
- ads/opctl/operator/lowcode/__init__.py +0 -5
- ads/opctl/operator/lowcode/anomaly/MLoperator +0 -16
- ads/opctl/operator/lowcode/anomaly/README.md +0 -207
- ads/opctl/operator/lowcode/anomaly/__init__.py +0 -5
- ads/opctl/operator/lowcode/anomaly/__main__.py +0 -103
- ads/opctl/operator/lowcode/anomaly/cmd.py +0 -35
- ads/opctl/operator/lowcode/anomaly/const.py +0 -167
- ads/opctl/operator/lowcode/anomaly/environment.yaml +0 -10
- ads/opctl/operator/lowcode/anomaly/model/__init__.py +0 -5
- ads/opctl/operator/lowcode/anomaly/model/anomaly_dataset.py +0 -146
- ads/opctl/operator/lowcode/anomaly/model/anomaly_merlion.py +0 -162
- ads/opctl/operator/lowcode/anomaly/model/automlx.py +0 -99
- ads/opctl/operator/lowcode/anomaly/model/autots.py +0 -115
- ads/opctl/operator/lowcode/anomaly/model/base_model.py +0 -404
- ads/opctl/operator/lowcode/anomaly/model/factory.py +0 -110
- ads/opctl/operator/lowcode/anomaly/model/isolationforest.py +0 -78
- ads/opctl/operator/lowcode/anomaly/model/oneclasssvm.py +0 -78
- ads/opctl/operator/lowcode/anomaly/model/randomcutforest.py +0 -120
- ads/opctl/operator/lowcode/anomaly/model/tods.py +0 -119
- ads/opctl/operator/lowcode/anomaly/operator_config.py +0 -127
- ads/opctl/operator/lowcode/anomaly/schema.yaml +0 -401
- ads/opctl/operator/lowcode/anomaly/utils.py +0 -88
- ads/opctl/operator/lowcode/common/__init__.py +0 -5
- ads/opctl/operator/lowcode/common/const.py +0 -10
- ads/opctl/operator/lowcode/common/data.py +0 -116
- ads/opctl/operator/lowcode/common/errors.py +0 -47
- ads/opctl/operator/lowcode/common/transformations.py +0 -296
- ads/opctl/operator/lowcode/common/utils.py +0 -293
- ads/opctl/operator/lowcode/feature_store_marketplace/MLoperator +0 -13
- ads/opctl/operator/lowcode/feature_store_marketplace/README.md +0 -30
- ads/opctl/operator/lowcode/feature_store_marketplace/__init__.py +0 -5
- ads/opctl/operator/lowcode/feature_store_marketplace/__main__.py +0 -116
- ads/opctl/operator/lowcode/feature_store_marketplace/cmd.py +0 -85
- ads/opctl/operator/lowcode/feature_store_marketplace/const.py +0 -15
- ads/opctl/operator/lowcode/feature_store_marketplace/environment.yaml +0 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/models/__init__.py +0 -4
- ads/opctl/operator/lowcode/feature_store_marketplace/models/apigw_config.py +0 -32
- ads/opctl/operator/lowcode/feature_store_marketplace/models/db_config.py +0 -43
- ads/opctl/operator/lowcode/feature_store_marketplace/models/mysql_config.py +0 -120
- ads/opctl/operator/lowcode/feature_store_marketplace/models/serializable_yaml_model.py +0 -34
- ads/opctl/operator/lowcode/feature_store_marketplace/operator_utils.py +0 -386
- ads/opctl/operator/lowcode/feature_store_marketplace/schema.yaml +0 -160
- ads/opctl/operator/lowcode/forecast/MLoperator +0 -25
- ads/opctl/operator/lowcode/forecast/README.md +0 -209
- ads/opctl/operator/lowcode/forecast/__init__.py +0 -5
- ads/opctl/operator/lowcode/forecast/__main__.py +0 -89
- ads/opctl/operator/lowcode/forecast/cmd.py +0 -40
- ads/opctl/operator/lowcode/forecast/const.py +0 -92
- ads/opctl/operator/lowcode/forecast/environment.yaml +0 -20
- ads/opctl/operator/lowcode/forecast/errors.py +0 -26
- ads/opctl/operator/lowcode/forecast/model/__init__.py +0 -5
- ads/opctl/operator/lowcode/forecast/model/arima.py +0 -279
- ads/opctl/operator/lowcode/forecast/model/automlx.py +0 -542
- ads/opctl/operator/lowcode/forecast/model/autots.py +0 -312
- ads/opctl/operator/lowcode/forecast/model/base_model.py +0 -863
- ads/opctl/operator/lowcode/forecast/model/factory.py +0 -106
- ads/opctl/operator/lowcode/forecast/model/forecast_datasets.py +0 -492
- ads/opctl/operator/lowcode/forecast/model/ml_forecast.py +0 -243
- ads/opctl/operator/lowcode/forecast/model/neuralprophet.py +0 -486
- ads/opctl/operator/lowcode/forecast/model/prophet.py +0 -445
- ads/opctl/operator/lowcode/forecast/model_evaluator.py +0 -244
- ads/opctl/operator/lowcode/forecast/operator_config.py +0 -234
- ads/opctl/operator/lowcode/forecast/schema.yaml +0 -506
- ads/opctl/operator/lowcode/forecast/utils.py +0 -413
- ads/opctl/operator/lowcode/forecast/whatifserve/__init__.py +0 -7
- ads/opctl/operator/lowcode/forecast/whatifserve/deployment_manager.py +0 -285
- ads/opctl/operator/lowcode/forecast/whatifserve/score.py +0 -246
- ads/opctl/operator/lowcode/pii/MLoperator +0 -17
- ads/opctl/operator/lowcode/pii/README.md +0 -208
- ads/opctl/operator/lowcode/pii/__init__.py +0 -5
- ads/opctl/operator/lowcode/pii/__main__.py +0 -78
- ads/opctl/operator/lowcode/pii/cmd.py +0 -39
- ads/opctl/operator/lowcode/pii/constant.py +0 -84
- ads/opctl/operator/lowcode/pii/environment.yaml +0 -17
- ads/opctl/operator/lowcode/pii/errors.py +0 -27
- ads/opctl/operator/lowcode/pii/model/__init__.py +0 -5
- ads/opctl/operator/lowcode/pii/model/factory.py +0 -82
- ads/opctl/operator/lowcode/pii/model/guardrails.py +0 -167
- ads/opctl/operator/lowcode/pii/model/pii.py +0 -145
- ads/opctl/operator/lowcode/pii/model/processor/__init__.py +0 -34
- ads/opctl/operator/lowcode/pii/model/processor/email_replacer.py +0 -34
- ads/opctl/operator/lowcode/pii/model/processor/mbi_replacer.py +0 -35
- ads/opctl/operator/lowcode/pii/model/processor/name_replacer.py +0 -225
- ads/opctl/operator/lowcode/pii/model/processor/number_replacer.py +0 -73
- ads/opctl/operator/lowcode/pii/model/processor/remover.py +0 -26
- ads/opctl/operator/lowcode/pii/model/report.py +0 -487
- ads/opctl/operator/lowcode/pii/operator_config.py +0 -95
- ads/opctl/operator/lowcode/pii/schema.yaml +0 -108
- ads/opctl/operator/lowcode/pii/utils.py +0 -43
- ads/opctl/operator/lowcode/recommender/MLoperator +0 -16
- ads/opctl/operator/lowcode/recommender/README.md +0 -206
- ads/opctl/operator/lowcode/recommender/__init__.py +0 -5
- ads/opctl/operator/lowcode/recommender/__main__.py +0 -82
- ads/opctl/operator/lowcode/recommender/cmd.py +0 -33
- ads/opctl/operator/lowcode/recommender/constant.py +0 -30
- ads/opctl/operator/lowcode/recommender/environment.yaml +0 -11
- ads/opctl/operator/lowcode/recommender/model/base_model.py +0 -212
- ads/opctl/operator/lowcode/recommender/model/factory.py +0 -56
- ads/opctl/operator/lowcode/recommender/model/recommender_dataset.py +0 -25
- ads/opctl/operator/lowcode/recommender/model/svd.py +0 -106
- ads/opctl/operator/lowcode/recommender/operator_config.py +0 -81
- ads/opctl/operator/lowcode/recommender/schema.yaml +0 -265
- ads/opctl/operator/lowcode/recommender/utils.py +0 -13
- ads/opctl/operator/runtime/__init__.py +0 -5
- ads/opctl/operator/runtime/const.py +0 -17
- ads/opctl/operator/runtime/container_runtime_schema.yaml +0 -50
- ads/opctl/operator/runtime/marketplace_runtime.py +0 -50
- ads/opctl/operator/runtime/python_marketplace_runtime_schema.yaml +0 -21
- ads/opctl/operator/runtime/python_runtime_schema.yaml +0 -21
- ads/opctl/operator/runtime/runtime.py +0 -115
- ads/opctl/schema.yaml.yml +0 -36
- ads/opctl/script.py +0 -40
- ads/opctl/spark/__init__.py +0 -5
- ads/opctl/spark/cli.py +0 -43
- ads/opctl/spark/cmds.py +0 -147
- ads/opctl/templates/diagnostic_report_template.jinja2 +0 -102
- ads/opctl/utils.py +0 -344
- ads/oracledb/__init__.py +0 -5
- ads/oracledb/oracle_db.py +0 -346
- ads/pipeline/__init__.py +0 -39
- ads/pipeline/ads_pipeline.py +0 -2279
- ads/pipeline/ads_pipeline_run.py +0 -772
- ads/pipeline/ads_pipeline_step.py +0 -605
- ads/pipeline/builders/__init__.py +0 -5
- ads/pipeline/builders/infrastructure/__init__.py +0 -5
- ads/pipeline/builders/infrastructure/custom_script.py +0 -32
- ads/pipeline/cli.py +0 -119
- ads/pipeline/extension.py +0 -291
- ads/pipeline/schema/__init__.py +0 -5
- ads/pipeline/schema/cs_step_schema.json +0 -35
- ads/pipeline/schema/ml_step_schema.json +0 -31
- ads/pipeline/schema/pipeline_schema.json +0 -71
- ads/pipeline/visualizer/__init__.py +0 -5
- ads/pipeline/visualizer/base.py +0 -570
- ads/pipeline/visualizer/graph_renderer.py +0 -272
- ads/pipeline/visualizer/text_renderer.py +0 -84
- ads/secrets/__init__.py +0 -11
- ads/secrets/adb.py +0 -386
- ads/secrets/auth_token.py +0 -86
- ads/secrets/big_data_service.py +0 -365
- ads/secrets/mysqldb.py +0 -149
- ads/secrets/oracledb.py +0 -160
- ads/secrets/secrets.py +0 -407
- ads/telemetry/__init__.py +0 -7
- ads/telemetry/base.py +0 -69
- ads/telemetry/client.py +0 -125
- ads/telemetry/telemetry.py +0 -257
- ads/templates/dataflow_pyspark.jinja2 +0 -13
- ads/templates/dataflow_sparksql.jinja2 +0 -22
- ads/templates/func.jinja2 +0 -20
- ads/templates/schemas/openapi.json +0 -1740
- ads/templates/score-pkl.jinja2 +0 -173
- ads/templates/score.jinja2 +0 -322
- ads/templates/score_embedding_onnx.jinja2 +0 -202
- ads/templates/score_generic.jinja2 +0 -165
- ads/templates/score_huggingface_pipeline.jinja2 +0 -217
- ads/templates/score_lightgbm.jinja2 +0 -185
- ads/templates/score_onnx.jinja2 +0 -407
- ads/templates/score_onnx_new.jinja2 +0 -473
- ads/templates/score_oracle_automl.jinja2 +0 -185
- ads/templates/score_pyspark.jinja2 +0 -154
- ads/templates/score_pytorch.jinja2 +0 -219
- ads/templates/score_scikit-learn.jinja2 +0 -184
- ads/templates/score_tensorflow.jinja2 +0 -184
- ads/templates/score_xgboost.jinja2 +0 -178
- ads/text_dataset/__init__.py +0 -5
- ads/text_dataset/backends.py +0 -211
- ads/text_dataset/dataset.py +0 -445
- ads/text_dataset/extractor.py +0 -207
- ads/text_dataset/options.py +0 -53
- ads/text_dataset/udfs.py +0 -22
- ads/text_dataset/utils.py +0 -49
- ads/type_discovery/__init__.py +0 -9
- ads/type_discovery/abstract_detector.py +0 -21
- ads/type_discovery/constant_detector.py +0 -41
- ads/type_discovery/continuous_detector.py +0 -54
- ads/type_discovery/credit_card_detector.py +0 -99
- ads/type_discovery/datetime_detector.py +0 -92
- ads/type_discovery/discrete_detector.py +0 -118
- ads/type_discovery/document_detector.py +0 -146
- ads/type_discovery/ip_detector.py +0 -68
- ads/type_discovery/latlon_detector.py +0 -90
- ads/type_discovery/phone_number_detector.py +0 -63
- ads/type_discovery/type_discovery_driver.py +0 -87
- ads/type_discovery/typed_feature.py +0 -594
- ads/type_discovery/unknown_detector.py +0 -41
- ads/type_discovery/zipcode_detector.py +0 -48
- ads/vault/__init__.py +0 -7
- ads/vault/vault.py +0 -237
- oracle_ads-2.13.7.dist-info/RECORD +0 -858
- {oracle_ads-2.13.7.dist-info → oracle_ads-2.13.9rc0.dist-info}/licenses/LICENSE.txt +0 -0
ads/model/artifact.py
DELETED
@@ -1,573 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
|
3
|
-
# Copyright (c) 2022, 2025 Oracle and/or its affiliates.
|
4
|
-
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
|
5
|
-
|
6
|
-
import fnmatch
|
7
|
-
import importlib
|
8
|
-
import os
|
9
|
-
import shutil
|
10
|
-
import sys
|
11
|
-
import tempfile
|
12
|
-
import uuid
|
13
|
-
from datetime import datetime
|
14
|
-
from typing import Dict, Optional, Tuple
|
15
|
-
|
16
|
-
import fsspec
|
17
|
-
from jinja2 import Environment, PackageLoader
|
18
|
-
|
19
|
-
from ads import __version__
|
20
|
-
from ads.common import auth as authutil
|
21
|
-
from ads.common import logger, utils
|
22
|
-
from ads.common.object_storage_details import ObjectStorageDetails
|
23
|
-
from ads.config import CONDA_BUCKET_NAME, CONDA_BUCKET_NS
|
24
|
-
from ads.model.runtime.env_info import EnvInfo, InferenceEnvInfo, TrainingEnvInfo
|
25
|
-
from ads.model.runtime.runtime_info import RuntimeInfo
|
26
|
-
|
27
|
-
MODEL_ARTIFACT_VERSION = "3.0"
|
28
|
-
REQUIRED_ARTIFACT_FILES = ("runtime.yaml", "score.py")
|
29
|
-
SCORE_VERSION = "1.0"
|
30
|
-
ADS_VERSION = __version__
|
31
|
-
|
32
|
-
|
33
|
-
class ArtifactNestedFolderError(Exception): # pragma: no cover
|
34
|
-
def __init__(self, folder: str):
|
35
|
-
self.folder = folder
|
36
|
-
super().__init__("The required artifact files placed in a nested folder.")
|
37
|
-
|
38
|
-
|
39
|
-
class ArtifactRequiredFilesError(Exception): # pragma: no cover
|
40
|
-
def __init__(self, required_files: Tuple[str]):
|
41
|
-
super().__init__(
|
42
|
-
"Not all required files presented in artifact folder. "
|
43
|
-
f"Required files for conda runtime: {required_files}. If you are using container runtime, set `ignore_conda_error=True`."
|
44
|
-
)
|
45
|
-
|
46
|
-
|
47
|
-
class AritfactFolderStructureError(Exception): # pragma: no cover
|
48
|
-
def __init__(self, required_files: Tuple[str]):
|
49
|
-
super().__init__(
|
50
|
-
"The artifact folder has a wrong structure. "
|
51
|
-
f"Required files: {required_files}"
|
52
|
-
)
|
53
|
-
|
54
|
-
|
55
|
-
def _validate_artifact_dir(
|
56
|
-
artifact_dir: str, required_files: Tuple[str] = REQUIRED_ARTIFACT_FILES
|
57
|
-
) -> bool:
|
58
|
-
"""The function helper to validate artifacts folder structure.
|
59
|
-
|
60
|
-
Params
|
61
|
-
------
|
62
|
-
artifact_dir: str
|
63
|
-
The local artifact folder to store the files needed for deployment.
|
64
|
-
required_files: (Tuple[str], optional). Defaults to ("runtime.yaml", "score.py").
|
65
|
-
The list of required artifact files.
|
66
|
-
|
67
|
-
Raises:
|
68
|
-
ValueError
|
69
|
-
If `required_files` not provided.
|
70
|
-
If `artifact_dir` not exists.
|
71
|
-
ArtifactNestedFolderError
|
72
|
-
If artifact files located in a nested folder.
|
73
|
-
ArtifactRequiredFilesError
|
74
|
-
If not all required files found in artifact folder.
|
75
|
-
AritfactFolderStructureError
|
76
|
-
In case if artifact folder has a wrong structure.
|
77
|
-
|
78
|
-
Returns:
|
79
|
-
bool: True if artifact folder contains the list of the all required files.
|
80
|
-
"""
|
81
|
-
if not required_files or len(required_files) == 0:
|
82
|
-
raise ValueError("Required artifact files not provided.")
|
83
|
-
|
84
|
-
artifact_dir = os.path.abspath(os.path.expanduser(artifact_dir))
|
85
|
-
if not os.path.exists(artifact_dir):
|
86
|
-
raise ValueError(f"The path `{artifact_dir}` not found.")
|
87
|
-
|
88
|
-
result = {required_file.lower(): None for required_file in required_files}
|
89
|
-
for dirpath, _, filenames in os.walk(artifact_dir):
|
90
|
-
rel_path = os.path.abspath(dirpath)
|
91
|
-
for required_file in required_files:
|
92
|
-
for filename in fnmatch.filter(filenames, required_file):
|
93
|
-
if filename.lower() in result and result[filename] == None:
|
94
|
-
result[filename] = rel_path
|
95
|
-
|
96
|
-
# if not required artifact files found in provided artifact dir
|
97
|
-
if None in result.values():
|
98
|
-
raise ArtifactRequiredFilesError(required_files)
|
99
|
-
# if required artifact files placed in different nested folders
|
100
|
-
if len(set(result.values())) > 1:
|
101
|
-
raise AritfactFolderStructureError(required_files)
|
102
|
-
|
103
|
-
if all(path == artifact_dir for path in result.values()):
|
104
|
-
return True
|
105
|
-
|
106
|
-
# if required files are placed in a nested folder
|
107
|
-
raise (ArtifactNestedFolderError(list(result.values())[0]))
|
108
|
-
|
109
|
-
|
110
|
-
class ModelArtifact:
|
111
|
-
"""The class that represents model artifacts.
|
112
|
-
It is designed to help to generate and manage model artifacts.
|
113
|
-
"""
|
114
|
-
|
115
|
-
def __init__(
|
116
|
-
self,
|
117
|
-
artifact_dir: str,
|
118
|
-
model_file_name: str = None,
|
119
|
-
reload: Optional[bool] = False,
|
120
|
-
ignore_conda_error: Optional[bool] = False,
|
121
|
-
local_copy_dir: str = None,
|
122
|
-
auth: dict = None,
|
123
|
-
):
|
124
|
-
"""Initializes a ModelArtifact instance.
|
125
|
-
|
126
|
-
Parameters
|
127
|
-
----------
|
128
|
-
artifact_dir: str
|
129
|
-
The artifact folder to store the files needed for deployment.
|
130
|
-
model_file_name: (str, optional). Defaults to `None`.
|
131
|
-
The file name of the serialized model.
|
132
|
-
reload: (bool, optional). Defaults to False.
|
133
|
-
Determine whether will reload the Model into the env.
|
134
|
-
ignore_conda_error: (bool, optional). Defaults to False.
|
135
|
-
Parameter to ignore error when collecting conda information.
|
136
|
-
local_copy_dir: (str, optional). Defaults to None.
|
137
|
-
The local back up directory of the model artifacts.
|
138
|
-
auth :(Dict, optional). Defaults to None.
|
139
|
-
The default authetication is set using `ads.set_auth` API. If you need to override the
|
140
|
-
default, use the `ads.common.auth.api_keys` or `ads.common.auth.resource_principal` to create appropriate
|
141
|
-
authentication signer and kwargs required to instantiate IdentityClient object.
|
142
|
-
|
143
|
-
Returns
|
144
|
-
-------
|
145
|
-
ModelArtifact
|
146
|
-
A ModelArtifact instance.
|
147
|
-
|
148
|
-
Raises
|
149
|
-
------
|
150
|
-
ValueError
|
151
|
-
If `artifact_dir` not provided.
|
152
|
-
"""
|
153
|
-
if not artifact_dir:
|
154
|
-
raise ValueError("The `artifact_dir` needs to be provided.")
|
155
|
-
|
156
|
-
self.artifact_dir = (
|
157
|
-
artifact_dir
|
158
|
-
if ObjectStorageDetails.is_oci_path(artifact_dir)
|
159
|
-
else os.path.abspath(os.path.expanduser(artifact_dir))
|
160
|
-
)
|
161
|
-
self.local_copy_dir = (
|
162
|
-
local_copy_dir or tempfile.mkdtemp()
|
163
|
-
if ObjectStorageDetails.is_oci_path(artifact_dir)
|
164
|
-
else artifact_dir
|
165
|
-
)
|
166
|
-
|
167
|
-
self.score = None
|
168
|
-
sys.path.insert(0, self.artifact_dir)
|
169
|
-
self.model_file_name = model_file_name
|
170
|
-
self._env = Environment(loader=PackageLoader("ads", "templates"))
|
171
|
-
self.ignore_conda_error = ignore_conda_error
|
172
|
-
self.model = None
|
173
|
-
self.auth = auth or authutil.default_signer()
|
174
|
-
|
175
|
-
if reload and not ignore_conda_error:
|
176
|
-
self.reload()
|
177
|
-
# Extracts the model_file_name from the score.py.
|
178
|
-
if (
|
179
|
-
not self.model_file_name
|
180
|
-
and self.score
|
181
|
-
and hasattr(self.score, "model_name")
|
182
|
-
and self.score.model_name
|
183
|
-
):
|
184
|
-
self.model_file_name = self.score.model_name
|
185
|
-
|
186
|
-
def prepare_runtime_yaml(
|
187
|
-
self,
|
188
|
-
inference_conda_env: str,
|
189
|
-
inference_python_version: str = None,
|
190
|
-
training_conda_env: str = None,
|
191
|
-
training_python_version: str = None,
|
192
|
-
force_overwrite: bool = False,
|
193
|
-
namespace: str = CONDA_BUCKET_NS,
|
194
|
-
bucketname: str = CONDA_BUCKET_NAME,
|
195
|
-
auth: dict = None,
|
196
|
-
ignore_conda_error: bool = False,
|
197
|
-
) -> None:
|
198
|
-
"""Generate a runtime yaml file and save it to the artifact
|
199
|
-
directory.
|
200
|
-
|
201
|
-
Parameters
|
202
|
-
----------
|
203
|
-
inference_conda_env: (str, optional). Defaults to None.
|
204
|
-
The object storage path of conda pack which will be used in deployment.
|
205
|
-
Can be either slug or object storage path of the conda pack.
|
206
|
-
You can only pass in slugs if the conda pack is a service pack.
|
207
|
-
inference_python_version: (str, optional). Defaults to None.
|
208
|
-
The python version which will be used in deployment.
|
209
|
-
training_conda_env: (str, optional). Defaults to None.
|
210
|
-
The object storage path of conda pack used during training.
|
211
|
-
Can be either slug or object storage path of the conda pack.
|
212
|
-
You can only pass in slugs if the conda pack is a service pack.
|
213
|
-
training_python_version: (str, optional). Defaults to None.
|
214
|
-
The python version used during training.
|
215
|
-
force_overwrite : (bool, optional). Defaults to False.
|
216
|
-
Whether to overwrite existing files.
|
217
|
-
namespace: (str, optional)
|
218
|
-
The namespace of region. Defaults to environment variable CONDA_BUCKET_NS.
|
219
|
-
bucketname: (str, optional)
|
220
|
-
The bucketname of service pack. Defaults to environment variable CONDA_BUCKET_NAME.
|
221
|
-
auth :(Dict, optional). Defaults to None.
|
222
|
-
The default authetication is set using `ads.set_auth` API. If you need to override the
|
223
|
-
default, use the `ads.common.auth.api_keys` or `ads.common.auth.resource_principal` to create appropriate
|
224
|
-
authentication signer and kwargs required to instantiate IdentityClient object.
|
225
|
-
|
226
|
-
Raises
|
227
|
-
------
|
228
|
-
ValueError
|
229
|
-
If neither slug or conda_env_uri is provided.
|
230
|
-
|
231
|
-
Returns
|
232
|
-
-------
|
233
|
-
RuntimeInfo
|
234
|
-
A RuntimeInfo instance.
|
235
|
-
"""
|
236
|
-
runtime_info = RuntimeInfo.from_env()
|
237
|
-
runtime_info.model_artifact_version = MODEL_ARTIFACT_VERSION
|
238
|
-
if ignore_conda_error:
|
239
|
-
runtime_info.model_provenance.training_code.artifact_directory = (
|
240
|
-
self.artifact_dir
|
241
|
-
)
|
242
|
-
runtime_info.save(storage_options=auth)
|
243
|
-
return runtime_info
|
244
|
-
inference_conda_env = ModelArtifact._populate_env_info(
|
245
|
-
InferenceEnvInfo,
|
246
|
-
conda_pack=inference_conda_env,
|
247
|
-
bucketname=bucketname,
|
248
|
-
namespace=namespace,
|
249
|
-
auth=auth,
|
250
|
-
)
|
251
|
-
|
252
|
-
if training_conda_env:
|
253
|
-
training_conda_env = ModelArtifact._populate_env_info(
|
254
|
-
TrainingEnvInfo,
|
255
|
-
conda_pack=training_conda_env,
|
256
|
-
bucketname=bucketname,
|
257
|
-
namespace=namespace,
|
258
|
-
auth=auth,
|
259
|
-
)
|
260
|
-
else:
|
261
|
-
training_conda_env = TrainingEnvInfo()
|
262
|
-
if training_python_version:
|
263
|
-
training_conda_env.training_python_version = training_python_version
|
264
|
-
if inference_python_version:
|
265
|
-
inference_conda_env.inference_python_version = inference_python_version
|
266
|
-
runtime_info.model_deployment.inference_conda_env = inference_conda_env
|
267
|
-
runtime_info.model_provenance.training_conda_env = training_conda_env
|
268
|
-
runtime_info.model_provenance.training_code.artifact_directory = (
|
269
|
-
self.artifact_dir
|
270
|
-
)
|
271
|
-
if (
|
272
|
-
not runtime_info.model_deployment.inference_conda_env.inference_python_version
|
273
|
-
or runtime_info.model_deployment.inference_conda_env.inference_python_version.strip()
|
274
|
-
== ""
|
275
|
-
):
|
276
|
-
raise ValueError(
|
277
|
-
"Cannot automatically detect the inference python version. "
|
278
|
-
"`inference_python_version` must be provided."
|
279
|
-
)
|
280
|
-
runtime_file_path = os.path.join(self.artifact_dir, "runtime.yaml")
|
281
|
-
if os.path.exists(runtime_file_path) and not force_overwrite:
|
282
|
-
raise ValueError(
|
283
|
-
"runtime.yaml already exists. "
|
284
|
-
"Set `force_overwrite` to True to overwrite all the files."
|
285
|
-
)
|
286
|
-
else:
|
287
|
-
runtime_info.save(storage_options=auth)
|
288
|
-
return runtime_info
|
289
|
-
|
290
|
-
@staticmethod
|
291
|
-
def _populate_env_info(
|
292
|
-
clss: EnvInfo,
|
293
|
-
conda_pack: str,
|
294
|
-
bucketname: str = None,
|
295
|
-
namespace: str = None,
|
296
|
-
auth: dict = None,
|
297
|
-
) -> "EnvInfo":
|
298
|
-
"""Populates the Training/InferenceEnvInfo instance.
|
299
|
-
|
300
|
-
Parameters
|
301
|
-
----------
|
302
|
-
clss: EnvInfo
|
303
|
-
A EnvInfo class.
|
304
|
-
conda_pack: str
|
305
|
-
The object storage path of conda pack.
|
306
|
-
Can be either slug or object storage path of the conda pack.
|
307
|
-
You can only pass in slugs if the conda pack is a service pack.
|
308
|
-
namespace: (str, optional)
|
309
|
-
The namespace of region.
|
310
|
-
bucketname: (str, optional)
|
311
|
-
The bucketname of service pack.
|
312
|
-
auth: (Dict, optional). Defaults to None.
|
313
|
-
The default authetication is set using `ads.set_auth` API. If you need to override the
|
314
|
-
default, use the `ads.common.auth.api_keys` or `ads.common.auth.resource_principal` to create appropriate
|
315
|
-
authentication signer and kwargs required to instantiate IdentityClient object.
|
316
|
-
|
317
|
-
Returns
|
318
|
-
-------
|
319
|
-
EnvInfo
|
320
|
-
An EnvInfo instance.
|
321
|
-
"""
|
322
|
-
if conda_pack.startswith("oci://"):
|
323
|
-
return clss.from_path(conda_pack)
|
324
|
-
return clss.from_slug(
|
325
|
-
env_slug=conda_pack, bucketname=bucketname, namespace=namespace, auth=auth
|
326
|
-
)
|
327
|
-
|
328
|
-
def prepare_score_py(
|
329
|
-
self, jinja_template_filename: str, model_file_name: str = None, **kwargs
|
330
|
-
):
|
331
|
-
"""Prepares `score.py` file.
|
332
|
-
|
333
|
-
Parameters
|
334
|
-
----------
|
335
|
-
jinja_template_filename: str.
|
336
|
-
The jinja template file name.
|
337
|
-
model_file_name: (str, optional). Defaults to `None`.
|
338
|
-
The file name of the serialized model.
|
339
|
-
**kwargs: (dict)
|
340
|
-
use_torch_script: bool
|
341
|
-
data_deserializer: str
|
342
|
-
|
343
|
-
Returns
|
344
|
-
-------
|
345
|
-
None
|
346
|
-
|
347
|
-
Raises
|
348
|
-
------
|
349
|
-
ValueError
|
350
|
-
If `model_file_name` not provided.
|
351
|
-
"""
|
352
|
-
self.model_file_name = model_file_name or self.model_file_name
|
353
|
-
if not self.model_file_name:
|
354
|
-
raise ValueError("The `model_file_name` must be provided.")
|
355
|
-
|
356
|
-
if not os.path.exists(
|
357
|
-
os.path.join(
|
358
|
-
os.path.abspath(os.path.join(os.path.dirname(__file__), "..")),
|
359
|
-
"templates",
|
360
|
-
f"{jinja_template_filename}.jinja2",
|
361
|
-
)
|
362
|
-
):
|
363
|
-
raise FileExistsError(f"{jinja_template_filename}.jinja2 does not exists.")
|
364
|
-
scorefn_template = self._env.get_template(f"{jinja_template_filename}.jinja2")
|
365
|
-
time_suffix = datetime.today().strftime("%Y%m%d_%H%M%S")
|
366
|
-
|
367
|
-
context = {
|
368
|
-
"model_file_name": self.model_file_name,
|
369
|
-
"SCORE_VERSION": SCORE_VERSION,
|
370
|
-
"ADS_VERSION": ADS_VERSION,
|
371
|
-
"time_created": time_suffix,
|
372
|
-
}
|
373
|
-
storage_options = kwargs.pop("auth", {})
|
374
|
-
storage_options = storage_options if storage_options else {}
|
375
|
-
context.update(kwargs)
|
376
|
-
with fsspec.open(
|
377
|
-
os.path.join(self.artifact_dir, "score.py"), "w", **storage_options
|
378
|
-
) as f:
|
379
|
-
f.write(scorefn_template.render(context))
|
380
|
-
|
381
|
-
def prepare_schema(self, schema_name: str):
|
382
|
-
"""Copies schema to artifact directory.
|
383
|
-
|
384
|
-
Parameters
|
385
|
-
----------
|
386
|
-
schema_name: str
|
387
|
-
The schema name
|
388
|
-
|
389
|
-
Returns
|
390
|
-
-------
|
391
|
-
None
|
392
|
-
|
393
|
-
Raises
|
394
|
-
------
|
395
|
-
FileExistsError
|
396
|
-
If `schema_name` doesn't exist.
|
397
|
-
"""
|
398
|
-
uri_src = os.path.join(
|
399
|
-
os.path.abspath(os.path.join(os.path.dirname(__file__), "..")),
|
400
|
-
"templates",
|
401
|
-
"schemas",
|
402
|
-
f"{schema_name}",
|
403
|
-
)
|
404
|
-
|
405
|
-
if not os.path.exists(uri_src):
|
406
|
-
raise FileExistsError(
|
407
|
-
f"{schema_name} does not exists. "
|
408
|
-
"Ensure the schema name is valid or specify a different one."
|
409
|
-
)
|
410
|
-
|
411
|
-
uri_dst = os.path.join(self.artifact_dir, os.path.basename(uri_src))
|
412
|
-
|
413
|
-
utils.copy_file(
|
414
|
-
uri_src=uri_src,
|
415
|
-
uri_dst=uri_dst,
|
416
|
-
force_overwrite=True,
|
417
|
-
auth=self.auth,
|
418
|
-
)
|
419
|
-
|
420
|
-
def reload(self):
|
421
|
-
"""Syncs the `score.py` to reload the model and predict function.
|
422
|
-
|
423
|
-
Returns
|
424
|
-
-------
|
425
|
-
None
|
426
|
-
Nothing
|
427
|
-
|
428
|
-
"""
|
429
|
-
if ObjectStorageDetails.is_oci_path(self.artifact_dir):
|
430
|
-
utils.copy_from_uri(
|
431
|
-
uri=self.artifact_dir,
|
432
|
-
to_path=self.local_copy_dir,
|
433
|
-
force_overwrite=True,
|
434
|
-
auth=self.auth,
|
435
|
-
)
|
436
|
-
|
437
|
-
spec = importlib.util.spec_from_file_location(
|
438
|
-
"score%s" % uuid.uuid4(), os.path.join(self.local_copy_dir, "score.py")
|
439
|
-
)
|
440
|
-
self.score = importlib.util.module_from_spec(spec)
|
441
|
-
spec.loader.exec_module(self.score)
|
442
|
-
self.model = self.score.load_model() # load model in cache
|
443
|
-
# remove the cache files.
|
444
|
-
for dir in [
|
445
|
-
os.path.join(self.local_copy_dir, "__pycache__"),
|
446
|
-
os.path.join(self.local_copy_dir, ".ipynb_checkpoints"),
|
447
|
-
]:
|
448
|
-
if os.path.exists(dir):
|
449
|
-
shutil.rmtree(dir, ignore_errors=True)
|
450
|
-
|
451
|
-
@classmethod
|
452
|
-
def from_uri(
|
453
|
-
cls,
|
454
|
-
uri: str,
|
455
|
-
artifact_dir: str,
|
456
|
-
model_file_name: str = None,
|
457
|
-
force_overwrite: Optional[bool] = False,
|
458
|
-
auth: Optional[Dict] = None,
|
459
|
-
ignore_conda_error: Optional[bool] = False,
|
460
|
-
reload: Optional[bool] = False,
|
461
|
-
):
|
462
|
-
"""Constructs a ModelArtifact object from the existing model artifacts.
|
463
|
-
|
464
|
-
Parameters
|
465
|
-
----------
|
466
|
-
uri: str
|
467
|
-
The URI of source artifact folder or achive. Can be local path or
|
468
|
-
OCI object storage URI.
|
469
|
-
artifact_dir: str
|
470
|
-
The local artifact folder to store the files needed for deployment.
|
471
|
-
auth: (Dict, optional). Defaults to None.
|
472
|
-
The default authetication is set using `ads.set_auth` API.
|
473
|
-
If you need to override the default, use the `ads.common.auth.api_keys`
|
474
|
-
or `ads.common.auth.resource_principal` to create appropriate
|
475
|
-
authentication signer and kwargs required to instantiate
|
476
|
-
IdentityClient object.
|
477
|
-
force_overwrite: (bool, optional). Defaults to False.
|
478
|
-
Whether to overwrite existing files or not.
|
479
|
-
ignore_conda_error: (bool, optional). Defaults to False.
|
480
|
-
Parameter to ignore error when collecting conda information.
|
481
|
-
model_file_name: (str, optional). Defaults to `None`
|
482
|
-
The file name of the serialized model.
|
483
|
-
reload: (bool, optional). Defaults to False.
|
484
|
-
Whether to reload the Model into the environment.
|
485
|
-
|
486
|
-
Returns
|
487
|
-
-------
|
488
|
-
ModelArtifact
|
489
|
-
A `ModelArtifact` instance
|
490
|
-
|
491
|
-
Raises
|
492
|
-
------
|
493
|
-
ValueError
|
494
|
-
If `uri` is equal to `artifact_dir`, and it not exists.
|
495
|
-
If `artifact_dir` is not provided.
|
496
|
-
"""
|
497
|
-
if not artifact_dir:
|
498
|
-
raise ValueError("The `artifact_dir` needs to be provided.")
|
499
|
-
|
500
|
-
artifact_dir = (
|
501
|
-
artifact_dir
|
502
|
-
if ObjectStorageDetails.is_oci_path(artifact_dir)
|
503
|
-
else os.path.join(os.path.abspath(os.path.expanduser(artifact_dir)), "")
|
504
|
-
)
|
505
|
-
|
506
|
-
if not ObjectStorageDetails.is_oci_path(uri):
|
507
|
-
uri = os.path.join(os.path.abspath(os.path.expanduser(uri)).rstrip("/"), "")
|
508
|
-
auth = auth or authutil.default_signer()
|
509
|
-
|
510
|
-
to_path = (
|
511
|
-
tempfile.mkdtemp()
|
512
|
-
if ObjectStorageDetails.is_oci_path(artifact_dir)
|
513
|
-
else artifact_dir
|
514
|
-
)
|
515
|
-
force_overwrite = (
|
516
|
-
True if ObjectStorageDetails.is_oci_path(artifact_dir) else force_overwrite
|
517
|
-
)
|
518
|
-
if artifact_dir == uri and not ObjectStorageDetails.is_oci_path(artifact_dir):
|
519
|
-
if not utils.is_path_exists(artifact_dir, auth=auth):
|
520
|
-
raise ValueError("Provided `uri` doesn't exist.")
|
521
|
-
else:
|
522
|
-
utils.copy_from_uri(
|
523
|
-
uri=uri,
|
524
|
-
to_path=to_path,
|
525
|
-
unpack=True,
|
526
|
-
force_overwrite=force_overwrite,
|
527
|
-
auth=auth,
|
528
|
-
)
|
529
|
-
|
530
|
-
if not ignore_conda_error:
|
531
|
-
try:
|
532
|
-
_validate_artifact_dir(to_path)
|
533
|
-
except ArtifactNestedFolderError as exc:
|
534
|
-
with tempfile.TemporaryDirectory() as temp_dir:
|
535
|
-
utils.copy_from_uri(
|
536
|
-
uri=exc.folder, to_path=temp_dir, force_overwrite=True
|
537
|
-
)
|
538
|
-
utils.copy_from_uri(
|
539
|
-
uri=temp_dir, to_path=to_path, force_overwrite=True
|
540
|
-
)
|
541
|
-
except ArtifactRequiredFilesError as ex:
|
542
|
-
logger.warning(ex)
|
543
|
-
|
544
|
-
if ObjectStorageDetails.is_oci_path(artifact_dir):
|
545
|
-
for root, dirs, files in os.walk(to_path):
|
546
|
-
prefix = (os.path.abspath(root).split(to_path)[-1]).lstrip("/")
|
547
|
-
for file in files:
|
548
|
-
path = os.path.join(prefix, file)
|
549
|
-
utils.copy_file(
|
550
|
-
uri_src=os.path.join(root, file),
|
551
|
-
uri_dst=os.path.join(artifact_dir, path),
|
552
|
-
force_overwrite=True,
|
553
|
-
auth=auth,
|
554
|
-
)
|
555
|
-
|
556
|
-
return cls(
|
557
|
-
artifact_dir=artifact_dir,
|
558
|
-
ignore_conda_error=ignore_conda_error,
|
559
|
-
local_copy_dir=to_path,
|
560
|
-
model_file_name=model_file_name,
|
561
|
-
reload=reload,
|
562
|
-
)
|
563
|
-
|
564
|
-
def __getattr__(self, item):
|
565
|
-
"""Makes the functions in `score.py` directly accessable by ModelArtifact class."""
|
566
|
-
|
567
|
-
try:
|
568
|
-
return getattr(self.score, item)
|
569
|
-
except:
|
570
|
-
if self.ignore_conda_error:
|
571
|
-
logger.warn("`verify` is not guarenteed to work for byoc case.")
|
572
|
-
else:
|
573
|
-
raise
|