oracle-ads 2.13.9rc0__py3-none-any.whl → 2.13.9rc1__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 +40 -0
- ads/aqua/app.py +506 -0
- ads/aqua/cli.py +96 -0
- ads/aqua/client/__init__.py +3 -0
- ads/aqua/client/client.py +836 -0
- ads/aqua/client/openai_client.py +305 -0
- ads/aqua/common/__init__.py +5 -0
- ads/aqua/common/decorator.py +125 -0
- ads/aqua/common/entities.py +269 -0
- ads/aqua/common/enums.py +122 -0
- ads/aqua/common/errors.py +109 -0
- ads/aqua/common/utils.py +1285 -0
- ads/aqua/config/__init__.py +4 -0
- ads/aqua/config/container_config.py +248 -0
- ads/aqua/config/evaluation/__init__.py +4 -0
- ads/aqua/config/evaluation/evaluation_service_config.py +147 -0
- ads/aqua/config/utils/__init__.py +4 -0
- ads/aqua/config/utils/serializer.py +339 -0
- ads/aqua/constants.py +116 -0
- ads/aqua/data.py +14 -0
- ads/aqua/dummy_data/icon.txt +1 -0
- ads/aqua/dummy_data/oci_model_deployments.json +56 -0
- ads/aqua/dummy_data/oci_models.json +1 -0
- ads/aqua/dummy_data/readme.md +26 -0
- ads/aqua/evaluation/__init__.py +8 -0
- ads/aqua/evaluation/constants.py +53 -0
- ads/aqua/evaluation/entities.py +186 -0
- ads/aqua/evaluation/errors.py +70 -0
- ads/aqua/evaluation/evaluation.py +1814 -0
- ads/aqua/extension/__init__.py +42 -0
- ads/aqua/extension/aqua_ws_msg_handler.py +76 -0
- ads/aqua/extension/base_handler.py +90 -0
- ads/aqua/extension/common_handler.py +121 -0
- ads/aqua/extension/common_ws_msg_handler.py +36 -0
- ads/aqua/extension/deployment_handler.py +298 -0
- ads/aqua/extension/deployment_ws_msg_handler.py +54 -0
- ads/aqua/extension/errors.py +30 -0
- ads/aqua/extension/evaluation_handler.py +129 -0
- ads/aqua/extension/evaluation_ws_msg_handler.py +61 -0
- ads/aqua/extension/finetune_handler.py +96 -0
- ads/aqua/extension/model_handler.py +390 -0
- ads/aqua/extension/models/__init__.py +0 -0
- ads/aqua/extension/models/ws_models.py +145 -0
- ads/aqua/extension/models_ws_msg_handler.py +50 -0
- ads/aqua/extension/ui_handler.py +282 -0
- ads/aqua/extension/ui_websocket_handler.py +130 -0
- ads/aqua/extension/utils.py +133 -0
- ads/aqua/finetuning/__init__.py +7 -0
- ads/aqua/finetuning/constants.py +23 -0
- ads/aqua/finetuning/entities.py +181 -0
- ads/aqua/finetuning/finetuning.py +749 -0
- ads/aqua/model/__init__.py +8 -0
- ads/aqua/model/constants.py +60 -0
- ads/aqua/model/entities.py +385 -0
- ads/aqua/model/enums.py +32 -0
- ads/aqua/model/model.py +2114 -0
- ads/aqua/modeldeployment/__init__.py +8 -0
- ads/aqua/modeldeployment/constants.py +10 -0
- ads/aqua/modeldeployment/deployment.py +1326 -0
- ads/aqua/modeldeployment/entities.py +653 -0
- ads/aqua/modeldeployment/inference.py +74 -0
- ads/aqua/modeldeployment/utils.py +543 -0
- ads/aqua/resources/gpu_shapes_index.json +94 -0
- ads/aqua/server/__init__.py +4 -0
- ads/aqua/server/__main__.py +24 -0
- ads/aqua/server/app.py +47 -0
- ads/aqua/server/aqua_spec.yml +1291 -0
- ads/aqua/training/__init__.py +4 -0
- ads/aqua/training/exceptions.py +476 -0
- ads/aqua/ui.py +499 -0
- ads/automl/__init__.py +9 -0
- ads/automl/driver.py +330 -0
- ads/automl/provider.py +975 -0
- ads/bds/__init__.py +5 -0
- ads/bds/auth.py +127 -0
- ads/bds/big_data_service.py +255 -0
- ads/catalog/__init__.py +19 -0
- ads/catalog/model.py +1576 -0
- ads/catalog/notebook.py +461 -0
- ads/catalog/project.py +468 -0
- ads/catalog/summary.py +178 -0
- ads/common/__init__.py +11 -0
- ads/common/analyzer.py +65 -0
- ads/common/artifact/.model-ignore +63 -0
- ads/common/artifact/__init__.py +10 -0
- ads/common/auth.py +1122 -0
- ads/common/card_identifier.py +83 -0
- ads/common/config.py +647 -0
- ads/common/data.py +165 -0
- ads/common/decorator/__init__.py +9 -0
- ads/common/decorator/argument_to_case.py +88 -0
- ads/common/decorator/deprecate.py +69 -0
- ads/common/decorator/require_nonempty_arg.py +65 -0
- ads/common/decorator/runtime_dependency.py +178 -0
- ads/common/decorator/threaded.py +97 -0
- ads/common/decorator/utils.py +35 -0
- ads/common/dsc_file_system.py +303 -0
- ads/common/error.py +14 -0
- ads/common/extended_enum.py +81 -0
- ads/common/function/__init__.py +5 -0
- ads/common/function/fn_util.py +142 -0
- ads/common/function/func_conf.yaml +25 -0
- ads/common/ipython.py +76 -0
- ads/common/model.py +679 -0
- ads/common/model_artifact.py +1759 -0
- ads/common/model_artifact_schema.json +107 -0
- ads/common/model_export_util.py +664 -0
- ads/common/model_metadata.py +24 -0
- ads/common/object_storage_details.py +296 -0
- ads/common/oci_client.py +175 -0
- ads/common/oci_datascience.py +46 -0
- ads/common/oci_logging.py +1144 -0
- ads/common/oci_mixin.py +957 -0
- ads/common/oci_resource.py +136 -0
- ads/common/serializer.py +559 -0
- ads/common/utils.py +1852 -0
- ads/common/word_lists.py +1491 -0
- ads/common/work_request.py +189 -0
- ads/data_labeling/__init__.py +13 -0
- ads/data_labeling/boundingbox.py +253 -0
- ads/data_labeling/constants.py +47 -0
- ads/data_labeling/data_labeling_service.py +244 -0
- ads/data_labeling/interface/__init__.py +5 -0
- ads/data_labeling/interface/loader.py +16 -0
- ads/data_labeling/interface/parser.py +16 -0
- ads/data_labeling/interface/reader.py +23 -0
- ads/data_labeling/loader/__init__.py +5 -0
- ads/data_labeling/loader/file_loader.py +241 -0
- ads/data_labeling/metadata.py +110 -0
- ads/data_labeling/mixin/__init__.py +5 -0
- ads/data_labeling/mixin/data_labeling.py +232 -0
- ads/data_labeling/ner.py +129 -0
- ads/data_labeling/parser/__init__.py +5 -0
- ads/data_labeling/parser/dls_record_parser.py +388 -0
- ads/data_labeling/parser/export_metadata_parser.py +94 -0
- ads/data_labeling/parser/export_record_parser.py +473 -0
- ads/data_labeling/reader/__init__.py +5 -0
- ads/data_labeling/reader/dataset_reader.py +574 -0
- ads/data_labeling/reader/dls_record_reader.py +121 -0
- ads/data_labeling/reader/export_record_reader.py +62 -0
- ads/data_labeling/reader/jsonl_reader.py +75 -0
- ads/data_labeling/reader/metadata_reader.py +203 -0
- ads/data_labeling/reader/record_reader.py +263 -0
- ads/data_labeling/record.py +52 -0
- ads/data_labeling/visualizer/__init__.py +5 -0
- ads/data_labeling/visualizer/image_visualizer.py +525 -0
- ads/data_labeling/visualizer/text_visualizer.py +357 -0
- ads/database/__init__.py +5 -0
- ads/database/connection.py +338 -0
- ads/dataset/__init__.py +10 -0
- ads/dataset/capabilities.md +51 -0
- ads/dataset/classification_dataset.py +339 -0
- ads/dataset/correlation.py +226 -0
- ads/dataset/correlation_plot.py +563 -0
- ads/dataset/dask_series.py +173 -0
- ads/dataset/dataframe_transformer.py +110 -0
- ads/dataset/dataset.py +1979 -0
- ads/dataset/dataset_browser.py +360 -0
- ads/dataset/dataset_with_target.py +995 -0
- ads/dataset/exception.py +25 -0
- ads/dataset/factory.py +987 -0
- ads/dataset/feature_engineering_transformer.py +35 -0
- ads/dataset/feature_selection.py +107 -0
- ads/dataset/forecasting_dataset.py +26 -0
- ads/dataset/helper.py +1450 -0
- ads/dataset/label_encoder.py +99 -0
- ads/dataset/mixin/__init__.py +5 -0
- ads/dataset/mixin/dataset_accessor.py +134 -0
- ads/dataset/pipeline.py +58 -0
- ads/dataset/plot.py +710 -0
- ads/dataset/progress.py +86 -0
- ads/dataset/recommendation.py +297 -0
- ads/dataset/recommendation_transformer.py +502 -0
- ads/dataset/regression_dataset.py +14 -0
- ads/dataset/sampled_dataset.py +1050 -0
- ads/dataset/target.py +98 -0
- ads/dataset/timeseries.py +18 -0
- ads/dbmixin/__init__.py +5 -0
- ads/dbmixin/db_pandas_accessor.py +153 -0
- ads/environment/__init__.py +9 -0
- ads/environment/ml_runtime.py +66 -0
- ads/evaluations/README.md +14 -0
- ads/evaluations/__init__.py +109 -0
- ads/evaluations/evaluation_plot.py +983 -0
- ads/evaluations/evaluator.py +1334 -0
- ads/evaluations/statistical_metrics.py +543 -0
- ads/experiments/__init__.py +9 -0
- ads/experiments/capabilities.md +0 -0
- ads/explanations/__init__.py +21 -0
- ads/explanations/base_explainer.py +142 -0
- ads/explanations/capabilities.md +83 -0
- ads/explanations/explainer.py +190 -0
- ads/explanations/mlx_global_explainer.py +1050 -0
- ads/explanations/mlx_interface.py +386 -0
- ads/explanations/mlx_local_explainer.py +287 -0
- ads/explanations/mlx_whatif_explainer.py +201 -0
- ads/feature_engineering/__init__.py +20 -0
- ads/feature_engineering/accessor/__init__.py +5 -0
- ads/feature_engineering/accessor/dataframe_accessor.py +535 -0
- ads/feature_engineering/accessor/mixin/__init__.py +5 -0
- ads/feature_engineering/accessor/mixin/correlation.py +166 -0
- ads/feature_engineering/accessor/mixin/eda_mixin.py +266 -0
- ads/feature_engineering/accessor/mixin/eda_mixin_series.py +85 -0
- ads/feature_engineering/accessor/mixin/feature_types_mixin.py +211 -0
- ads/feature_engineering/accessor/mixin/utils.py +65 -0
- ads/feature_engineering/accessor/series_accessor.py +431 -0
- ads/feature_engineering/adsimage/__init__.py +5 -0
- ads/feature_engineering/adsimage/image.py +192 -0
- ads/feature_engineering/adsimage/image_reader.py +170 -0
- ads/feature_engineering/adsimage/interface/__init__.py +5 -0
- ads/feature_engineering/adsimage/interface/reader.py +19 -0
- ads/feature_engineering/adsstring/__init__.py +7 -0
- ads/feature_engineering/adsstring/oci_language/__init__.py +8 -0
- ads/feature_engineering/adsstring/string/__init__.py +8 -0
- ads/feature_engineering/data_schema.json +57 -0
- ads/feature_engineering/dataset/__init__.py +5 -0
- ads/feature_engineering/dataset/zip_code_data.py +42062 -0
- ads/feature_engineering/exceptions.py +40 -0
- ads/feature_engineering/feature_type/__init__.py +133 -0
- ads/feature_engineering/feature_type/address.py +184 -0
- ads/feature_engineering/feature_type/adsstring/__init__.py +5 -0
- ads/feature_engineering/feature_type/adsstring/common_regex_mixin.py +164 -0
- ads/feature_engineering/feature_type/adsstring/oci_language.py +93 -0
- ads/feature_engineering/feature_type/adsstring/parsers/__init__.py +5 -0
- ads/feature_engineering/feature_type/adsstring/parsers/base.py +47 -0
- ads/feature_engineering/feature_type/adsstring/parsers/nltk_parser.py +96 -0
- ads/feature_engineering/feature_type/adsstring/parsers/spacy_parser.py +221 -0
- ads/feature_engineering/feature_type/adsstring/string.py +258 -0
- ads/feature_engineering/feature_type/base.py +58 -0
- ads/feature_engineering/feature_type/boolean.py +183 -0
- ads/feature_engineering/feature_type/category.py +146 -0
- ads/feature_engineering/feature_type/constant.py +137 -0
- ads/feature_engineering/feature_type/continuous.py +151 -0
- ads/feature_engineering/feature_type/creditcard.py +314 -0
- ads/feature_engineering/feature_type/datetime.py +190 -0
- ads/feature_engineering/feature_type/discrete.py +134 -0
- ads/feature_engineering/feature_type/document.py +43 -0
- ads/feature_engineering/feature_type/gis.py +251 -0
- ads/feature_engineering/feature_type/handler/__init__.py +5 -0
- ads/feature_engineering/feature_type/handler/feature_validator.py +524 -0
- ads/feature_engineering/feature_type/handler/feature_warning.py +319 -0
- ads/feature_engineering/feature_type/handler/warnings.py +128 -0
- ads/feature_engineering/feature_type/integer.py +142 -0
- ads/feature_engineering/feature_type/ip_address.py +144 -0
- ads/feature_engineering/feature_type/ip_address_v4.py +138 -0
- ads/feature_engineering/feature_type/ip_address_v6.py +138 -0
- ads/feature_engineering/feature_type/lat_long.py +256 -0
- ads/feature_engineering/feature_type/object.py +43 -0
- ads/feature_engineering/feature_type/ordinal.py +132 -0
- ads/feature_engineering/feature_type/phone_number.py +135 -0
- ads/feature_engineering/feature_type/string.py +171 -0
- ads/feature_engineering/feature_type/text.py +93 -0
- ads/feature_engineering/feature_type/unknown.py +43 -0
- ads/feature_engineering/feature_type/zip_code.py +164 -0
- ads/feature_engineering/feature_type_manager.py +406 -0
- ads/feature_engineering/schema.py +795 -0
- ads/feature_engineering/utils.py +245 -0
- ads/feature_store/.readthedocs.yaml +19 -0
- ads/feature_store/README.md +65 -0
- ads/feature_store/__init__.py +9 -0
- ads/feature_store/common/__init__.py +0 -0
- ads/feature_store/common/enums.py +339 -0
- ads/feature_store/common/exceptions.py +18 -0
- ads/feature_store/common/spark_session_singleton.py +125 -0
- ads/feature_store/common/utils/__init__.py +0 -0
- ads/feature_store/common/utils/base64_encoder_decoder.py +72 -0
- ads/feature_store/common/utils/feature_schema_mapper.py +283 -0
- ads/feature_store/common/utils/transformation_utils.py +82 -0
- ads/feature_store/common/utils/utility.py +403 -0
- ads/feature_store/data_validation/__init__.py +0 -0
- ads/feature_store/data_validation/great_expectation.py +129 -0
- ads/feature_store/dataset.py +1230 -0
- ads/feature_store/dataset_job.py +530 -0
- ads/feature_store/docs/Dockerfile +7 -0
- ads/feature_store/docs/Makefile +44 -0
- ads/feature_store/docs/conf.py +28 -0
- ads/feature_store/docs/requirements.txt +14 -0
- ads/feature_store/docs/source/ads.feature_store.query.rst +20 -0
- ads/feature_store/docs/source/cicd.rst +137 -0
- ads/feature_store/docs/source/conf.py +86 -0
- ads/feature_store/docs/source/data_versioning.rst +33 -0
- ads/feature_store/docs/source/dataset.rst +388 -0
- ads/feature_store/docs/source/dataset_job.rst +27 -0
- ads/feature_store/docs/source/demo.rst +70 -0
- ads/feature_store/docs/source/entity.rst +78 -0
- ads/feature_store/docs/source/feature_group.rst +624 -0
- ads/feature_store/docs/source/feature_group_job.rst +29 -0
- ads/feature_store/docs/source/feature_store.rst +122 -0
- ads/feature_store/docs/source/feature_store_class.rst +123 -0
- ads/feature_store/docs/source/feature_validation.rst +66 -0
- 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 +81 -0
- ads/feature_store/docs/source/module.rst +8 -0
- ads/feature_store/docs/source/notebook.rst +94 -0
- ads/feature_store/docs/source/overview.rst +47 -0
- ads/feature_store/docs/source/quickstart.rst +176 -0
- ads/feature_store/docs/source/release_notes.rst +194 -0
- ads/feature_store/docs/source/setup_feature_store.rst +81 -0
- ads/feature_store/docs/source/statistics.rst +58 -0
- ads/feature_store/docs/source/transformation.rst +199 -0
- ads/feature_store/docs/source/ui.rst +65 -0
- ads/feature_store/docs/source/user_guides.setup.feature_store_operator.rst +66 -0
- ads/feature_store/docs/source/user_guides.setup.helm_chart.rst +192 -0
- ads/feature_store/docs/source/user_guides.setup.terraform.rst +338 -0
- ads/feature_store/entity.py +718 -0
- 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 +375 -0
- ads/feature_store/execution_strategy/engine/__init__.py +0 -0
- ads/feature_store/execution_strategy/engine/spark_engine.py +316 -0
- ads/feature_store/execution_strategy/execution_strategy.py +113 -0
- ads/feature_store/execution_strategy/execution_strategy_provider.py +47 -0
- ads/feature_store/execution_strategy/spark/__init__.py +0 -0
- ads/feature_store/execution_strategy/spark/spark_execution.py +618 -0
- ads/feature_store/feature.py +192 -0
- ads/feature_store/feature_group.py +1494 -0
- ads/feature_store/feature_group_expectation.py +346 -0
- ads/feature_store/feature_group_job.py +602 -0
- ads/feature_store/feature_lineage/__init__.py +0 -0
- ads/feature_store/feature_lineage/graphviz_service.py +180 -0
- ads/feature_store/feature_option_details.py +50 -0
- ads/feature_store/feature_statistics/__init__.py +0 -0
- ads/feature_store/feature_statistics/statistics_service.py +99 -0
- ads/feature_store/feature_store.py +699 -0
- ads/feature_store/feature_store_registrar.py +518 -0
- ads/feature_store/input_feature_detail.py +149 -0
- ads/feature_store/mixin/__init__.py +4 -0
- ads/feature_store/mixin/oci_feature_store.py +145 -0
- ads/feature_store/model_details.py +73 -0
- ads/feature_store/query/__init__.py +0 -0
- ads/feature_store/query/filter.py +266 -0
- ads/feature_store/query/generator/__init__.py +0 -0
- ads/feature_store/query/generator/query_generator.py +298 -0
- ads/feature_store/query/join.py +161 -0
- ads/feature_store/query/query.py +403 -0
- ads/feature_store/query/validator/__init__.py +0 -0
- ads/feature_store/query/validator/query_validator.py +57 -0
- ads/feature_store/response/__init__.py +0 -0
- ads/feature_store/response/response_builder.py +68 -0
- ads/feature_store/service/__init__.py +0 -0
- ads/feature_store/service/oci_dataset.py +139 -0
- ads/feature_store/service/oci_dataset_job.py +199 -0
- ads/feature_store/service/oci_entity.py +125 -0
- ads/feature_store/service/oci_feature_group.py +164 -0
- ads/feature_store/service/oci_feature_group_job.py +214 -0
- ads/feature_store/service/oci_feature_store.py +182 -0
- ads/feature_store/service/oci_lineage.py +87 -0
- ads/feature_store/service/oci_transformation.py +104 -0
- ads/feature_store/statistics/__init__.py +0 -0
- ads/feature_store/statistics/abs_feature_value.py +49 -0
- ads/feature_store/statistics/charts/__init__.py +0 -0
- ads/feature_store/statistics/charts/abstract_feature_plot.py +37 -0
- ads/feature_store/statistics/charts/box_plot.py +148 -0
- ads/feature_store/statistics/charts/frequency_distribution.py +65 -0
- ads/feature_store/statistics/charts/probability_distribution.py +68 -0
- ads/feature_store/statistics/charts/top_k_frequent_elements.py +98 -0
- ads/feature_store/statistics/feature_stat.py +126 -0
- ads/feature_store/statistics/generic_feature_value.py +33 -0
- ads/feature_store/statistics/statistics.py +41 -0
- ads/feature_store/statistics_config.py +101 -0
- ads/feature_store/templates/feature_store_template.yaml +45 -0
- ads/feature_store/transformation.py +499 -0
- ads/feature_store/validation_output.py +57 -0
- ads/hpo/__init__.py +9 -0
- ads/hpo/_imports.py +91 -0
- ads/hpo/ads_search_space.py +439 -0
- ads/hpo/distributions.py +325 -0
- ads/hpo/objective.py +280 -0
- ads/hpo/search_cv.py +1657 -0
- ads/hpo/stopping_criterion.py +75 -0
- ads/hpo/tuner_artifact.py +413 -0
- ads/hpo/utils.py +91 -0
- ads/hpo/validation.py +140 -0
- ads/hpo/visualization/__init__.py +5 -0
- ads/hpo/visualization/_contour.py +23 -0
- ads/hpo/visualization/_edf.py +20 -0
- ads/hpo/visualization/_intermediate_values.py +21 -0
- ads/hpo/visualization/_optimization_history.py +25 -0
- ads/hpo/visualization/_parallel_coordinate.py +169 -0
- ads/hpo/visualization/_param_importances.py +26 -0
- ads/jobs/__init__.py +53 -0
- ads/jobs/ads_job.py +663 -0
- ads/jobs/builders/__init__.py +5 -0
- ads/jobs/builders/base.py +156 -0
- ads/jobs/builders/infrastructure/__init__.py +6 -0
- ads/jobs/builders/infrastructure/base.py +165 -0
- ads/jobs/builders/infrastructure/dataflow.py +1252 -0
- ads/jobs/builders/infrastructure/dsc_job.py +1894 -0
- ads/jobs/builders/infrastructure/dsc_job_runtime.py +1233 -0
- ads/jobs/builders/infrastructure/utils.py +65 -0
- ads/jobs/builders/runtimes/__init__.py +5 -0
- ads/jobs/builders/runtimes/artifact.py +338 -0
- ads/jobs/builders/runtimes/base.py +325 -0
- ads/jobs/builders/runtimes/container_runtime.py +242 -0
- ads/jobs/builders/runtimes/python_runtime.py +1016 -0
- ads/jobs/builders/runtimes/pytorch_runtime.py +204 -0
- ads/jobs/cli.py +104 -0
- ads/jobs/env_var_parser.py +131 -0
- ads/jobs/extension.py +160 -0
- ads/jobs/schema/__init__.py +5 -0
- ads/jobs/schema/infrastructure_schema.json +116 -0
- ads/jobs/schema/job_schema.json +42 -0
- ads/jobs/schema/runtime_schema.json +183 -0
- ads/jobs/schema/validator.py +141 -0
- ads/jobs/serializer.py +296 -0
- ads/jobs/templates/__init__.py +5 -0
- ads/jobs/templates/container.py +6 -0
- ads/jobs/templates/driver_notebook.py +177 -0
- ads/jobs/templates/driver_oci.py +500 -0
- ads/jobs/templates/driver_python.py +48 -0
- ads/jobs/templates/driver_pytorch.py +852 -0
- ads/jobs/templates/driver_utils.py +615 -0
- ads/jobs/templates/hostname_from_env.c +55 -0
- ads/jobs/templates/oci_metrics.py +181 -0
- ads/jobs/utils.py +104 -0
- ads/llm/__init__.py +28 -0
- ads/llm/autogen/__init__.py +2 -0
- ads/llm/autogen/constants.py +15 -0
- ads/llm/autogen/reports/__init__.py +2 -0
- ads/llm/autogen/reports/base.py +67 -0
- ads/llm/autogen/reports/data.py +103 -0
- ads/llm/autogen/reports/session.py +526 -0
- ads/llm/autogen/reports/templates/chat_box.html +13 -0
- ads/llm/autogen/reports/templates/chat_box_lt.html +5 -0
- ads/llm/autogen/reports/templates/chat_box_rt.html +6 -0
- ads/llm/autogen/reports/utils.py +56 -0
- ads/llm/autogen/v02/__init__.py +4 -0
- ads/llm/autogen/v02/client.py +295 -0
- ads/llm/autogen/v02/log_handlers/__init__.py +2 -0
- ads/llm/autogen/v02/log_handlers/oci_file_handler.py +83 -0
- ads/llm/autogen/v02/loggers/__init__.py +6 -0
- ads/llm/autogen/v02/loggers/metric_logger.py +320 -0
- ads/llm/autogen/v02/loggers/session_logger.py +580 -0
- ads/llm/autogen/v02/loggers/utils.py +86 -0
- ads/llm/autogen/v02/runtime_logging.py +163 -0
- ads/llm/chain.py +268 -0
- ads/llm/chat_template.py +31 -0
- ads/llm/deploy.py +63 -0
- ads/llm/guardrails/__init__.py +5 -0
- ads/llm/guardrails/base.py +442 -0
- ads/llm/guardrails/huggingface.py +44 -0
- ads/llm/langchain/__init__.py +5 -0
- ads/llm/langchain/plugins/__init__.py +5 -0
- ads/llm/langchain/plugins/chat_models/__init__.py +5 -0
- ads/llm/langchain/plugins/chat_models/oci_data_science.py +1027 -0
- ads/llm/langchain/plugins/embeddings/__init__.py +4 -0
- ads/llm/langchain/plugins/embeddings/oci_data_science_model_deployment_endpoint.py +184 -0
- ads/llm/langchain/plugins/llms/__init__.py +5 -0
- ads/llm/langchain/plugins/llms/oci_data_science_model_deployment_endpoint.py +979 -0
- ads/llm/requirements.txt +3 -0
- ads/llm/serialize.py +219 -0
- ads/llm/serializers/__init__.py +0 -0
- ads/llm/serializers/retrieval_qa.py +153 -0
- ads/llm/serializers/runnable_parallel.py +27 -0
- ads/llm/templates/score_chain.jinja2 +155 -0
- ads/llm/templates/tool_chat_template_hermes.jinja +130 -0
- ads/llm/templates/tool_chat_template_mistral_parallel.jinja +94 -0
- ads/model/__init__.py +52 -0
- ads/model/artifact.py +573 -0
- ads/model/artifact_downloader.py +254 -0
- ads/model/artifact_uploader.py +267 -0
- ads/model/base_properties.py +238 -0
- ads/model/common/.model-ignore +66 -0
- ads/model/common/__init__.py +5 -0
- ads/model/common/utils.py +142 -0
- ads/model/datascience_model.py +2635 -0
- ads/model/deployment/__init__.py +20 -0
- ads/model/deployment/common/__init__.py +5 -0
- ads/model/deployment/common/utils.py +308 -0
- ads/model/deployment/model_deployer.py +466 -0
- ads/model/deployment/model_deployment.py +1846 -0
- ads/model/deployment/model_deployment_infrastructure.py +671 -0
- ads/model/deployment/model_deployment_properties.py +493 -0
- ads/model/deployment/model_deployment_runtime.py +838 -0
- ads/model/extractor/__init__.py +5 -0
- ads/model/extractor/automl_extractor.py +74 -0
- ads/model/extractor/embedding_onnx_extractor.py +80 -0
- ads/model/extractor/huggingface_extractor.py +88 -0
- ads/model/extractor/keras_extractor.py +84 -0
- ads/model/extractor/lightgbm_extractor.py +93 -0
- ads/model/extractor/model_info_extractor.py +114 -0
- ads/model/extractor/model_info_extractor_factory.py +105 -0
- ads/model/extractor/pytorch_extractor.py +87 -0
- ads/model/extractor/sklearn_extractor.py +112 -0
- ads/model/extractor/spark_extractor.py +89 -0
- ads/model/extractor/tensorflow_extractor.py +85 -0
- ads/model/extractor/xgboost_extractor.py +94 -0
- ads/model/framework/__init__.py +5 -0
- ads/model/framework/automl_model.py +178 -0
- ads/model/framework/embedding_onnx_model.py +438 -0
- ads/model/framework/huggingface_model.py +399 -0
- ads/model/framework/lightgbm_model.py +266 -0
- ads/model/framework/pytorch_model.py +266 -0
- ads/model/framework/sklearn_model.py +250 -0
- ads/model/framework/spark_model.py +326 -0
- ads/model/framework/tensorflow_model.py +254 -0
- ads/model/framework/xgboost_model.py +258 -0
- ads/model/generic_model.py +3518 -0
- ads/model/model_artifact_boilerplate/README.md +381 -0
- ads/model/model_artifact_boilerplate/__init__.py +5 -0
- ads/model/model_artifact_boilerplate/artifact_introspection_test/__init__.py +5 -0
- ads/model/model_artifact_boilerplate/artifact_introspection_test/model_artifact_validate.py +427 -0
- ads/model/model_artifact_boilerplate/artifact_introspection_test/requirements.txt +2 -0
- ads/model/model_artifact_boilerplate/runtime.yaml +7 -0
- ads/model/model_artifact_boilerplate/score.py +61 -0
- ads/model/model_file_description_schema.json +68 -0
- ads/model/model_introspect.py +331 -0
- ads/model/model_metadata.py +1810 -0
- ads/model/model_metadata_mixin.py +460 -0
- ads/model/model_properties.py +63 -0
- ads/model/model_version_set.py +739 -0
- ads/model/runtime/__init__.py +5 -0
- ads/model/runtime/env_info.py +306 -0
- ads/model/runtime/model_deployment_details.py +37 -0
- ads/model/runtime/model_provenance_details.py +58 -0
- ads/model/runtime/runtime_info.py +81 -0
- ads/model/runtime/schemas/inference_env_info_schema.yaml +16 -0
- ads/model/runtime/schemas/model_provenance_schema.yaml +36 -0
- ads/model/runtime/schemas/training_env_info_schema.yaml +16 -0
- ads/model/runtime/utils.py +201 -0
- ads/model/serde/__init__.py +5 -0
- ads/model/serde/common.py +40 -0
- ads/model/serde/model_input.py +547 -0
- ads/model/serde/model_serializer.py +1184 -0
- ads/model/service/__init__.py +5 -0
- ads/model/service/oci_datascience_model.py +1076 -0
- ads/model/service/oci_datascience_model_deployment.py +500 -0
- ads/model/service/oci_datascience_model_version_set.py +176 -0
- ads/model/transformer/__init__.py +5 -0
- ads/model/transformer/onnx_transformer.py +324 -0
- ads/mysqldb/__init__.py +5 -0
- ads/mysqldb/mysql_db.py +227 -0
- ads/opctl/__init__.py +18 -0
- ads/opctl/anomaly_detection.py +11 -0
- ads/opctl/backend/__init__.py +5 -0
- ads/opctl/backend/ads_dataflow.py +353 -0
- ads/opctl/backend/ads_ml_job.py +710 -0
- ads/opctl/backend/ads_ml_pipeline.py +164 -0
- ads/opctl/backend/ads_model_deployment.py +209 -0
- ads/opctl/backend/base.py +146 -0
- ads/opctl/backend/local.py +1053 -0
- ads/opctl/backend/marketplace/__init__.py +9 -0
- ads/opctl/backend/marketplace/helm_helper.py +173 -0
- ads/opctl/backend/marketplace/local_marketplace.py +271 -0
- ads/opctl/backend/marketplace/marketplace_backend_runner.py +71 -0
- ads/opctl/backend/marketplace/marketplace_operator_interface.py +44 -0
- ads/opctl/backend/marketplace/marketplace_operator_runner.py +24 -0
- ads/opctl/backend/marketplace/marketplace_utils.py +212 -0
- ads/opctl/backend/marketplace/models/__init__.py +5 -0
- ads/opctl/backend/marketplace/models/bearer_token.py +94 -0
- ads/opctl/backend/marketplace/models/marketplace_type.py +70 -0
- ads/opctl/backend/marketplace/models/ocir_details.py +56 -0
- ads/opctl/backend/marketplace/prerequisite_checker.py +238 -0
- ads/opctl/cli.py +707 -0
- ads/opctl/cmds.py +869 -0
- ads/opctl/conda/__init__.py +5 -0
- ads/opctl/conda/cli.py +193 -0
- ads/opctl/conda/cmds.py +749 -0
- ads/opctl/conda/config.yaml +34 -0
- ads/opctl/conda/manifest_template.yaml +13 -0
- ads/opctl/conda/multipart_uploader.py +188 -0
- ads/opctl/conda/pack.py +89 -0
- ads/opctl/config/__init__.py +5 -0
- ads/opctl/config/base.py +57 -0
- ads/opctl/config/diagnostics/__init__.py +5 -0
- ads/opctl/config/diagnostics/distributed/default_requirements_config.yaml +62 -0
- ads/opctl/config/merger.py +255 -0
- ads/opctl/config/resolver.py +297 -0
- ads/opctl/config/utils.py +79 -0
- ads/opctl/config/validator.py +17 -0
- ads/opctl/config/versioner.py +68 -0
- ads/opctl/config/yaml_parsers/__init__.py +7 -0
- ads/opctl/config/yaml_parsers/base.py +58 -0
- ads/opctl/config/yaml_parsers/distributed/__init__.py +7 -0
- ads/opctl/config/yaml_parsers/distributed/yaml_parser.py +201 -0
- ads/opctl/constants.py +66 -0
- ads/opctl/decorator/__init__.py +5 -0
- ads/opctl/decorator/common.py +129 -0
- ads/opctl/diagnostics/__init__.py +5 -0
- ads/opctl/diagnostics/__main__.py +25 -0
- ads/opctl/diagnostics/check_distributed_job_requirements.py +212 -0
- ads/opctl/diagnostics/check_requirements.py +144 -0
- ads/opctl/diagnostics/requirement_exception.py +9 -0
- ads/opctl/distributed/README.md +109 -0
- ads/opctl/distributed/__init__.py +5 -0
- ads/opctl/distributed/certificates.py +32 -0
- ads/opctl/distributed/cli.py +207 -0
- ads/opctl/distributed/cmds.py +731 -0
- ads/opctl/distributed/common/__init__.py +5 -0
- ads/opctl/distributed/common/abstract_cluster_provider.py +449 -0
- ads/opctl/distributed/common/abstract_framework_spec_builder.py +88 -0
- ads/opctl/distributed/common/cluster_config_helper.py +103 -0
- ads/opctl/distributed/common/cluster_provider_factory.py +21 -0
- ads/opctl/distributed/common/cluster_runner.py +54 -0
- ads/opctl/distributed/common/framework_factory.py +29 -0
- ads/opctl/docker/Dockerfile.job +103 -0
- ads/opctl/docker/Dockerfile.job.arm +107 -0
- ads/opctl/docker/Dockerfile.job.gpu +175 -0
- ads/opctl/docker/base-env.yaml +13 -0
- ads/opctl/docker/cuda.repo +6 -0
- ads/opctl/docker/operator/.dockerignore +0 -0
- ads/opctl/docker/operator/Dockerfile +41 -0
- ads/opctl/docker/operator/Dockerfile.gpu +85 -0
- ads/opctl/docker/operator/cuda.repo +6 -0
- ads/opctl/docker/operator/environment.yaml +8 -0
- ads/opctl/forecast.py +11 -0
- ads/opctl/index.yaml +3 -0
- ads/opctl/model/__init__.py +5 -0
- ads/opctl/model/cli.py +65 -0
- ads/opctl/model/cmds.py +73 -0
- ads/opctl/operator/README.md +4 -0
- ads/opctl/operator/__init__.py +31 -0
- ads/opctl/operator/cli.py +344 -0
- ads/opctl/operator/cmd.py +596 -0
- ads/opctl/operator/common/__init__.py +5 -0
- ads/opctl/operator/common/backend_factory.py +460 -0
- ads/opctl/operator/common/const.py +27 -0
- ads/opctl/operator/common/data/synthetic.csv +16001 -0
- ads/opctl/operator/common/dictionary_merger.py +148 -0
- ads/opctl/operator/common/errors.py +42 -0
- ads/opctl/operator/common/operator_config.py +99 -0
- ads/opctl/operator/common/operator_loader.py +811 -0
- ads/opctl/operator/common/operator_schema.yaml +130 -0
- ads/opctl/operator/common/operator_yaml_generator.py +152 -0
- ads/opctl/operator/common/utils.py +208 -0
- ads/opctl/operator/lowcode/__init__.py +5 -0
- ads/opctl/operator/lowcode/anomaly/MLoperator +16 -0
- ads/opctl/operator/lowcode/anomaly/README.md +207 -0
- ads/opctl/operator/lowcode/anomaly/__init__.py +5 -0
- ads/opctl/operator/lowcode/anomaly/__main__.py +103 -0
- ads/opctl/operator/lowcode/anomaly/cmd.py +35 -0
- ads/opctl/operator/lowcode/anomaly/const.py +167 -0
- ads/opctl/operator/lowcode/anomaly/environment.yaml +10 -0
- ads/opctl/operator/lowcode/anomaly/model/__init__.py +5 -0
- ads/opctl/operator/lowcode/anomaly/model/anomaly_dataset.py +146 -0
- ads/opctl/operator/lowcode/anomaly/model/anomaly_merlion.py +162 -0
- ads/opctl/operator/lowcode/anomaly/model/automlx.py +99 -0
- ads/opctl/operator/lowcode/anomaly/model/autots.py +115 -0
- ads/opctl/operator/lowcode/anomaly/model/base_model.py +404 -0
- ads/opctl/operator/lowcode/anomaly/model/factory.py +110 -0
- ads/opctl/operator/lowcode/anomaly/model/isolationforest.py +78 -0
- ads/opctl/operator/lowcode/anomaly/model/oneclasssvm.py +78 -0
- ads/opctl/operator/lowcode/anomaly/model/randomcutforest.py +120 -0
- ads/opctl/operator/lowcode/anomaly/model/tods.py +119 -0
- ads/opctl/operator/lowcode/anomaly/operator_config.py +127 -0
- ads/opctl/operator/lowcode/anomaly/schema.yaml +401 -0
- ads/opctl/operator/lowcode/anomaly/utils.py +88 -0
- ads/opctl/operator/lowcode/common/__init__.py +5 -0
- ads/opctl/operator/lowcode/common/const.py +10 -0
- ads/opctl/operator/lowcode/common/data.py +116 -0
- ads/opctl/operator/lowcode/common/errors.py +47 -0
- ads/opctl/operator/lowcode/common/transformations.py +296 -0
- ads/opctl/operator/lowcode/common/utils.py +384 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/MLoperator +13 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/README.md +30 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/__init__.py +5 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/__main__.py +116 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/cmd.py +85 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/const.py +15 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/environment.yaml +0 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/models/__init__.py +4 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/models/apigw_config.py +32 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/models/db_config.py +43 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/models/mysql_config.py +120 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/models/serializable_yaml_model.py +34 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/operator_utils.py +386 -0
- ads/opctl/operator/lowcode/feature_store_marketplace/schema.yaml +160 -0
- ads/opctl/operator/lowcode/forecast/MLoperator +25 -0
- ads/opctl/operator/lowcode/forecast/README.md +209 -0
- ads/opctl/operator/lowcode/forecast/__init__.py +5 -0
- ads/opctl/operator/lowcode/forecast/__main__.py +89 -0
- ads/opctl/operator/lowcode/forecast/cmd.py +40 -0
- ads/opctl/operator/lowcode/forecast/const.py +92 -0
- ads/opctl/operator/lowcode/forecast/environment.yaml +20 -0
- ads/opctl/operator/lowcode/forecast/errors.py +26 -0
- ads/opctl/operator/lowcode/forecast/model/__init__.py +5 -0
- ads/opctl/operator/lowcode/forecast/model/arima.py +279 -0
- ads/opctl/operator/lowcode/forecast/model/automlx.py +553 -0
- ads/opctl/operator/lowcode/forecast/model/autots.py +312 -0
- ads/opctl/operator/lowcode/forecast/model/base_model.py +875 -0
- ads/opctl/operator/lowcode/forecast/model/factory.py +106 -0
- ads/opctl/operator/lowcode/forecast/model/forecast_datasets.py +492 -0
- ads/opctl/operator/lowcode/forecast/model/ml_forecast.py +243 -0
- ads/opctl/operator/lowcode/forecast/model/neuralprophet.py +482 -0
- ads/opctl/operator/lowcode/forecast/model/prophet.py +445 -0
- ads/opctl/operator/lowcode/forecast/model_evaluator.py +244 -0
- ads/opctl/operator/lowcode/forecast/operator_config.py +234 -0
- ads/opctl/operator/lowcode/forecast/schema.yaml +506 -0
- ads/opctl/operator/lowcode/forecast/utils.py +397 -0
- ads/opctl/operator/lowcode/forecast/whatifserve/__init__.py +7 -0
- ads/opctl/operator/lowcode/forecast/whatifserve/deployment_manager.py +285 -0
- ads/opctl/operator/lowcode/forecast/whatifserve/score.py +246 -0
- ads/opctl/operator/lowcode/pii/MLoperator +17 -0
- ads/opctl/operator/lowcode/pii/README.md +208 -0
- ads/opctl/operator/lowcode/pii/__init__.py +5 -0
- ads/opctl/operator/lowcode/pii/__main__.py +78 -0
- ads/opctl/operator/lowcode/pii/cmd.py +39 -0
- ads/opctl/operator/lowcode/pii/constant.py +84 -0
- ads/opctl/operator/lowcode/pii/environment.yaml +17 -0
- ads/opctl/operator/lowcode/pii/errors.py +27 -0
- ads/opctl/operator/lowcode/pii/model/__init__.py +5 -0
- ads/opctl/operator/lowcode/pii/model/factory.py +82 -0
- ads/opctl/operator/lowcode/pii/model/guardrails.py +167 -0
- ads/opctl/operator/lowcode/pii/model/pii.py +145 -0
- ads/opctl/operator/lowcode/pii/model/processor/__init__.py +34 -0
- ads/opctl/operator/lowcode/pii/model/processor/email_replacer.py +34 -0
- ads/opctl/operator/lowcode/pii/model/processor/mbi_replacer.py +35 -0
- ads/opctl/operator/lowcode/pii/model/processor/name_replacer.py +225 -0
- ads/opctl/operator/lowcode/pii/model/processor/number_replacer.py +73 -0
- ads/opctl/operator/lowcode/pii/model/processor/remover.py +26 -0
- ads/opctl/operator/lowcode/pii/model/report.py +487 -0
- ads/opctl/operator/lowcode/pii/operator_config.py +95 -0
- ads/opctl/operator/lowcode/pii/schema.yaml +108 -0
- ads/opctl/operator/lowcode/pii/utils.py +43 -0
- ads/opctl/operator/lowcode/recommender/MLoperator +16 -0
- ads/opctl/operator/lowcode/recommender/README.md +206 -0
- ads/opctl/operator/lowcode/recommender/__init__.py +5 -0
- ads/opctl/operator/lowcode/recommender/__main__.py +82 -0
- ads/opctl/operator/lowcode/recommender/cmd.py +33 -0
- ads/opctl/operator/lowcode/recommender/constant.py +30 -0
- ads/opctl/operator/lowcode/recommender/environment.yaml +11 -0
- ads/opctl/operator/lowcode/recommender/model/base_model.py +212 -0
- ads/opctl/operator/lowcode/recommender/model/factory.py +56 -0
- ads/opctl/operator/lowcode/recommender/model/recommender_dataset.py +25 -0
- ads/opctl/operator/lowcode/recommender/model/svd.py +106 -0
- ads/opctl/operator/lowcode/recommender/operator_config.py +81 -0
- ads/opctl/operator/lowcode/recommender/schema.yaml +265 -0
- ads/opctl/operator/lowcode/recommender/utils.py +13 -0
- ads/opctl/operator/runtime/__init__.py +5 -0
- ads/opctl/operator/runtime/const.py +17 -0
- ads/opctl/operator/runtime/container_runtime_schema.yaml +50 -0
- ads/opctl/operator/runtime/marketplace_runtime.py +50 -0
- ads/opctl/operator/runtime/python_marketplace_runtime_schema.yaml +21 -0
- ads/opctl/operator/runtime/python_runtime_schema.yaml +21 -0
- ads/opctl/operator/runtime/runtime.py +115 -0
- ads/opctl/schema.yaml.yml +36 -0
- ads/opctl/script.py +40 -0
- ads/opctl/spark/__init__.py +5 -0
- ads/opctl/spark/cli.py +43 -0
- ads/opctl/spark/cmds.py +147 -0
- ads/opctl/templates/diagnostic_report_template.jinja2 +102 -0
- ads/opctl/utils.py +344 -0
- ads/oracledb/__init__.py +5 -0
- ads/oracledb/oracle_db.py +346 -0
- ads/pipeline/__init__.py +39 -0
- ads/pipeline/ads_pipeline.py +2279 -0
- ads/pipeline/ads_pipeline_run.py +772 -0
- ads/pipeline/ads_pipeline_step.py +605 -0
- ads/pipeline/builders/__init__.py +5 -0
- ads/pipeline/builders/infrastructure/__init__.py +5 -0
- ads/pipeline/builders/infrastructure/custom_script.py +32 -0
- ads/pipeline/cli.py +119 -0
- ads/pipeline/extension.py +291 -0
- ads/pipeline/schema/__init__.py +5 -0
- ads/pipeline/schema/cs_step_schema.json +35 -0
- ads/pipeline/schema/ml_step_schema.json +31 -0
- ads/pipeline/schema/pipeline_schema.json +71 -0
- ads/pipeline/visualizer/__init__.py +5 -0
- ads/pipeline/visualizer/base.py +570 -0
- ads/pipeline/visualizer/graph_renderer.py +272 -0
- ads/pipeline/visualizer/text_renderer.py +84 -0
- ads/secrets/__init__.py +11 -0
- ads/secrets/adb.py +386 -0
- ads/secrets/auth_token.py +86 -0
- ads/secrets/big_data_service.py +365 -0
- ads/secrets/mysqldb.py +149 -0
- ads/secrets/oracledb.py +160 -0
- ads/secrets/secrets.py +407 -0
- ads/telemetry/__init__.py +7 -0
- ads/telemetry/base.py +69 -0
- ads/telemetry/client.py +125 -0
- ads/telemetry/telemetry.py +257 -0
- ads/templates/dataflow_pyspark.jinja2 +13 -0
- ads/templates/dataflow_sparksql.jinja2 +22 -0
- ads/templates/func.jinja2 +20 -0
- ads/templates/schemas/openapi.json +1740 -0
- ads/templates/score-pkl.jinja2 +173 -0
- ads/templates/score.jinja2 +322 -0
- ads/templates/score_embedding_onnx.jinja2 +202 -0
- ads/templates/score_generic.jinja2 +165 -0
- ads/templates/score_huggingface_pipeline.jinja2 +217 -0
- ads/templates/score_lightgbm.jinja2 +185 -0
- ads/templates/score_onnx.jinja2 +407 -0
- ads/templates/score_onnx_new.jinja2 +473 -0
- ads/templates/score_oracle_automl.jinja2 +185 -0
- ads/templates/score_pyspark.jinja2 +154 -0
- ads/templates/score_pytorch.jinja2 +219 -0
- ads/templates/score_scikit-learn.jinja2 +184 -0
- ads/templates/score_tensorflow.jinja2 +184 -0
- ads/templates/score_xgboost.jinja2 +178 -0
- ads/text_dataset/__init__.py +5 -0
- ads/text_dataset/backends.py +211 -0
- ads/text_dataset/dataset.py +445 -0
- ads/text_dataset/extractor.py +207 -0
- ads/text_dataset/options.py +53 -0
- ads/text_dataset/udfs.py +22 -0
- ads/text_dataset/utils.py +49 -0
- ads/type_discovery/__init__.py +9 -0
- ads/type_discovery/abstract_detector.py +21 -0
- ads/type_discovery/constant_detector.py +41 -0
- ads/type_discovery/continuous_detector.py +54 -0
- ads/type_discovery/credit_card_detector.py +99 -0
- ads/type_discovery/datetime_detector.py +92 -0
- ads/type_discovery/discrete_detector.py +118 -0
- ads/type_discovery/document_detector.py +146 -0
- ads/type_discovery/ip_detector.py +68 -0
- ads/type_discovery/latlon_detector.py +90 -0
- ads/type_discovery/phone_number_detector.py +63 -0
- ads/type_discovery/type_discovery_driver.py +87 -0
- ads/type_discovery/typed_feature.py +594 -0
- ads/type_discovery/unknown_detector.py +41 -0
- ads/type_discovery/zipcode_detector.py +48 -0
- ads/vault/__init__.py +7 -0
- ads/vault/vault.py +237 -0
- {oracle_ads-2.13.9rc0.dist-info → oracle_ads-2.13.9rc1.dist-info}/METADATA +150 -150
- oracle_ads-2.13.9rc1.dist-info/RECORD +858 -0
- {oracle_ads-2.13.9rc0.dist-info → oracle_ads-2.13.9rc1.dist-info}/WHEEL +1 -2
- {oracle_ads-2.13.9rc0.dist-info → oracle_ads-2.13.9rc1.dist-info}/entry_points.txt +2 -1
- oracle_ads-2.13.9rc0.dist-info/RECORD +0 -9
- oracle_ads-2.13.9rc0.dist-info/top_level.txt +0 -1
- {oracle_ads-2.13.9rc0.dist-info → oracle_ads-2.13.9rc1.dist-info}/licenses/LICENSE.txt +0 -0
@@ -0,0 +1,62 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8; -*-
|
3
|
+
|
4
|
+
# Copyright (c) 2021, 2022 Oracle and/or its affiliates.
|
5
|
+
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
|
6
|
+
|
7
|
+
from typing import Any, Dict, Generator
|
8
|
+
from ads.data_labeling.reader.jsonl_reader import JsonlReader
|
9
|
+
|
10
|
+
|
11
|
+
class ExportRecordReader(JsonlReader):
|
12
|
+
"""The ExportRecordReader class to read labeled dataset records from the export.
|
13
|
+
|
14
|
+
Methods
|
15
|
+
-------
|
16
|
+
read(self) -> Generator[Dict, Any, Any]
|
17
|
+
Reads labeled dataset records.
|
18
|
+
"""
|
19
|
+
|
20
|
+
def __init__(
|
21
|
+
self,
|
22
|
+
path: str,
|
23
|
+
auth: Dict = None,
|
24
|
+
encoding="utf-8",
|
25
|
+
includes_metadata: bool = False,
|
26
|
+
) -> "ExportRecordReader":
|
27
|
+
"""Initiates an ExportRecordReader instance.
|
28
|
+
|
29
|
+
Parameters
|
30
|
+
----------
|
31
|
+
path: str
|
32
|
+
object storage path or local path for a file.
|
33
|
+
auth: (dict, optional). Defaults to None.
|
34
|
+
The default authetication is set using `ads.set_auth` API. If you need to override the
|
35
|
+
default, use the `ads.common.auth.api_keys` or `ads.common.auth.resource_principal` to create appropriate
|
36
|
+
authentication signer and kwargs required to instantiate IdentityClient object.
|
37
|
+
encoding : (str, optional). Defaults to 'utf-8'.
|
38
|
+
Encoding of files. Only used for "TEXT" dataset.
|
39
|
+
includes_metadata: (bool, optional). Defaults to False.
|
40
|
+
Determines whether the export file includes metadata or not.
|
41
|
+
|
42
|
+
Examples
|
43
|
+
--------
|
44
|
+
>>> from ads.data_labeling.reader.export_record_reader import ExportRecordReader
|
45
|
+
>>> path = "your/path/to/jsonl/file.jsonl"
|
46
|
+
>>> from ads.common import auth as authutil
|
47
|
+
>>> reader = ExportRecordReader(path=path, auth=authutil.api_keys(), encoding="utf-8")
|
48
|
+
>>> next(reader.read())
|
49
|
+
"""
|
50
|
+
super().__init__(path=path, auth=auth, encoding=encoding)
|
51
|
+
self._includes_metadata = includes_metadata
|
52
|
+
|
53
|
+
def read(self) -> Generator[Dict, Any, Any]:
|
54
|
+
"""Reads labeled dataset records.
|
55
|
+
|
56
|
+
Returns
|
57
|
+
-------
|
58
|
+
Generator[Dict, Any, Any]
|
59
|
+
The labeled dataset records.
|
60
|
+
"""
|
61
|
+
skip = 1 if self._includes_metadata else None
|
62
|
+
return super().read(skip=skip)
|
@@ -0,0 +1,75 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8; -*-
|
3
|
+
|
4
|
+
# Copyright (c) 2021, 2022 Oracle and/or its affiliates.
|
5
|
+
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
|
6
|
+
|
7
|
+
import json
|
8
|
+
from typing import Any, Dict, Generator
|
9
|
+
|
10
|
+
import fsspec
|
11
|
+
from ads.data_labeling.interface.reader import Reader
|
12
|
+
from ads.common import auth as authutil
|
13
|
+
|
14
|
+
|
15
|
+
class JsonlReader(Reader):
|
16
|
+
"""JsonlReader class which reads the file."""
|
17
|
+
|
18
|
+
def __init__(self, path: str, auth: Dict = None, encoding="utf-8") -> "JsonlReader":
|
19
|
+
"""Initiates a JsonlReader object.
|
20
|
+
|
21
|
+
Parameters
|
22
|
+
----------
|
23
|
+
path: str
|
24
|
+
object storage path or local path for a file.
|
25
|
+
auth: (dict, optional). Defaults to None.
|
26
|
+
The default authetication is set using `ads.set_auth` API. If you need to override the
|
27
|
+
default, use the `ads.common.auth.api_keys` or `ads.common.auth.resource_principal` to create appropriate
|
28
|
+
authentication signer and kwargs required to instantiate IdentityClient object.
|
29
|
+
encoding : (str, optional). Defaults to 'utf-8'.
|
30
|
+
Encoding of files. Only used for "TEXT" dataset.
|
31
|
+
|
32
|
+
Examples
|
33
|
+
--------
|
34
|
+
>>> from ads.data_labeling.reader.jsonl_reader import JsonlReader
|
35
|
+
>>> path = "your/path/to/jsonl/file.jsonl"
|
36
|
+
>>> from ads.common import auth as authutil
|
37
|
+
>>> reader = JsonlReader(path=path, auth=authutil.api_keys(), encoding="utf-8")
|
38
|
+
>>> next(reader.read())
|
39
|
+
"""
|
40
|
+
self.path = path
|
41
|
+
self.auth = auth or authutil.default_signer()
|
42
|
+
self.encoding = encoding
|
43
|
+
|
44
|
+
def read(self, skip: int = None) -> Generator[Dict, Any, Any]:
|
45
|
+
"""Reads and yields the content of the file.
|
46
|
+
|
47
|
+
Parameters
|
48
|
+
----------
|
49
|
+
skip: (int, optional). Defaults to None.
|
50
|
+
The number of records that should be skipped.
|
51
|
+
|
52
|
+
Returns
|
53
|
+
-------
|
54
|
+
Generator[Dict, Any, Any]
|
55
|
+
The content of the file.
|
56
|
+
|
57
|
+
Raises
|
58
|
+
------
|
59
|
+
ValueError
|
60
|
+
If `skip` not empty and not a positive integer.
|
61
|
+
FileNotFoundError
|
62
|
+
When file not found.
|
63
|
+
"""
|
64
|
+
if skip and (not isinstance(skip, int) or skip < 1):
|
65
|
+
raise ValueError("The parameter `skip` must be a positive integer.")
|
66
|
+
try:
|
67
|
+
line_number = 0
|
68
|
+
with fsspec.open(self.path, "r", encoding=self.encoding, **self.auth) as f:
|
69
|
+
for line in f:
|
70
|
+
line_number += 1
|
71
|
+
if skip and line_number <= skip:
|
72
|
+
continue
|
73
|
+
yield json.loads(line)
|
74
|
+
except FileNotFoundError:
|
75
|
+
raise FileNotFoundError(f"Path ({self.path}) not found.")
|
@@ -0,0 +1,203 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8; -*-
|
3
|
+
|
4
|
+
# Copyright (c) 2021, 2022 Oracle and/or its affiliates.
|
5
|
+
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
|
6
|
+
|
7
|
+
from typing import Dict
|
8
|
+
|
9
|
+
from ads.common import auth as auth_util
|
10
|
+
from ads.common import oci_client
|
11
|
+
from ads.config import JOB_RUN_COMPARTMENT_OCID, NB_SESSION_COMPARTMENT_OCID
|
12
|
+
from ads.data_labeling.interface.reader import Reader
|
13
|
+
from ads.data_labeling.metadata import Metadata
|
14
|
+
from ads.data_labeling.parser.export_metadata_parser import MetadataParser
|
15
|
+
from ads.data_labeling.reader.jsonl_reader import JsonlReader
|
16
|
+
from oci.exceptions import ServiceError
|
17
|
+
|
18
|
+
|
19
|
+
class EmptyMetadata(Exception): # pragma: no cover
|
20
|
+
"""Empty Metadata."""
|
21
|
+
|
22
|
+
pass
|
23
|
+
|
24
|
+
|
25
|
+
class ReadDatasetError(Exception): # pragma: no cover
|
26
|
+
def __init__(self, id: str):
|
27
|
+
super().__init__(f"Error occurred in attempt to read dataset {id}.")
|
28
|
+
|
29
|
+
|
30
|
+
class DatasetNotFoundError(Exception): # pragma: no cover
|
31
|
+
def __init__(self, id: str):
|
32
|
+
super().__init__(f"{id} not found.")
|
33
|
+
|
34
|
+
|
35
|
+
class MetadataReader:
|
36
|
+
"""MetadataReader class which reads and extracts the labeled dataset metadata.
|
37
|
+
|
38
|
+
Examples
|
39
|
+
--------
|
40
|
+
>>> from ads.data_labeling import MetadataReader
|
41
|
+
>>> import oci
|
42
|
+
>>> import os
|
43
|
+
>>> from ads.common import auth as authutil
|
44
|
+
>>> reader = MetadataReader.from_export_file("metadata_export_file_path",
|
45
|
+
... auth=authutil.api_keys())
|
46
|
+
>>> reader.read()
|
47
|
+
"""
|
48
|
+
|
49
|
+
def __init__(self, reader: Reader):
|
50
|
+
"""Initiate a MetadataReader instance.
|
51
|
+
|
52
|
+
Parameters
|
53
|
+
----------
|
54
|
+
reader: Reader
|
55
|
+
Reader instance which reads and extracts the labeled dataset metadata.
|
56
|
+
"""
|
57
|
+
self._reader = reader
|
58
|
+
|
59
|
+
@classmethod
|
60
|
+
def from_export_file(cls, path: str, auth: Dict = None) -> "MetadataReader":
|
61
|
+
"""Contructs a MetadataReader instance.
|
62
|
+
|
63
|
+
Parameters
|
64
|
+
----------
|
65
|
+
path: str
|
66
|
+
metadata file path, can be either local or object storage path.
|
67
|
+
auth: (dict, optional). Defaults to None.
|
68
|
+
The default authetication is set using `ads.set_auth` API. If you need to override the
|
69
|
+
default, use the `ads.common.auth.api_keys` or `ads.common.auth.resource_principal` to create appropriate
|
70
|
+
authentication signer and kwargs required to instantiate IdentityClient object.
|
71
|
+
|
72
|
+
Returns
|
73
|
+
-------
|
74
|
+
MetadataReader
|
75
|
+
The MetadataReader instance whose reader is a ExportMetadataReader instance.
|
76
|
+
"""
|
77
|
+
return cls(ExportMetadataReader(path=path, auth=auth))
|
78
|
+
|
79
|
+
@classmethod
|
80
|
+
def from_DLS(
|
81
|
+
cls, dataset_id: str, compartment_id: str = None, auth: dict = None
|
82
|
+
) -> "MetadataReader":
|
83
|
+
"""Contructs a MetadataReader instance.
|
84
|
+
|
85
|
+
Parameters
|
86
|
+
----------
|
87
|
+
dataset_id: str
|
88
|
+
The dataset OCID.
|
89
|
+
compartment_id: (str, optional). Default None
|
90
|
+
The compartment OCID of the dataset.
|
91
|
+
auth: (dict, optional). Defaults to None.
|
92
|
+
The default authetication is set using `ads.set_auth` API. If you need to override the
|
93
|
+
default, use the `ads.common.auth.api_keys` or `ads.common.auth.resource_principal` to create appropriate
|
94
|
+
authentication signer and kwargs required to instantiate IdentityClient object.
|
95
|
+
|
96
|
+
Returns
|
97
|
+
-------
|
98
|
+
MetadataReader
|
99
|
+
The MetadataReader instance whose reader is a DLSMetadataReader instance.
|
100
|
+
"""
|
101
|
+
if compartment_id is None:
|
102
|
+
compartment_id = NB_SESSION_COMPARTMENT_OCID or JOB_RUN_COMPARTMENT_OCID
|
103
|
+
|
104
|
+
if not compartment_id:
|
105
|
+
raise ValueError("The `compartment_id` must be provided.")
|
106
|
+
|
107
|
+
auth = auth or auth_util.default_signer()
|
108
|
+
|
109
|
+
return cls(
|
110
|
+
DLSMetadataReader(
|
111
|
+
dataset_id=dataset_id, compartment_id=compartment_id, auth=auth
|
112
|
+
)
|
113
|
+
)
|
114
|
+
|
115
|
+
def read(self) -> Metadata:
|
116
|
+
"""Reads the content from the metadata file.
|
117
|
+
|
118
|
+
Returns
|
119
|
+
-------
|
120
|
+
Metadata
|
121
|
+
The metadata of the labeled dataset.
|
122
|
+
"""
|
123
|
+
return self._reader.read()
|
124
|
+
|
125
|
+
|
126
|
+
class DLSMetadataReader(Reader):
|
127
|
+
"""DLSMetadataReader class which reads the metadata jsonl file from the cloud."""
|
128
|
+
|
129
|
+
def __init__(self, dataset_id: str, compartment_id: str, auth: dict):
|
130
|
+
"""Initializes the DLS metadata reader instance.
|
131
|
+
|
132
|
+
Parameters
|
133
|
+
----------
|
134
|
+
dataset_id: str
|
135
|
+
The dataset OCID.
|
136
|
+
compartment_id: str
|
137
|
+
The compartment OCID of the dataset.
|
138
|
+
auth: dict
|
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
|
+
Raises
|
144
|
+
------
|
145
|
+
ValueError: When dataset_id is empty or not a string.
|
146
|
+
TypeError: When dataset_id not a string.
|
147
|
+
"""
|
148
|
+
if not dataset_id:
|
149
|
+
raise ValueError("The dataset OCID must be specified.")
|
150
|
+
|
151
|
+
if not isinstance(dataset_id, str):
|
152
|
+
raise TypeError("The dataset_id must be a string.")
|
153
|
+
self.dataset_id = dataset_id
|
154
|
+
self.compartment_id = compartment_id
|
155
|
+
|
156
|
+
self.dls_dp_client = oci_client.OCIClientFactory(**auth).data_labeling_dp
|
157
|
+
|
158
|
+
def read(self) -> Metadata:
|
159
|
+
"""Reads the content from the metadata file.
|
160
|
+
|
161
|
+
Returns
|
162
|
+
-------
|
163
|
+
Metadata
|
164
|
+
The metadata of the labeled dataset.
|
165
|
+
|
166
|
+
Raises
|
167
|
+
------
|
168
|
+
DatasetNotFoundError
|
169
|
+
If dataset not found.
|
170
|
+
ReadDatasetError
|
171
|
+
If any error occured in attempt to read dataset.
|
172
|
+
"""
|
173
|
+
try:
|
174
|
+
dataset_response = self.dls_dp_client.get_dataset(self.dataset_id)
|
175
|
+
except ServiceError as service_err:
|
176
|
+
if service_err.status == 404:
|
177
|
+
raise DatasetNotFoundError(self.dataset_id)
|
178
|
+
raise ReadDatasetError(self.dataset_id)
|
179
|
+
return Metadata.from_dls_dataset(dataset_response.data)
|
180
|
+
|
181
|
+
|
182
|
+
class ExportMetadataReader(JsonlReader):
|
183
|
+
"""ExportMetadataReader class which reads the metadata jsonl file from local/object
|
184
|
+
storage path."""
|
185
|
+
|
186
|
+
def read(self) -> Metadata:
|
187
|
+
"""Reads the content from the metadata file.
|
188
|
+
|
189
|
+
Returns
|
190
|
+
-------
|
191
|
+
Metadata
|
192
|
+
The metadata of the labeled dataset.
|
193
|
+
"""
|
194
|
+
|
195
|
+
try:
|
196
|
+
return MetadataParser.parse(next(super().read()))
|
197
|
+
except StopIteration:
|
198
|
+
raise EmptyMetadata(
|
199
|
+
"The dataset metadata file is invalid. It appears to be empty. "
|
200
|
+
"Use the `DataLabeling.export()` method to create a new dataset metadata file."
|
201
|
+
)
|
202
|
+
except Exception as e:
|
203
|
+
raise e
|
@@ -0,0 +1,263 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8; -*-
|
3
|
+
|
4
|
+
# Copyright (c) 2021, 2022 Oracle and/or its affiliates.
|
5
|
+
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
|
6
|
+
|
7
|
+
from typing import Any, Dict, Generator, List, Tuple, Union
|
8
|
+
|
9
|
+
from ads.config import JOB_RUN_COMPARTMENT_OCID, NB_SESSION_COMPARTMENT_OCID
|
10
|
+
from ads.data_labeling.interface.loader import Loader
|
11
|
+
from ads.data_labeling.interface.parser import Parser
|
12
|
+
from ads.data_labeling.interface.reader import Reader
|
13
|
+
from ads.data_labeling.loader.file_loader import FileLoaderFactory
|
14
|
+
from ads.data_labeling.parser.dls_record_parser import DLSRecordParserFactory
|
15
|
+
from ads.data_labeling.parser.export_record_parser import RecordParserFactory
|
16
|
+
from ads.data_labeling.reader.dls_record_reader import DLSRecordReader
|
17
|
+
from ads.data_labeling.reader.export_record_reader import ExportRecordReader
|
18
|
+
|
19
|
+
|
20
|
+
class RecordReader:
|
21
|
+
"""Record Reader Class consists of parser, reader and loader. Reader reads the
|
22
|
+
the content from the record file. Parser parses the label for each record. And
|
23
|
+
Loader loads the content of the file path in that record.
|
24
|
+
|
25
|
+
Examples
|
26
|
+
--------
|
27
|
+
>>> import os
|
28
|
+
>>> import oci
|
29
|
+
>>> from ads.data_labeling import RecordReader
|
30
|
+
>>> from ads.common import auth as authutil
|
31
|
+
>>> file_path = "/path/to/your_record.jsonl"
|
32
|
+
>>> dataset_type = "IMAGE"
|
33
|
+
>>> annotation_type = "BOUNDING_BOX"
|
34
|
+
>>> record_reader = RecordReader.from_export_file(file_path, dataset_type, annotation_type, "image_file_path", authutil.api_keys())
|
35
|
+
>>> next(record_reader.read())
|
36
|
+
"""
|
37
|
+
|
38
|
+
def __init__(
|
39
|
+
self,
|
40
|
+
reader: Reader,
|
41
|
+
parser: Parser,
|
42
|
+
loader: Loader = None,
|
43
|
+
include_unlabeled: bool = False,
|
44
|
+
encoding: str = "utf-8",
|
45
|
+
materialize: bool = False,
|
46
|
+
) -> "RecordReader":
|
47
|
+
"""Initiates a RecordReader instance.
|
48
|
+
|
49
|
+
Parameters
|
50
|
+
----------
|
51
|
+
reader: Reader
|
52
|
+
Reader instance to read content from the record file.
|
53
|
+
parser: Parser
|
54
|
+
Parser instance to parse the labels from record file.
|
55
|
+
loader: Loader. Defaults to None.
|
56
|
+
Loader instance to load the content from the file path in the record.
|
57
|
+
materialize: bool, optional. Defaults to False.
|
58
|
+
Whether to materialize the content using loader.
|
59
|
+
include_unlabeled: (bool, optional). Default to False.
|
60
|
+
Whether to load the unlabeled records or not.
|
61
|
+
encoding: str, optional
|
62
|
+
Encoding for text files. Used only to extract the content of the text dataset contents.
|
63
|
+
|
64
|
+
Raises
|
65
|
+
------
|
66
|
+
ValueError
|
67
|
+
If the record reader and record parser must be specified.
|
68
|
+
If the loader is not specified when materialize if True.
|
69
|
+
"""
|
70
|
+
if not reader:
|
71
|
+
raise ValueError("The record reader must be specified.")
|
72
|
+
if not parser:
|
73
|
+
raise ValueError("The record parser must be specified.")
|
74
|
+
if materialize and not loader:
|
75
|
+
raise ValueError("The content loader must be specified.")
|
76
|
+
|
77
|
+
self.reader = reader
|
78
|
+
self.parser = parser
|
79
|
+
self.loader = loader
|
80
|
+
self.materialize = materialize
|
81
|
+
self.include_unlabeled = include_unlabeled
|
82
|
+
self.encoding = encoding
|
83
|
+
|
84
|
+
@classmethod
|
85
|
+
def from_export_file(
|
86
|
+
cls,
|
87
|
+
path: str,
|
88
|
+
dataset_type: str,
|
89
|
+
annotation_type: str,
|
90
|
+
dataset_source_path: str,
|
91
|
+
auth: Dict = None,
|
92
|
+
include_unlabeled: bool = False,
|
93
|
+
encoding: str = "utf-8",
|
94
|
+
materialize: bool = False,
|
95
|
+
format: str = None,
|
96
|
+
categories: List[str] = None,
|
97
|
+
includes_metadata=False,
|
98
|
+
) -> "RecordReader":
|
99
|
+
"""Initiates a RecordReader instance.
|
100
|
+
|
101
|
+
Parameters
|
102
|
+
----------
|
103
|
+
path: str
|
104
|
+
Record file path.
|
105
|
+
dataset_type: str
|
106
|
+
Dataset type. Currently supports TEXT, IMAGE and DOCUMENT.
|
107
|
+
annotation_type: str
|
108
|
+
Annotation Type. Currently TEXT supports SINGLE_LABEL, MULTI_LABEL,
|
109
|
+
ENTITY_EXTRACTION. IMAGE supports SINGLE_LABEL, MULTI_LABEL and BOUNDING_BOX.
|
110
|
+
DOCUMENT supports SINGLE_LABEL and MULTI_LABEL.
|
111
|
+
dataset_source_path: str
|
112
|
+
Dataset source path.
|
113
|
+
auth: (dict, optional). Default None
|
114
|
+
The default authetication is set using `ads.set_auth` API. If you need to override the
|
115
|
+
default, use the `ads.common.auth.api_keys` or `ads.common.auth.resource_principal` to create appropriate
|
116
|
+
authentication signer and kwargs required to instantiate IdentityClient object.
|
117
|
+
include_unlabeled: (bool, optional). Default to False.
|
118
|
+
Whether to load the unlabeled records or not.
|
119
|
+
encoding : (str, optional). Defaults to "utf-8".
|
120
|
+
Encoding for text files. Used only to extract the content of the text dataset contents.
|
121
|
+
materialize: (bool, optional). Defaults to False.
|
122
|
+
Whether to materialize the content by loader.
|
123
|
+
format: (str, optional). Defaults to None.
|
124
|
+
Output format of annotations. Can be None, "spacy" for dataset
|
125
|
+
Entity Extraction type or "yolo" for Object Detection type.
|
126
|
+
When None, it outputs List[NERItem] or List[BoundingBoxItem].
|
127
|
+
When "spacy", it outputs List[Tuple].
|
128
|
+
When "yolo", it outputs List[List[Tuple]].
|
129
|
+
categories: (List[str], optional). Defaults to None.
|
130
|
+
The list of object categories in proper order for model training.
|
131
|
+
Example: ['cat','dog','horse']
|
132
|
+
includes_metadata: (bool, optional). Defaults to False.
|
133
|
+
Determines whether the export file includes metadata or not.
|
134
|
+
|
135
|
+
Returns
|
136
|
+
-------
|
137
|
+
RecordReader
|
138
|
+
A RecordReader instance.
|
139
|
+
"""
|
140
|
+
reader = ExportRecordReader(
|
141
|
+
path=path, auth=auth, encoding="utf-8", includes_metadata=includes_metadata
|
142
|
+
)
|
143
|
+
parser = RecordParserFactory.parser(
|
144
|
+
annotation_type=annotation_type,
|
145
|
+
dataset_source_path=dataset_source_path,
|
146
|
+
format=format,
|
147
|
+
categories=categories,
|
148
|
+
)
|
149
|
+
loader = FileLoaderFactory.loader(
|
150
|
+
dataset_type=dataset_type,
|
151
|
+
auth=auth,
|
152
|
+
)
|
153
|
+
return cls(
|
154
|
+
reader=reader,
|
155
|
+
parser=parser,
|
156
|
+
loader=loader,
|
157
|
+
materialize=materialize,
|
158
|
+
include_unlabeled=include_unlabeled,
|
159
|
+
encoding=encoding,
|
160
|
+
)
|
161
|
+
|
162
|
+
@classmethod
|
163
|
+
def from_DLS(
|
164
|
+
cls,
|
165
|
+
dataset_id: str,
|
166
|
+
dataset_type: str,
|
167
|
+
annotation_type: str,
|
168
|
+
dataset_source_path: str,
|
169
|
+
compartment_id: str = None,
|
170
|
+
auth: Dict = None,
|
171
|
+
include_unlabeled: bool = False,
|
172
|
+
encoding: str = "utf-8",
|
173
|
+
materialize: bool = False,
|
174
|
+
format: str = None,
|
175
|
+
categories: List[str] = None,
|
176
|
+
) -> "RecordReader":
|
177
|
+
"""Constructs Record Reader instance.
|
178
|
+
|
179
|
+
Parameters
|
180
|
+
----------
|
181
|
+
dataset_id: str
|
182
|
+
The dataset OCID.
|
183
|
+
dataset_type: str
|
184
|
+
Dataset type. Currently supports TEXT, IMAGE and DOCUMENT.
|
185
|
+
annotation_type: str
|
186
|
+
Annotation Type. Currently TEXT supports SINGLE_LABEL, MULTI_LABEL,
|
187
|
+
ENTITY_EXTRACTION. IMAGE supports SINGLE_LABEL, MULTI_LABEL and BOUNDING_BOX.
|
188
|
+
DOCUMENT supports SINGLE_LABEL and MULTI_LABEL.
|
189
|
+
dataset_source_path: str
|
190
|
+
Dataset source path.
|
191
|
+
compartment_id: (str, optional). Defaults to None.
|
192
|
+
The compartment OCID of the dataset.
|
193
|
+
auth: (dict, optional). Defaults to None.
|
194
|
+
The default authetication is set using `ads.set_auth` API. If you need to override the
|
195
|
+
default, use the `ads.common.auth.api_keys` or `ads.common.auth.resource_principal` to create appropriate
|
196
|
+
authentication signer and kwargs required to instantiate IdentityClient object.
|
197
|
+
encoding: (str, optional). Defaults to 'utf-8'.
|
198
|
+
Encoding for files.
|
199
|
+
materialize: (bool, optional). Defaults to False.
|
200
|
+
Whether the content of the dataset file should be loaded or it should return the file path to the content.
|
201
|
+
By default the content will not be loaded.
|
202
|
+
format: (str, optional). Defaults to None.
|
203
|
+
Output format of annotations. Can be None, "spacy" for dataset
|
204
|
+
Entity Extraction type or "yolo" for Object Detection type.
|
205
|
+
When None, it outputs List[NERItem] or List[BoundingBoxItem].
|
206
|
+
When "spacy", it outputs List[Tuple].
|
207
|
+
When "yolo", it outputs List[List[Tuple]].
|
208
|
+
categories: (List[str], optional). Defaults to None.
|
209
|
+
The list of object categories in proper order for model training.
|
210
|
+
Example: ['cat','dog','horse']
|
211
|
+
|
212
|
+
Returns
|
213
|
+
-------
|
214
|
+
RecordReader
|
215
|
+
The RecordReader instance.
|
216
|
+
"""
|
217
|
+
|
218
|
+
if compartment_id is None:
|
219
|
+
compartment_id = NB_SESSION_COMPARTMENT_OCID or JOB_RUN_COMPARTMENT_OCID
|
220
|
+
|
221
|
+
if not compartment_id:
|
222
|
+
raise ValueError("The `compartment_id` must be provided.")
|
223
|
+
|
224
|
+
reader = DLSRecordReader(
|
225
|
+
compartment_id=compartment_id, dataset_id=dataset_id, auth=auth
|
226
|
+
)
|
227
|
+
parser = DLSRecordParserFactory.parser(
|
228
|
+
annotation_type=annotation_type,
|
229
|
+
dataset_source_path=dataset_source_path,
|
230
|
+
format=format,
|
231
|
+
categories=categories,
|
232
|
+
)
|
233
|
+
loader = FileLoaderFactory.loader(
|
234
|
+
dataset_type=dataset_type,
|
235
|
+
auth=auth,
|
236
|
+
)
|
237
|
+
return cls(
|
238
|
+
reader=reader,
|
239
|
+
parser=parser,
|
240
|
+
loader=loader,
|
241
|
+
materialize=materialize,
|
242
|
+
include_unlabeled=include_unlabeled,
|
243
|
+
encoding=encoding,
|
244
|
+
)
|
245
|
+
|
246
|
+
def read(self) -> Generator[Tuple[str, Union[List, str]], Any, Any]:
|
247
|
+
"""Reads the record.
|
248
|
+
|
249
|
+
Yields
|
250
|
+
------
|
251
|
+
Generator[Tuple[str, Union[List, str]], Any, Any]
|
252
|
+
File path, content and labels in a tuple.
|
253
|
+
"""
|
254
|
+
for item in self.reader.read():
|
255
|
+
if not item:
|
256
|
+
return None
|
257
|
+
record = self.parser.parse(item)
|
258
|
+
if record.annotation or self.include_unlabeled:
|
259
|
+
if self.materialize:
|
260
|
+
record.content = self.loader.load(
|
261
|
+
record.path, **{"encoding": self.encoding}
|
262
|
+
)
|
263
|
+
yield record.to_tuple()
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
# -*- coding: utf-8; -*-
|
3
|
+
|
4
|
+
# Copyright (c) 2021, 2022 Oracle and/or its affiliates.
|
5
|
+
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
|
6
|
+
|
7
|
+
from dataclasses import asdict, dataclass
|
8
|
+
from typing import Any, Tuple, Union, Dict, List
|
9
|
+
|
10
|
+
from ads.data_labeling.boundingbox import BoundingBoxItem
|
11
|
+
from ads.data_labeling.ner import NERItem
|
12
|
+
|
13
|
+
|
14
|
+
@dataclass
|
15
|
+
class Record:
|
16
|
+
"""Class representing Record.
|
17
|
+
|
18
|
+
Attributes
|
19
|
+
----------
|
20
|
+
path: str
|
21
|
+
File path.
|
22
|
+
content: Any
|
23
|
+
Content of the record.
|
24
|
+
annotation: Union[Tuple, str, List[BoundingBoxItem], List[NERItem]]
|
25
|
+
Annotation/label of the record.
|
26
|
+
"""
|
27
|
+
|
28
|
+
path: str = ""
|
29
|
+
content: Any = None
|
30
|
+
annotation: Union[Tuple, str, List[BoundingBoxItem], List[NERItem]] = None
|
31
|
+
|
32
|
+
def to_dict(self) -> Dict:
|
33
|
+
"""Convert the Record instance to a dictionary.
|
34
|
+
|
35
|
+
Returns
|
36
|
+
-------
|
37
|
+
Dict
|
38
|
+
Dictionary representation of the Record instance.
|
39
|
+
"""
|
40
|
+
return asdict(self)
|
41
|
+
|
42
|
+
def to_tuple(
|
43
|
+
self,
|
44
|
+
) -> Tuple[str, Any, Union[Tuple, str, List[BoundingBoxItem], List[NERItem]]]:
|
45
|
+
"""Convert the Record instance to a tuple.
|
46
|
+
|
47
|
+
Returns
|
48
|
+
-------
|
49
|
+
Tuple
|
50
|
+
Tuple representation of the Record instance.
|
51
|
+
"""
|
52
|
+
return (self.path, self.content, self.annotation)
|