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/aqua/client/client.py
DELETED
@@ -1,836 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
# Copyright (c) 2025 Oracle and/or its affiliates.
|
3
|
-
# Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
|
4
|
-
|
5
|
-
import asyncio
|
6
|
-
import functools
|
7
|
-
import json
|
8
|
-
import logging
|
9
|
-
import time
|
10
|
-
from types import TracebackType
|
11
|
-
from typing import (
|
12
|
-
Any,
|
13
|
-
AnyStr,
|
14
|
-
AsyncIterator,
|
15
|
-
Callable,
|
16
|
-
Dict,
|
17
|
-
Iterator,
|
18
|
-
List,
|
19
|
-
Mapping,
|
20
|
-
Optional,
|
21
|
-
Sequence,
|
22
|
-
Tuple,
|
23
|
-
Type,
|
24
|
-
TypeVar,
|
25
|
-
Union,
|
26
|
-
)
|
27
|
-
|
28
|
-
import httpx
|
29
|
-
import oci
|
30
|
-
import requests
|
31
|
-
from tenacity import (
|
32
|
-
before_sleep_log,
|
33
|
-
retry,
|
34
|
-
retry_if_exception,
|
35
|
-
stop_after_attempt,
|
36
|
-
stop_after_delay,
|
37
|
-
wait_exponential,
|
38
|
-
wait_random_exponential,
|
39
|
-
)
|
40
|
-
|
41
|
-
from ads.common import auth as authutil
|
42
|
-
|
43
|
-
DEFAULT_RETRIES = 3
|
44
|
-
DEFAULT_BACKOFF_FACTOR = 3
|
45
|
-
TIMEOUT = 600 # Timeout in seconds
|
46
|
-
STATUS_FORCE_LIST = [429, 500, 502, 503, 504]
|
47
|
-
DEFAULT_ENCODING = "utf-8"
|
48
|
-
|
49
|
-
_T = TypeVar("_T", bound="BaseClient")
|
50
|
-
|
51
|
-
logger = logging.getLogger(__name__)
|
52
|
-
|
53
|
-
|
54
|
-
class HttpxOCIAuth(httpx.Auth):
|
55
|
-
"""
|
56
|
-
Custom HTTPX authentication class that uses the OCI Signer for request signing.
|
57
|
-
|
58
|
-
Attributes:
|
59
|
-
signer (oci.signer.Signer): The OCI signer used to sign requests.
|
60
|
-
"""
|
61
|
-
|
62
|
-
def __init__(self, signer: Optional[oci.signer.Signer] = None):
|
63
|
-
"""
|
64
|
-
Initialize the HttpxOCIAuth instance.
|
65
|
-
|
66
|
-
Args:
|
67
|
-
signer (oci.signer.Signer): The OCI signer to use for signing requests.
|
68
|
-
"""
|
69
|
-
|
70
|
-
self.signer = signer or authutil.default_signer().get("signer")
|
71
|
-
|
72
|
-
def auth_flow(self, request: httpx.Request) -> Iterator[httpx.Request]:
|
73
|
-
"""
|
74
|
-
The authentication flow that signs the HTTPX request using the OCI signer.
|
75
|
-
|
76
|
-
Args:
|
77
|
-
request (httpx.Request): The outgoing HTTPX request to be signed.
|
78
|
-
|
79
|
-
Yields:
|
80
|
-
httpx.Request: The signed HTTPX request.
|
81
|
-
"""
|
82
|
-
# Create a requests.Request object from the HTTPX request
|
83
|
-
req = requests.Request(
|
84
|
-
method=request.method,
|
85
|
-
url=str(request.url),
|
86
|
-
headers=dict(request.headers),
|
87
|
-
data=request.content,
|
88
|
-
)
|
89
|
-
prepared_request = req.prepare()
|
90
|
-
|
91
|
-
# Sign the request using the OCI Signer
|
92
|
-
self.signer.do_request_sign(prepared_request)
|
93
|
-
|
94
|
-
# Update the original HTTPX request with the signed headers
|
95
|
-
request.headers.update(prepared_request.headers)
|
96
|
-
|
97
|
-
# Proceed with the request
|
98
|
-
yield request
|
99
|
-
|
100
|
-
|
101
|
-
class ExtendedRequestError(Exception):
|
102
|
-
"""
|
103
|
-
Custom exception for handling request errors with additional context.
|
104
|
-
|
105
|
-
Attributes:
|
106
|
-
original_exception (Exception): The original exception that caused the error.
|
107
|
-
response_text (str): The text of the response received from the request, if available.
|
108
|
-
"""
|
109
|
-
|
110
|
-
def __init__(self, message: str, original_exception: Exception, response_text: str):
|
111
|
-
"""
|
112
|
-
Initialize the ExtendedRequestError.
|
113
|
-
|
114
|
-
Args:
|
115
|
-
message (str): The error message associated with the exception.
|
116
|
-
original_exception (Exception): The original exception that caused the error.
|
117
|
-
response_text (str): The text of the response received from the request, if available.
|
118
|
-
"""
|
119
|
-
super().__init__(message)
|
120
|
-
self.original_exception = original_exception
|
121
|
-
self.response_text = response_text
|
122
|
-
|
123
|
-
|
124
|
-
def _should_retry_exception(e: ExtendedRequestError) -> bool:
|
125
|
-
"""
|
126
|
-
Determine whether the exception should trigger a retry.
|
127
|
-
|
128
|
-
Args:
|
129
|
-
e (ExtendedRequestError): The exception raised.
|
130
|
-
|
131
|
-
Returns:
|
132
|
-
bool: True if the exception should trigger a retry, False otherwise.
|
133
|
-
"""
|
134
|
-
original_exception = e.original_exception if hasattr(e, "original_exception") else e
|
135
|
-
if isinstance(original_exception, httpx.HTTPStatusError):
|
136
|
-
return original_exception.response.status_code in STATUS_FORCE_LIST
|
137
|
-
elif isinstance(original_exception, httpx.RequestError):
|
138
|
-
return True
|
139
|
-
return False
|
140
|
-
|
141
|
-
|
142
|
-
def _create_retry_decorator(
|
143
|
-
max_retries: int,
|
144
|
-
backoff_factor: float,
|
145
|
-
random_exponential: bool = False,
|
146
|
-
stop_after_delay_seconds: Optional[float] = None,
|
147
|
-
min_seconds: float = 0,
|
148
|
-
max_seconds: float = 60,
|
149
|
-
) -> Callable[[Any], Any]:
|
150
|
-
"""
|
151
|
-
Create a tenacity retry decorator with the specified configuration.
|
152
|
-
|
153
|
-
Args:
|
154
|
-
max_retries (int): The maximum number of retry attempts.
|
155
|
-
backoff_factor (float): The backoff factor for calculating retry delays.
|
156
|
-
random_exponential (bool): Whether to use random exponential backoff.
|
157
|
-
stop_after_delay_seconds (Optional[float]): Maximum total time to retry.
|
158
|
-
min_seconds (float): Minimum wait time between retries.
|
159
|
-
max_seconds (float): Maximum wait time between retries.
|
160
|
-
|
161
|
-
Returns:
|
162
|
-
Callable[[Any], Any]: A tenacity retry decorator configured with the specified strategy.
|
163
|
-
"""
|
164
|
-
wait_strategy = (
|
165
|
-
wait_random_exponential(min=min_seconds, max=max_seconds)
|
166
|
-
if random_exponential
|
167
|
-
else wait_exponential(
|
168
|
-
multiplier=backoff_factor, min=min_seconds, max=max_seconds
|
169
|
-
)
|
170
|
-
)
|
171
|
-
|
172
|
-
stop_strategy = stop_after_attempt(max_retries)
|
173
|
-
if stop_after_delay_seconds is not None:
|
174
|
-
stop_strategy = stop_strategy | stop_after_delay(stop_after_delay_seconds)
|
175
|
-
|
176
|
-
retry_strategy = retry_if_exception(_should_retry_exception)
|
177
|
-
return retry(
|
178
|
-
wait=wait_strategy,
|
179
|
-
stop=stop_strategy,
|
180
|
-
retry=retry_strategy,
|
181
|
-
reraise=True,
|
182
|
-
before_sleep=before_sleep_log(logger, logging.WARNING),
|
183
|
-
)
|
184
|
-
|
185
|
-
|
186
|
-
def _retry_decorator(f: Callable) -> Callable:
|
187
|
-
"""
|
188
|
-
Decorator to apply retry logic to a function using tenacity.
|
189
|
-
|
190
|
-
Args:
|
191
|
-
f (Callable): The function to be decorated.
|
192
|
-
|
193
|
-
Returns:
|
194
|
-
Callable: The decorated function with retry logic applied.
|
195
|
-
"""
|
196
|
-
|
197
|
-
@functools.wraps(f)
|
198
|
-
def wrapper(self, *args: Any, **kwargs: Any):
|
199
|
-
retries = getattr(self, "retries", DEFAULT_RETRIES)
|
200
|
-
if retries <= 0:
|
201
|
-
return f(self, *args, **kwargs)
|
202
|
-
backoff_factor = getattr(self, "backoff_factor", DEFAULT_BACKOFF_FACTOR)
|
203
|
-
retry_func = _create_retry_decorator(
|
204
|
-
max_retries=retries,
|
205
|
-
backoff_factor=backoff_factor,
|
206
|
-
random_exponential=False,
|
207
|
-
stop_after_delay_seconds=getattr(self, "timeout", TIMEOUT),
|
208
|
-
min_seconds=0,
|
209
|
-
max_seconds=60,
|
210
|
-
)
|
211
|
-
|
212
|
-
return retry_func(f)(self, *args, **kwargs)
|
213
|
-
|
214
|
-
return wrapper
|
215
|
-
|
216
|
-
|
217
|
-
class BaseClient:
|
218
|
-
"""
|
219
|
-
Base class for invoking models via HTTP requests with retry logic.
|
220
|
-
|
221
|
-
Attributes:
|
222
|
-
endpoint (str): The URL endpoint to send the request.
|
223
|
-
auth (Any): The authentication signer for the requests.
|
224
|
-
retries (int): The number of retry attempts for the request.
|
225
|
-
backoff_factor (float): The factor to determine the delay between retries.
|
226
|
-
timeout (Union[float, Tuple[float, float]]): The timeout setting for the HTTP request.
|
227
|
-
kwargs (Dict): Additional keyword arguments.
|
228
|
-
"""
|
229
|
-
|
230
|
-
def __init__(
|
231
|
-
self,
|
232
|
-
endpoint: str,
|
233
|
-
auth: Optional[Any] = None,
|
234
|
-
retries: Optional[int] = DEFAULT_RETRIES,
|
235
|
-
backoff_factor: Optional[float] = DEFAULT_BACKOFF_FACTOR,
|
236
|
-
timeout: Optional[Union[float, Tuple[float, float]]] = None,
|
237
|
-
**kwargs: Any,
|
238
|
-
) -> None:
|
239
|
-
"""
|
240
|
-
Initialize the BaseClient.
|
241
|
-
|
242
|
-
Args:
|
243
|
-
endpoint (str): The URL endpoint to send the request.
|
244
|
-
auth (Optional[Any]): The authentication signer for the requests.
|
245
|
-
retries (Optional[int]): The number of retry attempts for the request.
|
246
|
-
backoff_factor (Optional[float]): The factor to determine the delay between retries.
|
247
|
-
timeout (Optional[Union[float, Tuple[float, float]]]): The timeout setting for the HTTP request.
|
248
|
-
**kwargs: Additional keyword arguments.
|
249
|
-
"""
|
250
|
-
self.endpoint = endpoint
|
251
|
-
self.retries = retries or DEFAULT_RETRIES
|
252
|
-
self.backoff_factor = backoff_factor or DEFAULT_BACKOFF_FACTOR
|
253
|
-
self.timeout = timeout or TIMEOUT
|
254
|
-
self.kwargs = kwargs
|
255
|
-
|
256
|
-
# Validate auth object
|
257
|
-
auth = auth or authutil.default_signer()
|
258
|
-
if not callable(auth.get("signer")):
|
259
|
-
raise ValueError("Auth object must have a 'signer' callable attribute.")
|
260
|
-
self.auth = HttpxOCIAuth(auth["signer"])
|
261
|
-
|
262
|
-
logger.debug(
|
263
|
-
f"Initialized {self.__class__.__name__} with endpoint={self.endpoint}, "
|
264
|
-
f"retries={self.retries}, backoff_factor={self.backoff_factor}, timeout={self.timeout}"
|
265
|
-
)
|
266
|
-
|
267
|
-
def _parse_streaming_line(
|
268
|
-
self, line: Union[bytes, str]
|
269
|
-
) -> Optional[Dict[str, Any]]:
|
270
|
-
"""
|
271
|
-
Parse a single line from the streaming response.
|
272
|
-
|
273
|
-
Args:
|
274
|
-
line (Union[bytes, str]): A line of the response in bytes or string format.
|
275
|
-
|
276
|
-
Returns:
|
277
|
-
Optional[Dict[str, Any]]: Parsed JSON object, or None if the line is to be ignored.
|
278
|
-
|
279
|
-
Raises:
|
280
|
-
Exception: Raised if the line contains an error object.
|
281
|
-
json.JSONDecodeError: Raised if the line cannot be decoded as JSON.
|
282
|
-
"""
|
283
|
-
logger.debug(f"Parsing streaming line: {line}")
|
284
|
-
|
285
|
-
if isinstance(line, bytes):
|
286
|
-
line = line.decode(DEFAULT_ENCODING)
|
287
|
-
|
288
|
-
line = line.strip()
|
289
|
-
|
290
|
-
if line.lower().startswith("data:"):
|
291
|
-
line = line[5:].lstrip()
|
292
|
-
|
293
|
-
if not line or line.startswith("[DONE]"):
|
294
|
-
logger.debug("Received end of stream signal or empty line.")
|
295
|
-
return None
|
296
|
-
|
297
|
-
try:
|
298
|
-
json_line = json.loads(line)
|
299
|
-
logger.debug(f"Parsed JSON line: {json_line}")
|
300
|
-
except json.JSONDecodeError as e:
|
301
|
-
logger.debug(f"Error decoding JSON from line: {line}")
|
302
|
-
raise json.JSONDecodeError(
|
303
|
-
f"Error decoding JSON from line: {e!s}", e.doc, e.pos
|
304
|
-
) from e
|
305
|
-
|
306
|
-
if json_line.get("object") == "error":
|
307
|
-
# Raise an error for error objects in the stream
|
308
|
-
error_message = json_line.get("message", "Unknown error")
|
309
|
-
logger.debug(f"Error in streaming response: {error_message}")
|
310
|
-
raise Exception(f"Error in streaming response: {error_message}")
|
311
|
-
|
312
|
-
return json_line
|
313
|
-
|
314
|
-
def _prepare_headers(
|
315
|
-
self,
|
316
|
-
stream: bool,
|
317
|
-
headers: Optional[Dict[str, str]] = None,
|
318
|
-
) -> Dict[str, str]:
|
319
|
-
"""
|
320
|
-
Construct and return the headers for a request.
|
321
|
-
|
322
|
-
Args:
|
323
|
-
stream (bool): Whether to use streaming for the response.
|
324
|
-
headers (Optional[Dict[str, str]]): HTTP headers to include in the request.
|
325
|
-
|
326
|
-
Returns:
|
327
|
-
Dict[str, str]: The prepared headers.
|
328
|
-
"""
|
329
|
-
default_headers = {
|
330
|
-
"Content-Type": "application/json",
|
331
|
-
"Accept": "text/event-stream" if stream else "application/json",
|
332
|
-
}
|
333
|
-
if stream:
|
334
|
-
default_headers["enable-streaming"] = "true"
|
335
|
-
if headers:
|
336
|
-
default_headers.update(headers)
|
337
|
-
|
338
|
-
logger.debug(f"Prepared headers: {default_headers}")
|
339
|
-
return default_headers
|
340
|
-
|
341
|
-
|
342
|
-
class Client(BaseClient):
|
343
|
-
"""
|
344
|
-
Synchronous HTTP client for invoking models with support for request and streaming APIs.
|
345
|
-
"""
|
346
|
-
|
347
|
-
def __init__(self, *args, **kwargs) -> None:
|
348
|
-
"""
|
349
|
-
Initialize the Client.
|
350
|
-
|
351
|
-
Args:
|
352
|
-
*args: Positional arguments forwarded to BaseClient.
|
353
|
-
**kwargs: Keyword arguments forwarded to BaseClient.
|
354
|
-
"""
|
355
|
-
super().__init__(*args, **kwargs)
|
356
|
-
self._client = httpx.Client(timeout=self.timeout, auth=self.auth)
|
357
|
-
|
358
|
-
def is_closed(self) -> bool:
|
359
|
-
return self._client.is_closed
|
360
|
-
|
361
|
-
def close(self) -> None:
|
362
|
-
"""Close the underlying HTTPX client."""
|
363
|
-
self._client.close()
|
364
|
-
|
365
|
-
def __enter__(self: _T) -> _T: # noqa: PYI019
|
366
|
-
return self
|
367
|
-
|
368
|
-
def __exit__(
|
369
|
-
self,
|
370
|
-
exc_type: Optional[Type[BaseException]] = None,
|
371
|
-
exc: Optional[BaseException] = None,
|
372
|
-
exc_tb: Optional[TracebackType] = None,
|
373
|
-
) -> None:
|
374
|
-
self.close()
|
375
|
-
|
376
|
-
def __del__(self) -> None:
|
377
|
-
try:
|
378
|
-
self.close()
|
379
|
-
except Exception:
|
380
|
-
pass
|
381
|
-
|
382
|
-
@_retry_decorator
|
383
|
-
def _request(
|
384
|
-
self, payload: Dict[str, Any], headers: Optional[Dict[str, str]] = None
|
385
|
-
) -> Dict[str, Any]:
|
386
|
-
"""
|
387
|
-
Send a POST request to the configured endpoint with retry and error handling.
|
388
|
-
|
389
|
-
Args:
|
390
|
-
payload (Dict[str, Any]): Parameters for the request payload.
|
391
|
-
headers (Optional[Dict[str, str]]): HTTP headers to include in the request.
|
392
|
-
|
393
|
-
Returns:
|
394
|
-
Dict[str, Any]: Decoded JSON response.
|
395
|
-
|
396
|
-
Raises:
|
397
|
-
ExtendedRequestError: Raised when the request fails.
|
398
|
-
"""
|
399
|
-
logger.debug(f"Starting synchronous request with payload: {payload}")
|
400
|
-
try:
|
401
|
-
response = self._client.post(
|
402
|
-
self.endpoint,
|
403
|
-
headers=self._prepare_headers(stream=False, headers=headers),
|
404
|
-
json=payload,
|
405
|
-
)
|
406
|
-
logger.debug(f"Received response with status code: {response.status_code}")
|
407
|
-
response.raise_for_status()
|
408
|
-
json_response = response.json()
|
409
|
-
logger.debug(f"Response JSON: {json_response}")
|
410
|
-
return json_response
|
411
|
-
except Exception as e:
|
412
|
-
last_exception_text = (
|
413
|
-
e.response.text if hasattr(e, "response") and e.response else str(e)
|
414
|
-
)
|
415
|
-
logger.error(
|
416
|
-
f"Request failed. Error: {e!s}. Details: {last_exception_text}"
|
417
|
-
)
|
418
|
-
raise ExtendedRequestError(
|
419
|
-
f"Request failed: {e!s}. Details: {last_exception_text}",
|
420
|
-
e,
|
421
|
-
last_exception_text,
|
422
|
-
) from e
|
423
|
-
|
424
|
-
def _stream(
|
425
|
-
self, payload: Dict[str, Any], headers: Optional[Dict[str, str]] = None
|
426
|
-
) -> Iterator[Mapping[str, Any]]:
|
427
|
-
"""
|
428
|
-
Send a POST request expecting a streaming response.
|
429
|
-
|
430
|
-
Args:
|
431
|
-
payload (Dict[str, Any]): Parameters for the request payload.
|
432
|
-
headers (Optional[Dict[str, str]]): HTTP headers to include in the request.
|
433
|
-
|
434
|
-
Yields:
|
435
|
-
Mapping[str, Any]: Decoded JSON response line-by-line.
|
436
|
-
|
437
|
-
Raises:
|
438
|
-
ExtendedRequestError: Raised when the request fails.
|
439
|
-
"""
|
440
|
-
logger.debug(f"Starting synchronous streaming request with payload: {payload}")
|
441
|
-
last_exception_text = None
|
442
|
-
|
443
|
-
for attempt in range(1, self.retries + 2): # retries + initial attempt
|
444
|
-
logger.debug(f"Attempt {attempt} for synchronous streaming request.")
|
445
|
-
try:
|
446
|
-
with self._client.stream(
|
447
|
-
"POST",
|
448
|
-
self.endpoint,
|
449
|
-
headers=self._prepare_headers(stream=True, headers=headers),
|
450
|
-
json={**payload, "stream": True},
|
451
|
-
) as response:
|
452
|
-
try:
|
453
|
-
logger.debug(
|
454
|
-
f"Received streaming response with status code: {response.status_code}"
|
455
|
-
)
|
456
|
-
response.raise_for_status()
|
457
|
-
for line in response.iter_lines():
|
458
|
-
if not line: # Skip empty lines
|
459
|
-
continue
|
460
|
-
|
461
|
-
parsed_line = self._parse_streaming_line(line)
|
462
|
-
if parsed_line:
|
463
|
-
logger.debug(f"Yielding parsed line: {parsed_line}")
|
464
|
-
yield parsed_line
|
465
|
-
return
|
466
|
-
except Exception as e:
|
467
|
-
last_exception_text = (
|
468
|
-
e.response.read().decode(
|
469
|
-
e.response.encoding or DEFAULT_ENCODING
|
470
|
-
)
|
471
|
-
if hasattr(e, "response") and e.response
|
472
|
-
else str(e)
|
473
|
-
)
|
474
|
-
raise
|
475
|
-
|
476
|
-
except Exception as e:
|
477
|
-
if attempt <= self.retries and _should_retry_exception(e):
|
478
|
-
delay = self.backoff_factor * (2 ** (attempt - 1))
|
479
|
-
logger.warning(
|
480
|
-
f"Streaming attempt {attempt} failed: {e}. Retrying in {delay} seconds..."
|
481
|
-
)
|
482
|
-
time.sleep(delay)
|
483
|
-
else:
|
484
|
-
logger.error(
|
485
|
-
f"Streaming request failed. Error: {e!s}. Details: {last_exception_text}"
|
486
|
-
)
|
487
|
-
raise ExtendedRequestError(
|
488
|
-
f"Streaming request failed: {e!s}. Details: {last_exception_text}",
|
489
|
-
e,
|
490
|
-
last_exception_text,
|
491
|
-
) from e
|
492
|
-
|
493
|
-
def generate(
|
494
|
-
self,
|
495
|
-
prompt: str,
|
496
|
-
payload: Optional[Dict[str, Any]] = None,
|
497
|
-
headers: Optional[Dict[str, str]] = None,
|
498
|
-
stream: bool = True,
|
499
|
-
) -> Union[Dict[str, Any], Iterator[Mapping[str, Any]]]:
|
500
|
-
"""
|
501
|
-
Generate text completion for the given prompt.
|
502
|
-
|
503
|
-
Args:
|
504
|
-
prompt (str): Input text prompt for the model.
|
505
|
-
payload (Optional[Dict[str, Any]]): Additional parameters for the request payload.
|
506
|
-
headers (Optional[Dict[str, str]]): HTTP headers to include in the request.
|
507
|
-
stream (bool): Whether to use streaming for the response.
|
508
|
-
|
509
|
-
Returns:
|
510
|
-
Union[Dict[str, Any], Iterator[Mapping[str, Any]]]: A full JSON response or an iterator for streaming responses.
|
511
|
-
"""
|
512
|
-
logger.debug(f"Generating text with prompt: {prompt}, stream: {stream}")
|
513
|
-
payload = {**(payload or {}), "prompt": prompt}
|
514
|
-
headers = {"route": "/v1/completions", **(headers or {})}
|
515
|
-
if stream:
|
516
|
-
return self._stream(payload=payload, headers=headers)
|
517
|
-
return self._request(payload=payload, headers=headers)
|
518
|
-
|
519
|
-
def chat(
|
520
|
-
self,
|
521
|
-
messages: List[Dict[str, Any]],
|
522
|
-
payload: Optional[Dict[str, Any]] = None,
|
523
|
-
headers: Optional[Dict[str, str]] = None,
|
524
|
-
stream: bool = True,
|
525
|
-
) -> Union[Dict[str, Any], Iterator[Mapping[str, Any]]]:
|
526
|
-
"""
|
527
|
-
Perform a chat interaction with the model.
|
528
|
-
|
529
|
-
Args:
|
530
|
-
messages (List[Dict[str, Any]]): List of message dictionaries for chat interaction.
|
531
|
-
payload (Optional[Dict[str, Any]]): Additional parameters for the request payload.
|
532
|
-
headers (Optional[Dict[str, str]]): HTTP headers to include in the request.
|
533
|
-
stream (bool): Whether to use streaming for the response.
|
534
|
-
|
535
|
-
Returns:
|
536
|
-
Union[Dict[str, Any], Iterator[Mapping[str, Any]]]: A full JSON response or an iterator for streaming responses.
|
537
|
-
"""
|
538
|
-
logger.debug(f"Starting chat with messages: {messages}, stream: {stream}")
|
539
|
-
payload = {**(payload or {}), "messages": messages}
|
540
|
-
headers = {"route": "/v1/chat/completions", **(headers or {})}
|
541
|
-
if stream:
|
542
|
-
return self._stream(payload=payload, headers=headers)
|
543
|
-
return self._request(payload=payload, headers=headers)
|
544
|
-
|
545
|
-
def embeddings(
|
546
|
-
self,
|
547
|
-
input: Union[str, Sequence[AnyStr]] = "",
|
548
|
-
payload: Optional[Dict[str, Any]] = None,
|
549
|
-
headers: Optional[Dict[str, str]] = None,
|
550
|
-
) -> Union[Dict[str, Any], Iterator[Mapping[str, Any]]]:
|
551
|
-
"""Generate embeddings by sending a request to the endpoint.
|
552
|
-
|
553
|
-
Args:
|
554
|
-
input (Union[str, Sequence[AnyStr]], optional): The input text or sequence of texts for which to generate embeddings.
|
555
|
-
Defaults to "".
|
556
|
-
payload (Optional[Dict[str, Any]], optional): Additional parameters to include in the request payload.
|
557
|
-
Defaults to None.
|
558
|
-
headers (Optional[Dict[str, str]], optional): HTTP headers to include in the request.
|
559
|
-
Defaults to None.
|
560
|
-
|
561
|
-
Returns:
|
562
|
-
Union[Dict[str, Any], Iterator[Mapping[str, Any]]]: The server's response, typically including the generated embeddings.
|
563
|
-
"""
|
564
|
-
logger.debug(f"Generating embeddings with input: {input}, payload: {payload}")
|
565
|
-
payload = {**(payload or {}), "input": input}
|
566
|
-
return self._request(payload=payload, headers=headers)
|
567
|
-
|
568
|
-
|
569
|
-
class AsyncClient(BaseClient):
|
570
|
-
"""
|
571
|
-
Asynchronous HTTP client for invoking models with support for request and streaming APIs, including retry logic.
|
572
|
-
"""
|
573
|
-
|
574
|
-
def __init__(self, *args, **kwargs) -> None:
|
575
|
-
"""
|
576
|
-
Initialize the AsyncClient.
|
577
|
-
|
578
|
-
Args:
|
579
|
-
*args: Positional arguments forwarded to BaseClient.
|
580
|
-
**kwargs: Keyword arguments forwarded to BaseClient.
|
581
|
-
"""
|
582
|
-
super().__init__(*args, **kwargs)
|
583
|
-
self._client = httpx.AsyncClient(timeout=self.timeout, auth=self.auth)
|
584
|
-
|
585
|
-
def is_closed(self) -> bool:
|
586
|
-
return self._client.is_closed
|
587
|
-
|
588
|
-
async def close(self) -> None:
|
589
|
-
"""Close the underlying HTTPX client.
|
590
|
-
|
591
|
-
The client will *not* be usable after this.
|
592
|
-
"""
|
593
|
-
await self._client.aclose()
|
594
|
-
|
595
|
-
async def __aenter__(self: _T) -> _T: # noqa: PYI019
|
596
|
-
return self
|
597
|
-
|
598
|
-
async def __aexit__(
|
599
|
-
self,
|
600
|
-
exc_type: Optional[Type[BaseException]] = None,
|
601
|
-
exc: Optional[BaseException] = None,
|
602
|
-
exc_tb: Optional[TracebackType] = None,
|
603
|
-
) -> None:
|
604
|
-
await self.close()
|
605
|
-
|
606
|
-
def __del__(self) -> None:
|
607
|
-
try:
|
608
|
-
if not self._client.is_closed:
|
609
|
-
loop = asyncio.get_event_loop()
|
610
|
-
if loop.is_running():
|
611
|
-
loop.create_task(self.close())
|
612
|
-
else:
|
613
|
-
loop.run_until_complete(self.close())
|
614
|
-
except Exception:
|
615
|
-
pass
|
616
|
-
|
617
|
-
@_retry_decorator
|
618
|
-
async def _request(
|
619
|
-
self, payload: Dict[str, Any], headers: Optional[Dict[str, str]] = None
|
620
|
-
) -> Dict[str, Any]:
|
621
|
-
"""
|
622
|
-
Send a POST request to the configured endpoint with retry and error handling.
|
623
|
-
|
624
|
-
Args:
|
625
|
-
payload (Dict[str, Any]): Parameters for the request payload.
|
626
|
-
headers (Optional[Dict[str, str]]): HTTP headers to include in the request.
|
627
|
-
|
628
|
-
Returns:
|
629
|
-
Dict[str, Any]: Decoded JSON response.
|
630
|
-
|
631
|
-
Raises:
|
632
|
-
ExtendedRequestError: Raised when the request fails.
|
633
|
-
"""
|
634
|
-
logger.debug(f"Starting asynchronous request with payload: {payload}")
|
635
|
-
try:
|
636
|
-
response = await self._client.post(
|
637
|
-
self.endpoint,
|
638
|
-
headers=self._prepare_headers(stream=False, headers=headers),
|
639
|
-
json=payload,
|
640
|
-
)
|
641
|
-
logger.debug(f"Received response with status code: {response.status_code}")
|
642
|
-
response.raise_for_status()
|
643
|
-
json_response = response.json()
|
644
|
-
logger.debug(f"Response JSON: {json_response}")
|
645
|
-
return json_response
|
646
|
-
except Exception as e:
|
647
|
-
last_exception_text = (
|
648
|
-
e.response.text if hasattr(e, "response") and e.response else str(e)
|
649
|
-
)
|
650
|
-
logger.error(
|
651
|
-
f"Request failed. Error: {e!s}. Details: {last_exception_text}"
|
652
|
-
)
|
653
|
-
raise ExtendedRequestError(
|
654
|
-
f"Request failed: {e!s}. Details: {last_exception_text}",
|
655
|
-
e,
|
656
|
-
last_exception_text,
|
657
|
-
) from e
|
658
|
-
|
659
|
-
async def _stream(
|
660
|
-
self, payload: Dict[str, Any], headers: Optional[Dict[str, str]] = None
|
661
|
-
) -> AsyncIterator[Mapping[str, Any]]:
|
662
|
-
"""
|
663
|
-
Send a POST request expecting a streaming response with retry logic.
|
664
|
-
|
665
|
-
Args:
|
666
|
-
payload (Dict[str, Any]): Parameters for the request payload.
|
667
|
-
headers (Optional[Dict[str, str]]): HTTP headers to include in the request.
|
668
|
-
|
669
|
-
Yields:
|
670
|
-
Mapping[str, Any]: Decoded JSON response line-by-line.
|
671
|
-
|
672
|
-
Raises:
|
673
|
-
ExtendedRequestError: Raised when the request fails.
|
674
|
-
"""
|
675
|
-
logger.debug(f"Starting asynchronous streaming request with payload: {payload}")
|
676
|
-
last_exception_text = None
|
677
|
-
for attempt in range(1, self.retries + 2): # retries + initial attempt
|
678
|
-
logger.debug(f"Attempt {attempt} for asynchronous streaming request.")
|
679
|
-
try:
|
680
|
-
async with self._client.stream(
|
681
|
-
"POST",
|
682
|
-
self.endpoint,
|
683
|
-
headers=self._prepare_headers(stream=True, headers=headers),
|
684
|
-
json={**payload, "stream": True},
|
685
|
-
) as response:
|
686
|
-
try:
|
687
|
-
logger.debug(
|
688
|
-
f"Received streaming response with status code: {response.status_code}"
|
689
|
-
)
|
690
|
-
response.raise_for_status()
|
691
|
-
async for line in response.aiter_lines():
|
692
|
-
if not line: # Skip empty lines
|
693
|
-
continue
|
694
|
-
parsed_line = self._parse_streaming_line(line)
|
695
|
-
if parsed_line:
|
696
|
-
logger.debug(f"Yielding parsed line: {parsed_line}")
|
697
|
-
yield parsed_line
|
698
|
-
return
|
699
|
-
except Exception as e:
|
700
|
-
if hasattr(e, "response") and e.response:
|
701
|
-
content = await e.response.aread()
|
702
|
-
last_exception_text = content.decode(
|
703
|
-
e.response.encoding or DEFAULT_ENCODING
|
704
|
-
)
|
705
|
-
raise
|
706
|
-
except Exception as e:
|
707
|
-
if attempt <= self.retries and _should_retry_exception(e):
|
708
|
-
delay = self.backoff_factor * (2 ** (attempt - 1))
|
709
|
-
logger.warning(
|
710
|
-
f"Streaming attempt {attempt} failed: {e}. Retrying in {delay} seconds..."
|
711
|
-
)
|
712
|
-
await asyncio.sleep(delay)
|
713
|
-
else:
|
714
|
-
logger.error(
|
715
|
-
f"Streaming request failed. Error: {e!s}. Details: {last_exception_text}"
|
716
|
-
)
|
717
|
-
raise ExtendedRequestError(
|
718
|
-
f"Streaming request failed: {e!s}. Details: {last_exception_text}",
|
719
|
-
e,
|
720
|
-
last_exception_text,
|
721
|
-
) from e
|
722
|
-
|
723
|
-
async def generate(
|
724
|
-
self,
|
725
|
-
prompt: str,
|
726
|
-
payload: Optional[Dict[str, Any]] = None,
|
727
|
-
headers: Optional[Dict[str, str]] = None,
|
728
|
-
stream: bool = False,
|
729
|
-
) -> Union[Dict[str, Any], AsyncIterator[Mapping[str, Any]]]:
|
730
|
-
"""
|
731
|
-
Generate text completion for the given prompt.
|
732
|
-
|
733
|
-
Args:
|
734
|
-
prompt (str): Input text prompt for the model.
|
735
|
-
payload (Optional[Dict[str, Any]]): Additional parameters for the request payload.
|
736
|
-
headers (Optional[Dict[str, str]]): HTTP headers to include in the request.
|
737
|
-
stream (bool): Whether to use streaming for the response.
|
738
|
-
|
739
|
-
Returns:
|
740
|
-
Union[Dict[str, Any], AsyncIterator[Mapping[str, Any]]]: A full JSON response or an async iterator for streaming responses.
|
741
|
-
"""
|
742
|
-
logger.debug(f"Generating text with prompt: {prompt}, stream: {stream}")
|
743
|
-
payload = {**(payload or {}), "prompt": prompt}
|
744
|
-
headers = {"route": "/v1/completions", **(headers or {})}
|
745
|
-
if stream:
|
746
|
-
return self._stream(payload=payload, headers=headers)
|
747
|
-
return await self._request(payload=payload, headers=headers)
|
748
|
-
|
749
|
-
async def chat(
|
750
|
-
self,
|
751
|
-
messages: List[Dict[str, Any]],
|
752
|
-
payload: Optional[Dict[str, Any]] = None,
|
753
|
-
headers: Optional[Dict[str, str]] = None,
|
754
|
-
stream: bool = False,
|
755
|
-
) -> Union[Dict[str, Any], AsyncIterator[Mapping[str, Any]]]:
|
756
|
-
"""
|
757
|
-
Perform a chat interaction with the model.
|
758
|
-
|
759
|
-
Args:
|
760
|
-
messages (List[Dict[str, Any]]): List of message dictionaries for chat interaction.
|
761
|
-
payload (Optional[Dict[str, Any]]): Additional parameters for the request payload.
|
762
|
-
headers (Optional[Dict[str, str]]): HTTP headers to include in the request.
|
763
|
-
stream (bool): Whether to use streaming for the response.
|
764
|
-
|
765
|
-
Returns:
|
766
|
-
Union[Dict[str, Any], AsyncIterator[Mapping[str, Any]]]: A full JSON response or an async iterator for streaming responses.
|
767
|
-
"""
|
768
|
-
logger.debug(f"Starting chat with messages: {messages}, stream: {stream}")
|
769
|
-
payload = {**(payload or {}), "messages": messages}
|
770
|
-
headers = {"route": "/v1/chat/completions", **(headers or {})}
|
771
|
-
if stream:
|
772
|
-
return self._stream(payload=payload, headers=headers)
|
773
|
-
return await self._request(payload=payload, headers=headers)
|
774
|
-
|
775
|
-
async def embeddings(
|
776
|
-
self,
|
777
|
-
input: Union[str, Sequence[AnyStr]] = "",
|
778
|
-
payload: Optional[Dict[str, Any]] = None,
|
779
|
-
headers: Optional[Dict[str, str]] = None,
|
780
|
-
) -> Union[Dict[str, Any], Iterator[Mapping[str, Any]]]:
|
781
|
-
"""Generate embeddings asynchronously by sending a request to the endpoint.
|
782
|
-
|
783
|
-
Args:
|
784
|
-
input (Union[str, Sequence[AnyStr]], optional): The input text or sequence of texts for which to generate embeddings.
|
785
|
-
Defaults to "".
|
786
|
-
payload (Optional[Dict[str, Any]], optional): Additional parameters to include in the request payload.
|
787
|
-
Defaults to None.
|
788
|
-
headers (Optional[Dict[str, str]], optional): HTTP headers to include in the request.
|
789
|
-
Defaults to None.
|
790
|
-
|
791
|
-
Returns:
|
792
|
-
Union[Dict[str, Any], Iterator[Mapping[str, Any]]]: The server's response, typically including the generated embeddings.
|
793
|
-
"""
|
794
|
-
logger.debug(f"Generating embeddings with input: {input}, payload: {payload}")
|
795
|
-
payload = {**(payload or {}), "input": input}
|
796
|
-
return await self._request(payload=payload, headers=headers)
|
797
|
-
|
798
|
-
|
799
|
-
def get_httpx_client(**kwargs: Any) -> httpx.Client:
|
800
|
-
"""
|
801
|
-
Creates and returns a synchronous httpx Client configured with OCI authentication signer based
|
802
|
-
the authentication type setup using ads.set_auth method or env variable OCI_IAM_TYPE.
|
803
|
-
More information - https://accelerated-data-science.readthedocs.io/en/stable/user_guide/cli/authentication.html
|
804
|
-
|
805
|
-
Parameters
|
806
|
-
----------
|
807
|
-
**kwargs : Any
|
808
|
-
Keyword arguments supported by httpx.Client
|
809
|
-
|
810
|
-
Returns
|
811
|
-
-------
|
812
|
-
Client
|
813
|
-
A configured synchronous httpx Client instance.
|
814
|
-
"""
|
815
|
-
kwargs["auth"] = kwargs.get("auth") or HttpxOCIAuth()
|
816
|
-
return httpx.Client(**kwargs)
|
817
|
-
|
818
|
-
|
819
|
-
def get_async_httpx_client(**kwargs: Any) -> httpx.AsyncClient:
|
820
|
-
"""
|
821
|
-
Creates and returns a synchronous httpx Client configured with OCI authentication signer based
|
822
|
-
the authentication type setup using ads.set_auth method or env variable OCI_IAM_TYPE.
|
823
|
-
More information - https://accelerated-data-science.readthedocs.io/en/stable/user_guide/cli/authentication.html
|
824
|
-
|
825
|
-
Parameters
|
826
|
-
----------
|
827
|
-
**kwargs : Any
|
828
|
-
Keyword arguments supported by httpx.Client
|
829
|
-
|
830
|
-
Returns
|
831
|
-
-------
|
832
|
-
AsyncClient
|
833
|
-
A configured asynchronous httpx AsyncClient instance.
|
834
|
-
"""
|
835
|
-
kwargs["auth"] = kwargs.get("auth") or HttpxOCIAuth()
|
836
|
-
return httpx.AsyncClient(**kwargs)
|