rapidata 2.37.0__py3-none-any.whl → 3.0.0a8__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.
Potentially problematic release.
This version of rapidata might be problematic. Click here for more details.
- rapidata/__init__.py +23 -15
- rapidata/api_client/__init__.py +84 -427
- rapidata/api_client/api/__init__.py +5 -2
- rapidata/api_client/api/asset_api.py +853 -0
- rapidata/api_client/api/audience_api.py +2505 -0
- rapidata/api_client/api/benchmark_api.py +618 -253
- rapidata/api_client/api/campaign_api.py +322 -32
- rapidata/api_client/api/client_api.py +38 -33
- rapidata/api_client/api/compare_workflow_api.py +11 -10
- rapidata/api_client/api/customer_rapid_api.py +119 -125
- rapidata/api_client/api/datapoint_api.py +8 -6
- rapidata/api_client/api/dataset_api.py +240 -1516
- rapidata/api_client/api/evaluation_workflow_api.py +29 -82
- rapidata/api_client/api/feedback_api.py +11 -11
- rapidata/api_client/api/grouped_ranking_workflow_api.py +319 -0
- rapidata/api_client/api/identity_api.py +26 -300
- rapidata/api_client/api/job_api.py +3902 -0
- rapidata/api_client/api/job_definition_api.py +319 -0
- rapidata/api_client/api/job_revision_api.py +335 -0
- rapidata/api_client/api/leaderboard_api.py +139 -2355
- rapidata/api_client/api/newsletter_api.py +20 -19
- rapidata/api_client/api/order_api.py +375 -91
- rapidata/api_client/api/participant_api.py +80 -118
- rapidata/api_client/api/pipeline_api.py +24 -607
- rapidata/api_client/api/prompt_api.py +11 -11
- rapidata/api_client/api/rapidata_identity_api_api.py +5 -4
- rapidata/api_client/api/sample_api.py +5 -4
- rapidata/api_client/api/simple_workflow_api.py +11 -10
- rapidata/api_client/api/survey_api.py +304 -0
- rapidata/api_client/api/user_rapid_api.py +35 -31
- rapidata/api_client/api/validation_set_api.py +337 -2043
- rapidata/api_client/api/workflow_api.py +32 -26
- rapidata/api_client/api_client.py +2 -2
- rapidata/api_client/configuration.py +16 -29
- rapidata/api_client/exceptions.py +2 -2
- rapidata/api_client/models/__init__.py +65 -400
- rapidata/api_client/models/ab_test_selection_a_inner.py +1 -1
- rapidata/api_client/models/add_rapid_to_audience_model.py +144 -0
- rapidata/api_client/models/add_user_response_result.py +10 -5
- rapidata/api_client/models/add_validation_rapid_model.py +34 -36
- rapidata/api_client/models/add_validation_rapid_model_asset.py +154 -0
- rapidata/api_client/models/add_validation_rapid_model_context_asset.py +160 -0
- rapidata/api_client/models/add_validation_rapid_model_metadata_inner.py +140 -0
- rapidata/api_client/models/add_validation_rapid_new_model.py +137 -0
- rapidata/api_client/models/add_validation_rapid_new_model_asset.py +182 -0
- rapidata/api_client/models/add_validation_rapid_new_model_truth.py +286 -0
- rapidata/api_client/models/age_user_filter_model.py +2 -2
- rapidata/api_client/models/age_user_filter_model_age_group.py +41 -0
- rapidata/api_client/models/aggregated_orders_model.py +98 -0
- rapidata/api_client/models/aggregator_type.py +4 -2
- rapidata/api_client/models/and_filter_filters_inner.py +24 -10
- rapidata/api_client/models/are_rapids_active_result.py +2 -2
- rapidata/api_client/models/asset_metadata.py +2 -8
- rapidata/api_client/models/attach_category_rapid_blueprint.py +13 -3
- rapidata/api_client/models/attach_category_rapid_blueprint_category.py +89 -0
- rapidata/api_client/models/audience_job_state.py +38 -0
- rapidata/api_client/models/audience_status.py +39 -0
- rapidata/api_client/models/benchmark_query_result.py +5 -3
- rapidata/api_client/models/boost_leaderboard_model.py +5 -5
- rapidata/api_client/models/boost_query_result.py +4 -4
- rapidata/api_client/models/boost_query_result_boost_mode.py +37 -0
- rapidata/api_client/models/boost_query_result_boost_status.py +39 -0
- rapidata/api_client/models/boosting_profile.py +91 -0
- rapidata/api_client/models/box_shape.py +4 -33
- rapidata/api_client/models/campaign_query_result.py +13 -5
- rapidata/api_client/models/campaign_status.py +2 -2
- rapidata/api_client/models/change_boost_model.py +5 -5
- rapidata/api_client/models/classify_payload.py +14 -15
- rapidata/api_client/models/classify_payload_category.py +89 -0
- rapidata/api_client/models/client_model.py +25 -35
- rapidata/api_client/models/clients_query_result.py +5 -5
- rapidata/api_client/models/clone_order_model.py +4 -4
- rapidata/api_client/models/clone_order_result.py +9 -4
- rapidata/api_client/models/compare_workflow_config.py +19 -18
- rapidata/api_client/models/compare_workflow_config_context_asset.py +174 -0
- rapidata/api_client/models/compare_workflow_config_model.py +3 -3
- rapidata/api_client/models/compare_workflow_model.py +25 -7
- rapidata/api_client/models/compare_workflow_model1.py +20 -9
- rapidata/api_client/models/compare_workflow_model_context_asset.py +160 -0
- rapidata/api_client/models/compare_workflow_model_metadata_inner.py +154 -0
- rapidata/api_client/models/compare_workflow_model_pair_maker_config.py +1 -1
- rapidata/api_client/models/comparison_operator.py +2 -2
- rapidata/api_client/models/conditional_validation_selection.py +6 -11
- rapidata/api_client/models/conditional_validation_selection_validation_chance.py +103 -0
- rapidata/api_client/models/confidence_interval.py +89 -0
- rapidata/api_client/models/create_audience_request.py +122 -0
- rapidata/api_client/models/create_audience_result.py +87 -0
- rapidata/api_client/models/create_benchmark_model.py +5 -5
- rapidata/api_client/models/create_benchmark_participant_model.py +5 -5
- rapidata/api_client/models/create_benchmark_participant_result.py +4 -4
- rapidata/api_client/models/create_benchmark_prompt_result.py +87 -0
- rapidata/api_client/models/create_benchmark_result.py +2 -2
- rapidata/api_client/models/create_bridge_token_result.py +2 -2
- rapidata/api_client/models/create_client_model.py +6 -13
- rapidata/api_client/models/create_complex_order_model.py +9 -9
- rapidata/api_client/models/create_complex_order_result.py +2 -2
- rapidata/api_client/models/create_customer_client_result.py +2 -2
- rapidata/api_client/models/create_datapoint_from_files_model.py +3 -3
- rapidata/api_client/models/create_datapoint_from_text_sources_model.py +3 -3
- rapidata/api_client/models/create_datapoint_from_urls_model.py +3 -3
- rapidata/api_client/models/create_datapoint_model.py +124 -0
- rapidata/api_client/models/create_datapoint_model_asset.py +154 -0
- rapidata/api_client/models/create_datapoint_model_context_asset.py +160 -0
- rapidata/api_client/models/create_datapoint_model_metadata_inner.py +154 -0
- rapidata/api_client/models/create_datapoint_result.py +2 -2
- rapidata/api_client/models/create_dataset_endpoint_input.py +87 -0
- rapidata/api_client/models/create_dataset_endpoint_output.py +87 -0
- rapidata/api_client/models/create_demographic_rapid_model.py +33 -10
- rapidata/api_client/models/create_demographic_rapid_model_asset.py +160 -0
- rapidata/api_client/models/create_demographic_rapid_model_context_asset.py +160 -0
- rapidata/api_client/models/create_demographic_rapid_model_new.py +119 -0
- rapidata/api_client/models/create_empty_validation_set_result.py +2 -2
- rapidata/api_client/models/create_job_definition_endpoint_input.py +119 -0
- rapidata/api_client/models/create_job_definition_endpoint_output.py +89 -0
- rapidata/api_client/models/create_job_endpoint_input.py +100 -0
- rapidata/api_client/models/create_job_endpoint_output.py +89 -0
- rapidata/api_client/models/create_job_revision_endpoint_input.py +127 -0
- rapidata/api_client/models/create_job_revision_endpoint_output.py +89 -0
- rapidata/api_client/models/create_leaderboard_model.py +23 -26
- rapidata/api_client/models/create_leaderboard_result.py +2 -2
- rapidata/api_client/models/create_order_definition_model.py +119 -0
- rapidata/api_client/models/create_order_definition_result.py +87 -0
- rapidata/api_client/models/create_order_definition_revision_model.py +117 -0
- rapidata/api_client/models/create_order_definition_revision_result.py +87 -0
- rapidata/api_client/models/create_order_model.py +33 -62
- rapidata/api_client/models/create_order_model_referee.py +12 -12
- rapidata/api_client/models/create_order_model_workflow.py +35 -21
- rapidata/api_client/models/create_order_result.py +2 -2
- rapidata/api_client/models/create_rapid_result.py +2 -2
- rapidata/api_client/models/create_sample_model.py +13 -7
- rapidata/api_client/models/create_sample_model_asset.py +154 -0
- rapidata/api_client/models/create_sample_model_obsolete.py +87 -0
- rapidata/api_client/models/create_simple_pipeline_model_pipeline_steps_inner.py +8 -22
- rapidata/api_client/models/create_unsupported_order_model.py +6 -6
- rapidata/api_client/models/create_validation_set_model.py +5 -5
- rapidata/api_client/models/datapoint_model.py +3 -3
- rapidata/api_client/models/datapoint_state.py +2 -2
- rapidata/api_client/models/definition_type.py +49 -0
- rapidata/api_client/models/dynamic_client_registration_request.py +21 -36
- rapidata/api_client/models/early_stopping_referee_model.py +3 -3
- rapidata/api_client/models/elo_config.py +2 -2
- rapidata/api_client/models/elo_config_model.py +6 -6
- rapidata/api_client/models/entity_tag_header_value.py +93 -0
- rapidata/api_client/models/evaluation_workflow_model.py +4 -4
- rapidata/api_client/models/existing_asset_input.py +109 -0
- rapidata/api_client/models/existing_asset_input_metadata_value.py +126 -0
- rapidata/api_client/models/feature_flag.py +2 -2
- rapidata/api_client/models/feature_flag_model.py +2 -2
- rapidata/api_client/models/feedback_model.py +7 -7
- rapidata/api_client/models/file_asset.py +3 -5
- rapidata/api_client/models/file_asset_input_file.py +8 -22
- rapidata/api_client/models/file_asset_metadata_value.py +252 -0
- rapidata/api_client/models/file_asset_model_metadata_value.py +18 -88
- rapidata/api_client/models/file_stream_result.py +122 -0
- rapidata/api_client/models/file_type.py +2 -2
- rapidata/api_client/models/filter.py +2 -2
- rapidata/api_client/models/filter_operator.py +2 -2
- rapidata/api_client/models/fork_benchmark_result.py +87 -0
- rapidata/api_client/models/form_file_wrapper.py +17 -2
- rapidata/api_client/models/gender_user_filter_model.py +2 -2
- rapidata/api_client/models/gender_user_filter_model_gender.py +38 -0
- rapidata/api_client/models/get_asset_metadata_result.py +100 -0
- rapidata/api_client/models/get_audience_by_id_result.py +118 -0
- rapidata/api_client/models/get_available_validation_sets_result.py +2 -2
- rapidata/api_client/models/get_benchmark_by_id_result.py +8 -4
- rapidata/api_client/models/get_boost_result.py +97 -0
- rapidata/api_client/models/get_boost_result_boost_mode.py +37 -0
- rapidata/api_client/models/get_boost_result_boost_status.py +39 -0
- rapidata/api_client/models/get_compare_ab_summary_result.py +3 -5
- rapidata/api_client/models/get_compare_workflow_results_model.py +7 -7
- rapidata/api_client/models/get_compare_workflow_results_result.py +5 -5
- rapidata/api_client/models/get_datapoint_by_id_result.py +7 -12
- rapidata/api_client/models/get_datapoint_by_id_result_asset.py +170 -0
- rapidata/api_client/models/get_dataset_by_id_result.py +2 -2
- rapidata/api_client/models/get_dataset_progress_result.py +2 -2
- rapidata/api_client/models/get_evaluation_workflow_results_model.py +119 -0
- rapidata/api_client/models/get_failed_datapoints_result.py +5 -5
- rapidata/api_client/models/get_failed_datapoints_result_datapoint.py +100 -0
- rapidata/api_client/models/get_file_metadata_result.py +100 -0
- rapidata/api_client/models/get_grouped_ranking_workflow_results_model.py +106 -0
- rapidata/api_client/models/get_grouped_ranking_workflow_results_result.py +97 -0
- rapidata/api_client/models/get_grouped_ranking_workflow_results_result_paged_result.py +105 -0
- rapidata/api_client/models/get_job_by_id_endpoint_output.py +130 -0
- rapidata/api_client/models/get_job_definition_by_id_endpoint_output.py +95 -0
- rapidata/api_client/models/get_job_revision_endpoint_output.py +133 -0
- rapidata/api_client/models/get_leaderboard_by_id_result.py +5 -5
- rapidata/api_client/models/get_order_by_id_result.py +12 -5
- rapidata/api_client/models/get_participant_by_id_result.py +4 -6
- rapidata/api_client/models/get_pipeline_by_id_result.py +5 -5
- rapidata/api_client/models/get_public_orders_result.py +2 -2
- rapidata/api_client/models/get_public_responses_result.py +5 -5
- rapidata/api_client/models/get_public_responses_result_response.py +112 -0
- rapidata/api_client/models/get_rapid_responses_result.py +3 -3
- rapidata/api_client/models/get_recommended_validation_set_result.py +2 -2
- rapidata/api_client/models/get_responses_for_rapid_result.py +106 -0
- rapidata/api_client/models/get_responses_for_rapid_result_response.py +103 -0
- rapidata/api_client/models/get_responses_for_rapid_result_response_result.py +266 -0
- rapidata/api_client/models/get_responses_result.py +5 -5
- rapidata/api_client/models/get_responses_result_response.py +103 -0
- rapidata/api_client/models/get_sample_by_id_result.py +7 -8
- rapidata/api_client/models/get_simple_workflow_results_model.py +20 -15
- rapidata/api_client/models/get_standing_by_id_result.py +3 -5
- rapidata/api_client/models/get_validation_rapids_result.py +29 -32
- rapidata/api_client/models/get_validation_set_by_id_result.py +10 -4
- rapidata/api_client/models/get_workflow_by_id_result.py +5 -5
- rapidata/api_client/models/get_workflow_by_id_result_workflow.py +23 -9
- rapidata/api_client/models/get_workflow_progress_result.py +2 -2
- rapidata/api_client/models/get_workflow_results_result.py +31 -14
- rapidata/api_client/models/get_workflow_results_result_response.py +103 -0
- rapidata/api_client/models/google_one_tap_login_model.py +4 -4
- rapidata/api_client/models/grouped_ranking_workflow_config.py +155 -0
- rapidata/api_client/models/grouped_ranking_workflow_config_context_assets_value.py +170 -0
- rapidata/api_client/models/grouped_ranking_workflow_model.py +147 -0
- rapidata/api_client/models/grouped_ranking_workflow_model1.py +121 -0
- rapidata/api_client/models/i_artifact_model.py +182 -0
- rapidata/api_client/models/i_artifact_model_campaign_artifact_model.py +98 -0
- rapidata/api_client/models/i_artifact_model_dataset_artifact_model.py +98 -0
- rapidata/api_client/models/i_artifact_model_file_artifact_model.py +98 -0
- rapidata/api_client/models/i_artifact_model_workflow_artifact_model.py +98 -0
- rapidata/api_client/models/i_artifact_model_workflow_config_artifact_model.py +102 -0
- rapidata/api_client/models/i_asset.py +170 -0
- rapidata/api_client/models/i_asset_file_asset.py +111 -0
- rapidata/api_client/models/i_asset_input.py +156 -0
- rapidata/api_client/models/i_asset_input_existing_asset_input.py +118 -0
- rapidata/api_client/models/i_asset_input_multi_asset_input.py +128 -0
- rapidata/api_client/models/i_asset_input_text_asset_input.py +118 -0
- rapidata/api_client/models/i_asset_model.py +170 -0
- rapidata/api_client/models/i_asset_model_file_asset_model.py +113 -0
- rapidata/api_client/models/i_asset_model_multi_asset_model.py +123 -0
- rapidata/api_client/models/i_asset_model_null_asset_model.py +111 -0
- rapidata/api_client/models/i_asset_model_text_asset_model.py +113 -0
- rapidata/api_client/models/i_asset_multi_asset.py +121 -0
- rapidata/api_client/models/i_asset_null_asset.py +109 -0
- rapidata/api_client/models/i_asset_text_asset.py +111 -0
- rapidata/api_client/models/i_audience_filter.py +184 -0
- rapidata/api_client/models/i_audience_filter_and_audience_filter.py +106 -0
- rapidata/api_client/models/i_audience_filter_country_audience_filter.py +96 -0
- rapidata/api_client/models/i_audience_filter_country_filter.py +96 -0
- rapidata/api_client/models/i_audience_filter_language_audience_filter.py +96 -0
- rapidata/api_client/models/i_audience_filter_language_filter.py +96 -0
- rapidata/api_client/models/i_audience_filter_not_audience_filter.py +102 -0
- rapidata/api_client/models/i_audience_filter_or_audience_filter.py +106 -0
- rapidata/api_client/models/i_campaign_filter.py +296 -0
- rapidata/api_client/models/i_campaign_filter_and_filter.py +117 -0
- rapidata/api_client/models/i_campaign_filter_campaign_filter.py +98 -0
- rapidata/api_client/models/i_campaign_filter_campaign_session_count_filter.py +101 -0
- rapidata/api_client/models/i_campaign_filter_country_filter.py +98 -0
- rapidata/api_client/models/i_campaign_filter_demographic_filter.py +100 -0
- rapidata/api_client/models/i_campaign_filter_device_filter.py +106 -0
- rapidata/api_client/models/i_campaign_filter_language_filter.py +98 -0
- rapidata/api_client/models/i_campaign_filter_new_user_filter.py +96 -0
- rapidata/api_client/models/i_campaign_filter_not_filter.py +113 -0
- rapidata/api_client/models/i_campaign_filter_or_filter.py +117 -0
- rapidata/api_client/models/i_campaign_filter_response_count_filter.py +103 -0
- rapidata/api_client/models/i_campaign_filter_user_action_restriction_filter.py +106 -0
- rapidata/api_client/models/i_campaign_filter_user_score_filter.py +102 -0
- rapidata/api_client/models/i_campaign_filter_user_state_filter.py +106 -0
- rapidata/api_client/models/i_dataset_metadata_input.py +154 -0
- rapidata/api_client/models/i_dataset_metadata_input_prompt_asset_metadata_input.py +100 -0
- rapidata/api_client/models/i_dataset_metadata_input_prompt_metadata_input.py +96 -0
- rapidata/api_client/models/i_dataset_metadata_input_transcription_metadata_input.py +96 -0
- rapidata/api_client/models/i_dataset_model.py +126 -0
- rapidata/api_client/models/i_dataset_model_clone_dataset_model.py +98 -0
- rapidata/api_client/models/i_metadata.py +252 -0
- rapidata/api_client/models/i_metadata_classification_metadata.py +109 -0
- rapidata/api_client/models/i_metadata_count_metadata.py +109 -0
- rapidata/api_client/models/i_metadata_duration_metadata.py +110 -0
- rapidata/api_client/models/i_metadata_file_type_metadata.py +110 -0
- rapidata/api_client/models/i_metadata_image_dimension_metadata.py +111 -0
- rapidata/api_client/models/i_metadata_input.py +126 -0
- rapidata/api_client/models/i_metadata_input_text_metadata_input.py +111 -0
- rapidata/api_client/models/i_metadata_location_metadata.py +111 -0
- rapidata/api_client/models/i_metadata_model.py +252 -0
- rapidata/api_client/models/i_metadata_model_classification_metadata_model.py +96 -0
- rapidata/api_client/models/i_metadata_model_count_metadata_model.py +96 -0
- rapidata/api_client/models/i_metadata_model_file_type_metadata_model.py +97 -0
- rapidata/api_client/models/i_metadata_model_image_dimension_metadata_model.py +98 -0
- rapidata/api_client/models/i_metadata_model_location_metadata_model.py +98 -0
- rapidata/api_client/models/i_metadata_model_original_filename_metadata_model.py +96 -0
- rapidata/api_client/models/i_metadata_model_source_url_metadata_model.py +96 -0
- rapidata/api_client/models/i_metadata_model_streams_metadata_model.py +100 -0
- rapidata/api_client/models/i_metadata_model_text_metadata_model.py +101 -0
- rapidata/api_client/models/i_metadata_model_video_duration_metadata_model.py +97 -0
- rapidata/api_client/models/i_metadata_original_filename_metadata.py +109 -0
- rapidata/api_client/models/i_metadata_source_url_metadata.py +109 -0
- rapidata/api_client/models/i_metadata_streams_metadata.py +113 -0
- rapidata/api_client/models/i_metadata_text_metadata.py +114 -0
- rapidata/api_client/models/i_metadata_video_duration_metadata.py +110 -0
- rapidata/api_client/models/i_order_workflow_model.py +168 -0
- rapidata/api_client/models/i_order_workflow_model_compare_workflow_model.py +146 -0
- rapidata/api_client/models/i_order_workflow_model_evaluation_workflow_model.py +108 -0
- rapidata/api_client/models/i_order_workflow_model_grouped_ranking_workflow_model.py +147 -0
- rapidata/api_client/models/i_order_workflow_model_simple_workflow_model.py +110 -0
- rapidata/api_client/models/i_pair_maker_config.py +126 -0
- rapidata/api_client/models/i_pair_maker_config_model.py +126 -0
- rapidata/api_client/models/i_pair_maker_config_model_online_pair_maker_config_model.py +98 -0
- rapidata/api_client/models/i_pair_maker_config_online_pair_maker_config.py +98 -0
- rapidata/api_client/models/i_pair_maker_information.py +126 -0
- rapidata/api_client/models/i_pair_maker_information_online_pair_maker_information.py +100 -0
- rapidata/api_client/models/i_pipeline_artifact_model.py +126 -0
- rapidata/api_client/models/i_pipeline_artifact_model_create_dataset_artifact_model.py +102 -0
- rapidata/api_client/models/i_pipeline_model.py +126 -0
- rapidata/api_client/models/i_pipeline_model_create_simple_pipeline_model.py +116 -0
- rapidata/api_client/models/i_pipeline_step_model.py +168 -0
- rapidata/api_client/models/i_pipeline_step_model_dataset_evaluation_step_model.py +102 -0
- rapidata/api_client/models/i_pipeline_step_model_send_completion_mail_step_model.py +98 -0
- rapidata/api_client/models/i_pipeline_step_model_workflow_aggregation_step_model.py +103 -0
- rapidata/api_client/models/i_pipeline_step_model_workflow_labeling_step_model.py +96 -0
- rapidata/api_client/models/i_rapid_blueprint.py +252 -0
- rapidata/api_client/models/i_rapid_blueprint_attach_category_rapid_blueprint.py +108 -0
- rapidata/api_client/models/i_rapid_blueprint_bounding_box_rapid_blueprint.py +96 -0
- rapidata/api_client/models/i_rapid_blueprint_compare_rapid_blueprint.py +98 -0
- rapidata/api_client/models/i_rapid_blueprint_free_text_rapid_blueprint.py +105 -0
- rapidata/api_client/models/i_rapid_blueprint_line_rapid_blueprint.py +96 -0
- rapidata/api_client/models/i_rapid_blueprint_locate_rapid_blueprint.py +96 -0
- rapidata/api_client/models/i_rapid_blueprint_named_entity_rapid_blueprint.py +98 -0
- rapidata/api_client/models/i_rapid_blueprint_polygon_rapid_blueprint.py +96 -0
- rapidata/api_client/models/i_rapid_blueprint_scrub_rapid_blueprint.py +96 -0
- rapidata/api_client/models/i_rapid_blueprint_transcription_rapid_blueprint.py +96 -0
- rapidata/api_client/models/i_rapid_payload.py +252 -0
- rapidata/api_client/models/i_rapid_payload_bounding_box_payload.py +96 -0
- rapidata/api_client/models/i_rapid_payload_classify_payload.py +106 -0
- rapidata/api_client/models/i_rapid_payload_compare_payload.py +96 -0
- rapidata/api_client/models/i_rapid_payload_free_text_payload.py +105 -0
- rapidata/api_client/models/i_rapid_payload_line_payload.py +96 -0
- rapidata/api_client/models/i_rapid_payload_locate_payload.py +96 -0
- rapidata/api_client/models/i_rapid_payload_named_entity_payload.py +98 -0
- rapidata/api_client/models/i_rapid_payload_polygon_payload.py +96 -0
- rapidata/api_client/models/i_rapid_payload_scrub_payload.py +96 -0
- rapidata/api_client/models/i_rapid_payload_transcription_payload.py +106 -0
- rapidata/api_client/models/i_rapid_result.py +266 -0
- rapidata/api_client/models/i_rapid_result_attach_category_result.py +98 -0
- rapidata/api_client/models/i_rapid_result_bounding_box_result.py +106 -0
- rapidata/api_client/models/i_rapid_result_compare_result.py +98 -0
- rapidata/api_client/models/i_rapid_result_free_text_result.py +98 -0
- rapidata/api_client/models/i_rapid_result_line_result.py +106 -0
- rapidata/api_client/models/i_rapid_result_locate_result.py +106 -0
- rapidata/api_client/models/i_rapid_result_named_entity_result.py +106 -0
- rapidata/api_client/models/i_rapid_result_polygon_result.py +106 -0
- rapidata/api_client/models/i_rapid_result_scrub_result.py +98 -0
- rapidata/api_client/models/i_rapid_result_skip_result.py +96 -0
- rapidata/api_client/models/i_rapid_result_transcription_result.py +106 -0
- rapidata/api_client/models/i_referee_config.py +154 -0
- rapidata/api_client/models/i_referee_config_naive_referee_config.py +96 -0
- rapidata/api_client/models/i_referee_config_never_ending_referee_config.py +94 -0
- rapidata/api_client/models/i_referee_config_probabilistic_attach_category_referee_config.py +98 -0
- rapidata/api_client/models/i_referee_info.py +154 -0
- rapidata/api_client/models/i_referee_info_naive_referee_info.py +96 -0
- rapidata/api_client/models/i_referee_info_never_ending_referee_info.py +94 -0
- rapidata/api_client/models/i_referee_info_probabilistic_attach_category_referee_info.py +98 -0
- rapidata/api_client/models/i_referee_model.py +140 -0
- rapidata/api_client/models/i_referee_model_early_stopping_referee_model.py +98 -0
- rapidata/api_client/models/i_referee_model_naive_referee_model.py +96 -0
- rapidata/api_client/models/i_selection.py +240 -0
- rapidata/api_client/models/i_selection_ab_test_selection.py +122 -0
- rapidata/api_client/models/i_selection_capped_selection.py +108 -0
- rapidata/api_client/models/i_selection_conditional_validation_selection.py +110 -0
- rapidata/api_client/models/i_selection_demographic_selection.py +98 -0
- rapidata/api_client/models/i_selection_effort_capped_selection.py +101 -0
- rapidata/api_client/models/i_selection_labeling_selection.py +103 -0
- rapidata/api_client/models/i_selection_shuffling_selection.py +106 -0
- rapidata/api_client/models/i_selection_static_selection.py +96 -0
- rapidata/api_client/models/i_selection_validation_selection.py +98 -0
- rapidata/api_client/models/i_user_filter_model.py +296 -0
- rapidata/api_client/models/i_user_filter_model_age_user_filter_model.py +104 -0
- rapidata/api_client/models/i_user_filter_model_and_user_filter_model.py +106 -0
- rapidata/api_client/models/i_user_filter_model_campaign_user_filter_model.py +96 -0
- rapidata/api_client/models/i_user_filter_model_country_user_filter_model.py +96 -0
- rapidata/api_client/models/i_user_filter_model_custom_user_filter_model.py +98 -0
- rapidata/api_client/models/i_user_filter_model_device_user_filter_model.py +104 -0
- rapidata/api_client/models/i_user_filter_model_gender_user_filter_model.py +104 -0
- rapidata/api_client/models/i_user_filter_model_language_user_filter_model.py +96 -0
- rapidata/api_client/models/i_user_filter_model_new_user_filter_model.py +94 -0
- rapidata/api_client/models/i_user_filter_model_not_user_filter_model.py +102 -0
- rapidata/api_client/models/i_user_filter_model_or_user_filter_model.py +106 -0
- rapidata/api_client/models/i_user_filter_model_response_count_user_filter_model.py +101 -0
- rapidata/api_client/models/i_user_filter_model_user_score_user_filter_model.py +105 -0
- rapidata/api_client/models/i_validation_metadata_input.py +140 -0
- rapidata/api_client/models/i_validation_metadata_input_prompt_asset_metadata_input.py +100 -0
- rapidata/api_client/models/i_validation_metadata_input_prompt_metadata_input.py +96 -0
- rapidata/api_client/models/i_validation_truth.py +280 -0
- rapidata/api_client/models/i_validation_truth_attach_category_truth.py +96 -0
- rapidata/api_client/models/i_validation_truth_bounding_box_truth.py +102 -0
- rapidata/api_client/models/i_validation_truth_compare_truth.py +96 -0
- rapidata/api_client/models/i_validation_truth_empty_validation_truth.py +94 -0
- rapidata/api_client/models/i_validation_truth_line_truth.py +94 -0
- rapidata/api_client/models/i_validation_truth_locate_box_truth.py +108 -0
- rapidata/api_client/models/i_validation_truth_model.py +294 -0
- rapidata/api_client/models/i_validation_truth_model_attach_category_truth_model.py +96 -0
- rapidata/api_client/models/i_validation_truth_model_bounding_box_truth_model.py +102 -0
- rapidata/api_client/models/i_validation_truth_model_classify_truth_model.py +96 -0
- rapidata/api_client/models/i_validation_truth_model_compare_truth_model.py +96 -0
- rapidata/api_client/models/i_validation_truth_model_empty_validation_truth_model.py +94 -0
- rapidata/api_client/models/i_validation_truth_model_line_truth_model.py +94 -0
- rapidata/api_client/models/i_validation_truth_model_locate_box_truth_model.py +108 -0
- rapidata/api_client/models/i_validation_truth_model_multi_compare_truth_model.py +96 -0
- rapidata/api_client/models/i_validation_truth_model_named_entity_truth_model.py +104 -0
- rapidata/api_client/models/i_validation_truth_model_polygon_truth_model.py +94 -0
- rapidata/api_client/models/i_validation_truth_model_scrub_truth_model.py +104 -0
- rapidata/api_client/models/i_validation_truth_model_skip_truth_model.py +94 -0
- rapidata/api_client/models/i_validation_truth_model_transcription_truth_model.py +115 -0
- rapidata/api_client/models/i_validation_truth_multi_compare_truth.py +96 -0
- rapidata/api_client/models/i_validation_truth_named_entity_truth.py +104 -0
- rapidata/api_client/models/i_validation_truth_polygon_truth.py +94 -0
- rapidata/api_client/models/i_validation_truth_scrub_truth.py +104 -0
- rapidata/api_client/models/i_validation_truth_skip_truth.py +94 -0
- rapidata/api_client/models/i_validation_truth_transcription_truth.py +115 -0
- rapidata/api_client/models/i_workflow_config.py +168 -0
- rapidata/api_client/models/i_workflow_config_compare_workflow_config.py +142 -0
- rapidata/api_client/models/i_workflow_config_evaluation_workflow_config.py +114 -0
- rapidata/api_client/models/i_workflow_config_grouped_ranking_workflow_config.py +155 -0
- rapidata/api_client/models/i_workflow_config_simple_workflow_config.py +116 -0
- rapidata/api_client/models/i_workflow_model.py +168 -0
- rapidata/api_client/models/i_workflow_model_compare_workflow_model.py +145 -0
- rapidata/api_client/models/i_workflow_model_evaluation_workflow_model.py +115 -0
- rapidata/api_client/models/i_workflow_model_grouped_ranking_workflow_model.py +121 -0
- rapidata/api_client/models/i_workflow_model_simple_workflow_model.py +119 -0
- rapidata/api_client/models/inquire_file_metadata_result.py +100 -0
- rapidata/api_client/models/inspect_report_result.py +2 -2
- rapidata/api_client/models/job_definition_revision_state.py +38 -0
- rapidata/api_client/models/json_web_key.py +2 -36
- rapidata/api_client/models/json_web_key_set.py +2 -22
- rapidata/api_client/models/labeling_selection.py +9 -2
- rapidata/api_client/models/leaderboards_query_result.py +135 -0
- rapidata/api_client/models/line_result.py +3 -3
- rapidata/api_client/models/line_result_line.py +97 -0
- rapidata/api_client/models/line_result_line_point.py +89 -0
- rapidata/api_client/models/locate_coordinate.py +4 -13
- rapidata/api_client/models/logic_operator.py +2 -2
- rapidata/api_client/models/metadata_i_order_metadata_input.py +154 -0
- rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_asset_metadata_input.py +100 -0
- rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_metadata_input.py +96 -0
- rapidata/api_client/models/metadata_i_order_metadata_input_metadata_transcription_metadata_input.py +96 -0
- rapidata/api_client/models/metadata_prompt_asset_metadata_input.py +100 -0
- rapidata/api_client/models/metadata_prompt_metadata_input.py +96 -0
- rapidata/api_client/models/metadata_transcription_metadata_input.py +96 -0
- rapidata/api_client/models/multi_asset.py +6 -6
- rapidata/api_client/models/multi_asset_assets_inner.py +170 -0
- rapidata/api_client/models/multi_asset_input.py +21 -1
- rapidata/api_client/models/multi_asset_input1_assets_inner.py +40 -12
- rapidata/api_client/models/multi_asset_input3_assets_inner.py +40 -12
- rapidata/api_client/models/multi_asset_input_assets_inner.py +16 -30
- rapidata/api_client/models/multi_asset_model.py +3 -3
- rapidata/api_client/models/naive_referee_model.py +2 -2
- rapidata/api_client/models/named_classification.py +4 -13
- rapidata/api_client/models/newsletter_model.py +6 -6
- rapidata/api_client/models/not_available_yet_result.py +4 -13
- rapidata/api_client/models/null_asset.py +3 -5
- rapidata/api_client/models/online_pair_maker_config_model.py +3 -3
- rapidata/api_client/models/option_of_aggregator_type.py +49 -0
- rapidata/api_client/models/order_model.py +12 -5
- rapidata/api_client/models/order_state.py +2 -2
- rapidata/api_client/models/page_info.py +2 -7
- rapidata/api_client/models/paged_result_aggregated_orders_model.py +105 -0
- rapidata/api_client/models/paged_result_benchmark_query_result.py +105 -0
- rapidata/api_client/models/paged_result_campaign_query_result.py +105 -0
- rapidata/api_client/models/paged_result_clients_query_result.py +105 -0
- rapidata/api_client/models/paged_result_datapoint_model.py +105 -0
- rapidata/api_client/models/paged_result_get_compare_workflow_results_result.py +105 -0
- rapidata/api_client/models/paged_result_get_grouped_ranking_workflow_results_result.py +105 -0
- rapidata/api_client/models/paged_result_get_validation_rapids_result.py +105 -0
- rapidata/api_client/models/paged_result_get_workflow_results_result.py +105 -0
- rapidata/api_client/models/paged_result_i_workflow_model.py +105 -0
- rapidata/api_client/models/paged_result_leaderboard_query_result.py +105 -0
- rapidata/api_client/models/paged_result_leaderboards_query_result.py +105 -0
- rapidata/api_client/models/paged_result_of_aggregated_orders_model.py +103 -0
- rapidata/api_client/models/paged_result_of_benchmark_query_result.py +103 -0
- rapidata/api_client/models/paged_result_of_campaign_query_result.py +103 -0
- rapidata/api_client/models/paged_result_of_clients_query_result.py +103 -0
- rapidata/api_client/models/paged_result_of_get_compare_workflow_results_result.py +103 -0
- rapidata/api_client/models/paged_result_of_get_grouped_ranking_workflow_results_result.py +103 -0
- rapidata/api_client/models/paged_result_of_get_validation_rapids_result.py +103 -0
- rapidata/api_client/models/paged_result_of_get_workflow_results_result.py +103 -0
- rapidata/api_client/models/paged_result_of_i_workflow_model.py +103 -0
- rapidata/api_client/models/paged_result_of_leaderboards_query_result.py +103 -0
- rapidata/api_client/models/paged_result_of_order_model.py +103 -0
- rapidata/api_client/models/paged_result_of_participant_by_benchmark.py +103 -0
- rapidata/api_client/models/paged_result_of_prompt_by_benchmark_result.py +103 -0
- rapidata/api_client/models/paged_result_of_query_audiences_result.py +103 -0
- rapidata/api_client/models/paged_result_of_query_datapoints_by_dataset_id_result.py +103 -0
- rapidata/api_client/models/paged_result_of_query_job_definitions_result.py +103 -0
- rapidata/api_client/models/paged_result_of_query_job_revisions_result.py +103 -0
- rapidata/api_client/models/paged_result_of_query_jobs_result.py +103 -0
- rapidata/api_client/models/paged_result_of_query_rapids_for_audience_result.py +103 -0
- rapidata/api_client/models/paged_result_of_query_validation_rapid_eligibility_result.py +103 -0
- rapidata/api_client/models/paged_result_of_rapid_model.py +103 -0
- rapidata/api_client/models/paged_result_of_runs_by_leaderboard_result.py +103 -0
- rapidata/api_client/models/paged_result_of_sample_by_identifier.py +103 -0
- rapidata/api_client/models/paged_result_of_sample_by_participant.py +103 -0
- rapidata/api_client/models/paged_result_of_standing_by_leaderboard.py +103 -0
- rapidata/api_client/models/paged_result_of_validation_set_model.py +103 -0
- rapidata/api_client/models/paged_result_order_model.py +105 -0
- rapidata/api_client/models/paged_result_participant_by_benchmark.py +105 -0
- rapidata/api_client/models/paged_result_potential_validation_rapid.py +105 -0
- rapidata/api_client/models/paged_result_prompt_by_benchmark_result.py +105 -0
- rapidata/api_client/models/paged_result_query_audiences_result.py +105 -0
- rapidata/api_client/models/paged_result_query_datapoints_by_dataset_id_result.py +105 -0
- rapidata/api_client/models/paged_result_query_validation_rapid_eligibility_result.py +105 -0
- rapidata/api_client/models/paged_result_rapid_model.py +105 -0
- rapidata/api_client/models/paged_result_runs_by_leaderboard_result.py +105 -0
- rapidata/api_client/models/paged_result_sample_by_identifier.py +105 -0
- rapidata/api_client/models/paged_result_sample_by_participant.py +105 -0
- rapidata/api_client/models/paged_result_standing_by_leaderboard.py +105 -0
- rapidata/api_client/models/paged_result_validation_set_model.py +105 -0
- rapidata/api_client/models/participant_by_benchmark.py +3 -5
- rapidata/api_client/models/participant_status.py +2 -2
- rapidata/api_client/models/polygon_result.py +3 -3
- rapidata/api_client/models/polygon_result_coordinate.py +89 -0
- rapidata/api_client/models/polygon_result_shape.py +95 -0
- rapidata/api_client/models/preliminary_download_model.py +5 -5
- rapidata/api_client/models/preview_order_model.py +5 -5
- rapidata/api_client/models/problem_details.py +2 -20
- rapidata/api_client/models/prompt_asset_metadata_input.py +4 -6
- rapidata/api_client/models/prompt_asset_metadata_input_asset.py +25 -41
- rapidata/api_client/models/prompt_by_benchmark_result.py +5 -5
- rapidata/api_client/models/prompt_metadata_input.py +5 -7
- rapidata/api_client/models/proxy_file_wrapper.py +17 -2
- rapidata/api_client/models/public_order_model.py +2 -2
- rapidata/api_client/models/query_audiences_result.py +118 -0
- rapidata/api_client/models/query_datapoints_by_dataset_id_result.py +95 -0
- rapidata/api_client/models/query_job_definitions_result.py +97 -0
- rapidata/api_client/models/query_job_revisions_result.py +95 -0
- rapidata/api_client/models/query_jobs_result.py +103 -0
- rapidata/api_client/models/query_model.py +10 -5
- rapidata/api_client/models/query_rapids_for_audience_result.py +150 -0
- rapidata/api_client/models/query_validation_rapid_eligibility_model_query_validation_model.py +107 -0
- rapidata/api_client/models/query_validation_rapid_eligibility_result.py +103 -0
- rapidata/api_client/models/query_validation_rapid_eligibility_result_truth.py +280 -0
- rapidata/api_client/models/rapid_issue.py +2 -2
- rapidata/api_client/models/rapid_model.py +30 -40
- rapidata/api_client/models/rapid_result_model.py +7 -7
- rapidata/api_client/models/rapid_skipped_model.py +5 -5
- rapidata/api_client/models/rapid_state.py +2 -2
- rapidata/api_client/models/read_bridge_token_keys_result.py +10 -24
- rapidata/api_client/models/reference_asset_input.py +100 -0
- rapidata/api_client/models/report_model.py +7 -7
- rapidata/api_client/models/retrieval_mode.py +2 -2
- rapidata/api_client/models/root_filter.py +2 -2
- rapidata/api_client/models/run_status.py +2 -2
- rapidata/api_client/models/runs_by_leaderboard_result.py +3 -3
- rapidata/api_client/models/sample_by_identifier.py +7 -8
- rapidata/api_client/models/sample_by_participant.py +7 -8
- rapidata/api_client/models/scrub_range.py +2 -2
- rapidata/api_client/models/send_survey_model.py +87 -0
- rapidata/api_client/models/simple_workflow_config.py +3 -3
- rapidata/api_client/models/simple_workflow_model.py +2 -2
- rapidata/api_client/models/simple_workflow_model1.py +4 -11
- rapidata/api_client/models/simple_workflow_model_blueprint.py +1 -1
- rapidata/api_client/models/sort_criterion.py +2 -2
- rapidata/api_client/models/sort_direction.py +2 -2
- rapidata/api_client/models/standing_by_benchmark.py +113 -0
- rapidata/api_client/models/standing_by_leaderboard.py +16 -12
- rapidata/api_client/models/standing_status.py +2 -2
- rapidata/api_client/models/standings_by_benchmark_result.py +95 -0
- rapidata/api_client/models/standings_by_leaderboard_result.py +2 -2
- rapidata/api_client/models/start_preliminary_download_result.py +87 -0
- rapidata/api_client/models/sticky_state.py +3 -2
- rapidata/api_client/models/stream_file_wrapper.py +25 -3
- rapidata/api_client/models/string_segment.py +105 -0
- rapidata/api_client/models/submit_order_model.py +5 -5
- rapidata/api_client/models/submit_participant_result.py +2 -2
- rapidata/api_client/models/submit_prompt_model.py +9 -14
- rapidata/api_client/models/submit_prompt_model_prompt_asset.py +40 -12
- rapidata/api_client/models/tags_by_benchmark_result.py +2 -2
- rapidata/api_client/models/text_asset.py +3 -5
- rapidata/api_client/models/text_asset_input.py +21 -1
- rapidata/api_client/models/text_metadata.py +6 -1
- rapidata/api_client/models/text_metadata_input.py +111 -0
- rapidata/api_client/models/text_metadata_model.py +7 -2
- rapidata/api_client/models/transcription_metadata_input.py +5 -7
- rapidata/api_client/models/transcription_word.py +2 -2
- rapidata/api_client/models/translated_string.py +2 -2
- rapidata/api_client/models/unlock_order_result.py +2 -2
- rapidata/api_client/models/update_audience_request.py +113 -0
- rapidata/api_client/models/update_benchmark_model.py +99 -0
- rapidata/api_client/models/update_benchmark_name_model.py +5 -5
- rapidata/api_client/models/update_campaign_model.py +11 -11
- rapidata/api_client/models/update_dataset_name_model.py +5 -5
- rapidata/api_client/models/update_dimensions_model.py +3 -3
- rapidata/api_client/models/update_job_definition_endpoint_input.py +92 -0
- rapidata/api_client/models/update_leaderboard_model.py +18 -3
- rapidata/api_client/models/update_leaderboard_name_model.py +5 -5
- rapidata/api_client/models/update_leaderboard_response_config_model.py +5 -5
- rapidata/api_client/models/update_order_name_model.py +5 -5
- rapidata/api_client/models/update_participant_model.py +92 -0
- rapidata/api_client/models/update_participant_name_model.py +5 -5
- rapidata/api_client/models/update_priority_model.py +87 -0
- rapidata/api_client/models/update_prompt_tags_model.py +5 -5
- rapidata/api_client/models/update_should_alert_model.py +4 -4
- rapidata/api_client/models/update_validation_rapid_model.py +35 -14
- rapidata/api_client/models/update_validation_rapid_model_context_asset.py +160 -0
- rapidata/api_client/models/update_validation_set_model.py +120 -0
- rapidata/api_client/models/upload_asset_result.py +102 -0
- rapidata/api_client/models/upload_file_from_url_result.py +87 -0
- rapidata/api_client/models/upload_file_result.py +87 -0
- rapidata/api_client/models/user_action_restriction.py +37 -0
- rapidata/api_client/models/user_action_restriction_filter.py +101 -0
- rapidata/api_client/models/validation_chance.py +20 -3
- rapidata/api_client/models/validation_problem_details.py +117 -0
- rapidata/api_client/models/validation_set_model.py +11 -16
- rapidata/api_client/models/validation_set_overview_model.py +2 -2
- rapidata/api_client/models/workflow_config_artifact_model_workflow_config.py +23 -9
- rapidata/api_client/models/workflow_state.py +2 -2
- rapidata/api_client/models/zip_entry_file_wrapper.py +33 -2
- rapidata/api_client/rest.py +2 -2
- rapidata/api_client_README.md +371 -326
- rapidata/rapidata_client/__init__.py +14 -11
- rapidata/rapidata_client/api/{rapidata_exception.py → rapidata_api_client.py} +119 -2
- rapidata/rapidata_client/audience/__init__.py +2 -0
- rapidata/rapidata_client/audience/audience_example_handler.py +168 -0
- rapidata/rapidata_client/audience/rapidata_audience.py +287 -0
- rapidata/rapidata_client/audience/rapidata_audience_manager.py +162 -0
- rapidata/rapidata_client/benchmark/_detail_mapper.py +11 -9
- rapidata/rapidata_client/benchmark/leaderboard/rapidata_leaderboard.py +98 -54
- rapidata/rapidata_client/benchmark/participant/_participant.py +57 -32
- rapidata/rapidata_client/benchmark/rapidata_benchmark.py +384 -246
- rapidata/rapidata_client/benchmark/rapidata_benchmark_manager.py +137 -81
- rapidata/rapidata_client/config/__init__.py +3 -0
- rapidata/rapidata_client/config/logger.py +135 -0
- rapidata/rapidata_client/config/logging_config.py +55 -0
- rapidata/rapidata_client/config/managed_print.py +6 -0
- rapidata/rapidata_client/config/order_config.py +14 -0
- rapidata/rapidata_client/config/rapidata_config.py +15 -10
- rapidata/rapidata_client/config/tracer.py +184 -0
- rapidata/rapidata_client/config/upload_config.py +64 -0
- rapidata/rapidata_client/datapoints/__init__.py +0 -3
- rapidata/rapidata_client/datapoints/_asset_uploader.py +184 -0
- rapidata/rapidata_client/datapoints/_datapoint.py +72 -176
- rapidata/rapidata_client/datapoints/_datapoint_uploader.py +47 -0
- rapidata/rapidata_client/datapoints/_datapoints_validator.py +70 -0
- rapidata/rapidata_client/datapoints/assets/__init__.py +0 -10
- rapidata/rapidata_client/datapoints/metadata/__init__.py +0 -2
- rapidata/rapidata_client/datapoints/metadata/_private_text_metadata.py +5 -6
- rapidata/rapidata_client/datapoints/metadata/_prompt_identifier_metadata.py +4 -5
- rapidata/rapidata_client/datapoints/metadata/_public_text_metadata.py +5 -6
- rapidata/rapidata_client/datapoints/metadata/_select_words_metadata.py +3 -4
- rapidata/rapidata_client/dataset/__init__.py +1 -0
- rapidata/rapidata_client/dataset/_rapidata_dataset.py +55 -0
- rapidata/rapidata_client/demographic/demographic_manager.py +44 -19
- rapidata/rapidata_client/exceptions/failed_upload_exception.py +10 -65
- rapidata/rapidata_client/filter/_backend_filter_mapper.py +134 -0
- rapidata/rapidata_client/filter/_base_filter.py +13 -8
- rapidata/rapidata_client/filter/age_filter.py +26 -10
- rapidata/rapidata_client/filter/and_filter.py +36 -11
- rapidata/rapidata_client/filter/campaign_filter.py +21 -10
- rapidata/rapidata_client/filter/country_filter.py +46 -12
- rapidata/rapidata_client/filter/custom_filter.py +25 -12
- rapidata/rapidata_client/filter/gender_filter.py +25 -10
- rapidata/rapidata_client/filter/language_filter.py +51 -21
- rapidata/rapidata_client/filter/models/age_group.py +14 -12
- rapidata/rapidata_client/filter/models/gender.py +12 -8
- rapidata/rapidata_client/filter/new_user_filter.py +14 -4
- rapidata/rapidata_client/filter/not_filter.py +35 -11
- rapidata/rapidata_client/filter/or_filter.py +36 -11
- rapidata/rapidata_client/filter/rapidata_filters.py +17 -23
- rapidata/rapidata_client/filter/response_count_filter.py +40 -14
- rapidata/rapidata_client/filter/user_score_filter.py +62 -24
- rapidata/rapidata_client/job/__init__.py +3 -0
- rapidata/rapidata_client/job/job_definition.py +110 -0
- rapidata/rapidata_client/job/job_manager.py +758 -0
- rapidata/rapidata_client/job/rapidata_job.py +326 -0
- rapidata/rapidata_client/order/__init__.py +2 -0
- rapidata/rapidata_client/order/_rapidata_order_builder.py +236 -196
- rapidata/rapidata_client/order/rapidata_order.py +271 -176
- rapidata/rapidata_client/order/rapidata_order_manager.py +520 -364
- rapidata/rapidata_client/rapidata_client.py +96 -29
- rapidata/rapidata_client/referee/__init__.py +1 -1
- rapidata/rapidata_client/referee/_base_referee.py +14 -3
- rapidata/rapidata_client/referee/_early_stopping_referee.py +32 -17
- rapidata/rapidata_client/referee/_naive_referee.py +24 -3
- rapidata/rapidata_client/results/__init__.py +3 -0
- rapidata/rapidata_client/{order → results}/rapidata_results.py +86 -63
- rapidata/rapidata_client/selection/_base_selection.py +9 -2
- rapidata/rapidata_client/selection/ab_test_selection.py +28 -20
- rapidata/rapidata_client/selection/capped_selection.py +23 -16
- rapidata/rapidata_client/selection/conditional_validation_selection.py +43 -24
- rapidata/rapidata_client/selection/demographic_selection.py +21 -6
- rapidata/rapidata_client/selection/effort_selection.py +20 -8
- rapidata/rapidata_client/selection/labeling_selection.py +21 -10
- rapidata/rapidata_client/selection/rapidata_selections.py +23 -14
- rapidata/rapidata_client/selection/shuffling_selection.py +21 -13
- rapidata/rapidata_client/selection/static_selection.py +19 -8
- rapidata/rapidata_client/selection/validation_selection.py +20 -4
- rapidata/rapidata_client/settings/__init__.py +2 -0
- rapidata/rapidata_client/settings/_rapidata_setting.py +22 -3
- rapidata/rapidata_client/settings/alert_on_fast_response.py +8 -5
- rapidata/rapidata_client/settings/allow_neither_both.py +3 -0
- rapidata/rapidata_client/settings/custom_setting.py +3 -2
- rapidata/rapidata_client/settings/free_text_minimum_characters.py +9 -4
- rapidata/rapidata_client/settings/models/translation_behaviour_options.py +3 -2
- rapidata/rapidata_client/settings/mute_video.py +15 -0
- rapidata/rapidata_client/settings/no_shuffle.py +4 -2
- rapidata/rapidata_client/settings/play_video_until_the_end.py +7 -4
- rapidata/rapidata_client/settings/rapidata_settings.py +22 -9
- rapidata/rapidata_client/settings/swap_context_instruction.py +20 -0
- rapidata/rapidata_client/settings/translation_behaviour.py +7 -5
- rapidata/rapidata_client/utils/__init__.py +3 -0
- rapidata/rapidata_client/utils/threaded_uploader.py +153 -0
- rapidata/rapidata_client/validation/__init__.py +2 -0
- rapidata/rapidata_client/validation/rapidata_validation_set.py +68 -21
- rapidata/rapidata_client/validation/rapids/__init__.py +2 -0
- rapidata/rapidata_client/validation/rapids/_validation_rapid_uploader.py +48 -0
- rapidata/rapidata_client/validation/rapids/box.py +37 -12
- rapidata/rapidata_client/validation/rapids/rapids.py +28 -109
- rapidata/rapidata_client/validation/rapids/rapids_manager.py +369 -211
- rapidata/rapidata_client/validation/validation_set_manager.py +417 -294
- rapidata/rapidata_client/workflow/__init__.py +2 -2
- rapidata/rapidata_client/workflow/_base_workflow.py +17 -26
- rapidata/rapidata_client/workflow/_classify_workflow.py +44 -17
- rapidata/rapidata_client/workflow/_compare_workflow.py +33 -14
- rapidata/rapidata_client/workflow/_draw_workflow.py +35 -13
- rapidata/rapidata_client/workflow/_evaluation_workflow.py +20 -6
- rapidata/rapidata_client/workflow/_free_text_workflow.py +34 -15
- rapidata/rapidata_client/workflow/_locate_workflow.py +35 -13
- rapidata/rapidata_client/workflow/_multi_ranking_workflow.py +90 -0
- rapidata/rapidata_client/workflow/_select_words_workflow.py +38 -32
- rapidata/rapidata_client/workflow/_timestamp_workflow.py +35 -13
- rapidata/service/__init__.py +0 -1
- rapidata/service/credential_manager.py +1 -1
- rapidata/service/openapi_service.py +99 -23
- rapidata/types/__init__.py +149 -0
- rapidata-3.0.0a8.dist-info/METADATA +32 -0
- rapidata-3.0.0a8.dist-info/RECORD +1083 -0
- {rapidata-2.37.0.dist-info → rapidata-3.0.0a8.dist-info}/WHEEL +1 -1
- rapidata/rapidata_client/country_codes/__init__.py +0 -1
- rapidata/rapidata_client/country_codes/country_codes.py +0 -19
- rapidata/rapidata_client/datapoints/assets/_base_asset.py +0 -11
- rapidata/rapidata_client/datapoints/assets/_media_asset.py +0 -318
- rapidata/rapidata_client/datapoints/assets/_multi_asset.py +0 -61
- rapidata/rapidata_client/datapoints/assets/_sessions.py +0 -40
- rapidata/rapidata_client/datapoints/assets/_text_asset.py +0 -34
- rapidata/rapidata_client/datapoints/assets/data_type_enum.py +0 -8
- rapidata/rapidata_client/datapoints/metadata/_media_asset_metadata.py +0 -22
- rapidata/rapidata_client/datapoints/metadata/_prompt_metadata.py +0 -18
- rapidata/rapidata_client/logging/__init__.py +0 -2
- rapidata/rapidata_client/logging/logger.py +0 -122
- rapidata/rapidata_client/logging/output_manager.py +0 -20
- rapidata/rapidata_client/order/_rapidata_dataset.py +0 -447
- rapidata/rapidata_client/workflow/_ranking_workflow.py +0 -71
- rapidata/service/local_file_service.py +0 -25
- rapidata-2.37.0.dist-info/METADATA +0 -35
- rapidata-2.37.0.dist-info/RECORD +0 -687
- {rapidata-2.37.0.dist-info → rapidata-3.0.0a8.dist-info/licenses}/LICENSE +0 -0
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
from
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import time
|
|
4
|
+
import urllib.parse
|
|
5
|
+
import webbrowser
|
|
6
|
+
from colorama import Fore
|
|
7
|
+
from typing import Literal, TYPE_CHECKING
|
|
2
8
|
from rapidata.api_client import QueryModel
|
|
3
9
|
from rapidata.rapidata_client.validation.rapidata_validation_set import (
|
|
4
10
|
RapidataValidationSet,
|
|
@@ -8,11 +14,6 @@ from rapidata.api_client.models.create_validation_set_model import (
|
|
|
8
14
|
)
|
|
9
15
|
from rapidata.service.openapi_service import OpenAPIService
|
|
10
16
|
from rapidata.rapidata_client.validation.rapids.rapids_manager import RapidsManager
|
|
11
|
-
from rapidata.rapidata_client.validation.rapids.rapids import Rapid
|
|
12
|
-
from rapidata.rapidata_client.datapoints.metadata import (
|
|
13
|
-
PromptMetadata,
|
|
14
|
-
MediaAssetMetadata,
|
|
15
|
-
)
|
|
16
17
|
|
|
17
18
|
from rapidata.api_client.models.page_info import PageInfo
|
|
18
19
|
from rapidata.api_client.models.root_filter import RootFilter
|
|
@@ -23,17 +24,20 @@ from rapidata.api_client.models.filter_operator import FilterOperator
|
|
|
23
24
|
|
|
24
25
|
from rapidata.rapidata_client.validation.rapids.box import Box
|
|
25
26
|
|
|
26
|
-
from rapidata.rapidata_client.
|
|
27
|
+
from rapidata.rapidata_client.config import (
|
|
27
28
|
logger,
|
|
28
29
|
managed_print,
|
|
29
|
-
|
|
30
|
+
rapidata_config,
|
|
31
|
+
tracer,
|
|
30
32
|
)
|
|
31
33
|
from tqdm import tqdm
|
|
32
|
-
from rapidata.rapidata_client.workflow import Workflow
|
|
33
|
-
from rapidata.rapidata_client.datapoints._datapoint import Datapoint
|
|
34
34
|
from rapidata.rapidata_client.validation.rapids.rapids import Rapid
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
|
|
36
|
+
if TYPE_CHECKING:
|
|
37
|
+
from rapidata.rapidata_client.workflow import Workflow
|
|
38
|
+
from rapidata.rapidata_client.datapoints._datapoint import Datapoint
|
|
39
|
+
from rapidata.rapidata_client.settings._rapidata_setting import RapidataSetting
|
|
40
|
+
from typing import Sequence
|
|
37
41
|
|
|
38
42
|
|
|
39
43
|
class ValidationSetManager:
|
|
@@ -45,28 +49,17 @@ class ValidationSetManager:
|
|
|
45
49
|
"""
|
|
46
50
|
|
|
47
51
|
def __init__(self, openapi_service: OpenAPIService) -> None:
|
|
48
|
-
self.
|
|
49
|
-
self.rapid = RapidsManager()
|
|
52
|
+
self._openapi_service = openapi_service
|
|
53
|
+
self.rapid = RapidsManager(openapi_service)
|
|
50
54
|
logger.debug("ValidationSetManager initialized")
|
|
51
55
|
|
|
52
|
-
def
|
|
53
|
-
self,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
rapids: list[Rapid] = []
|
|
60
|
-
for datapoint in datapoints:
|
|
61
|
-
rapids.append(
|
|
62
|
-
Rapid(
|
|
63
|
-
asset=datapoint.asset,
|
|
64
|
-
payload=workflow._to_payload(datapoint),
|
|
65
|
-
metadata=datapoint.metadata,
|
|
66
|
-
settings=settings,
|
|
67
|
-
)
|
|
68
|
-
)
|
|
69
|
-
return self._submit(name=order_name, rapids=rapids, dimensions=[])
|
|
56
|
+
def _get_total_and_labeled_rapids_count(
|
|
57
|
+
self, validation_set_id: str
|
|
58
|
+
) -> tuple[int, int]:
|
|
59
|
+
uploaded_rapids = self._openapi_service.validation_api.validation_set_validation_set_id_rapids_get(
|
|
60
|
+
validation_set_id=validation_set_id
|
|
61
|
+
).items
|
|
62
|
+
return len(uploaded_rapids), sum(1 for rapid in uploaded_rapids if rapid.truth)
|
|
70
63
|
|
|
71
64
|
def create_classification_set(
|
|
72
65
|
self,
|
|
@@ -111,50 +104,51 @@ class ValidationSetManager:
|
|
|
111
104
|
```
|
|
112
105
|
This would mean: first datapoint correct answer is "yes", second datapoint is "no" or "maybe"
|
|
113
106
|
"""
|
|
114
|
-
|
|
115
|
-
|
|
107
|
+
with tracer.start_as_current_span(
|
|
108
|
+
"ValidationSetManager.create_classification_set"
|
|
109
|
+
):
|
|
110
|
+
if not datapoints:
|
|
111
|
+
raise ValueError("Datapoints cannot be empty")
|
|
116
112
|
|
|
117
|
-
|
|
118
|
-
|
|
113
|
+
if len(datapoints) != len(truths):
|
|
114
|
+
raise ValueError("The number of datapoints and truths must be equal")
|
|
119
115
|
|
|
120
|
-
|
|
121
|
-
|
|
116
|
+
if not all([isinstance(truth, (list, tuple)) for truth in truths]):
|
|
117
|
+
raise ValueError("Truths must be a list of lists or tuples")
|
|
122
118
|
|
|
123
|
-
|
|
124
|
-
|
|
119
|
+
if contexts and len(contexts) != len(datapoints):
|
|
120
|
+
raise ValueError("The number of contexts and datapoints must be equal")
|
|
125
121
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
122
|
+
if media_contexts and len(media_contexts) != len(datapoints):
|
|
123
|
+
raise ValueError(
|
|
124
|
+
"The number of media contexts and datapoints must be equal"
|
|
125
|
+
)
|
|
130
126
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
127
|
+
if explanations and len(explanations) != len(datapoints):
|
|
128
|
+
raise ValueError(
|
|
129
|
+
"The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
|
|
130
|
+
)
|
|
135
131
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
explanation=explanations[i] if explanations != None else None,
|
|
132
|
+
logger.debug("Creating classification rapids")
|
|
133
|
+
rapids: list[Rapid] = []
|
|
134
|
+
for i in range(len(datapoints)):
|
|
135
|
+
rapids.append(
|
|
136
|
+
self.rapid.classification_rapid(
|
|
137
|
+
instruction=instruction,
|
|
138
|
+
answer_options=answer_options,
|
|
139
|
+
datapoint=datapoints[i],
|
|
140
|
+
truths=truths[i],
|
|
141
|
+
data_type=data_type,
|
|
142
|
+
context=contexts[i] if contexts != None else None,
|
|
143
|
+
media_context=(
|
|
144
|
+
media_contexts[i] if media_contexts != None else None
|
|
145
|
+
),
|
|
146
|
+
explanation=explanations[i] if explanations != None else None,
|
|
147
|
+
)
|
|
153
148
|
)
|
|
154
|
-
)
|
|
155
149
|
|
|
156
|
-
|
|
157
|
-
|
|
150
|
+
logger.debug("Submitting classification rapids")
|
|
151
|
+
return self._submit(name=name, rapids=rapids, dimensions=dimensions)
|
|
158
152
|
|
|
159
153
|
def create_compare_set(
|
|
160
154
|
self,
|
|
@@ -198,49 +192,48 @@ class ValidationSetManager:
|
|
|
198
192
|
```
|
|
199
193
|
This would mean: first comparison image1.jpg has a cat, second comparison image4.jpg has a cat
|
|
200
194
|
"""
|
|
201
|
-
|
|
202
|
-
|
|
195
|
+
with tracer.start_as_current_span("ValidationSetManager.create_compare_set"):
|
|
196
|
+
if not datapoints:
|
|
197
|
+
raise ValueError("Datapoints cannot be empty")
|
|
203
198
|
|
|
204
|
-
|
|
205
|
-
|
|
199
|
+
if len(datapoints) != len(truths):
|
|
200
|
+
raise ValueError("The number of datapoints and truths must be equal")
|
|
206
201
|
|
|
207
|
-
|
|
208
|
-
|
|
202
|
+
if not all([isinstance(truth, str) for truth in truths]):
|
|
203
|
+
raise ValueError("Truths must be a list of strings")
|
|
209
204
|
|
|
210
|
-
|
|
211
|
-
|
|
205
|
+
if contexts and len(contexts) != len(datapoints):
|
|
206
|
+
raise ValueError("The number of contexts and datapoints must be equal")
|
|
212
207
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
208
|
+
if media_contexts and len(media_contexts) != len(datapoints):
|
|
209
|
+
raise ValueError(
|
|
210
|
+
"The number of media contexts and datapoints must be equal"
|
|
211
|
+
)
|
|
217
212
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
213
|
+
if explanation and len(explanation) != len(datapoints):
|
|
214
|
+
raise ValueError(
|
|
215
|
+
"The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
|
|
216
|
+
)
|
|
222
217
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
explanation=explanation[i] if explanation != None else None,
|
|
218
|
+
logger.debug("Creating comparison rapids")
|
|
219
|
+
rapids: list[Rapid] = []
|
|
220
|
+
for i in range(len(datapoints)):
|
|
221
|
+
rapids.append(
|
|
222
|
+
self.rapid.compare_rapid(
|
|
223
|
+
instruction=instruction,
|
|
224
|
+
truth=truths[i],
|
|
225
|
+
datapoint=datapoints[i],
|
|
226
|
+
data_type=data_type,
|
|
227
|
+
context=contexts[i] if contexts != None else None,
|
|
228
|
+
media_context=(
|
|
229
|
+
media_contexts[i] if media_contexts != None else None
|
|
230
|
+
),
|
|
231
|
+
explanation=explanation[i] if explanation != None else None,
|
|
232
|
+
)
|
|
239
233
|
)
|
|
240
|
-
)
|
|
241
234
|
|
|
242
|
-
|
|
243
|
-
|
|
235
|
+
logger.debug("Submitting comparison rapids")
|
|
236
|
+
return self._submit(name=name, rapids=rapids, dimensions=dimensions)
|
|
244
237
|
|
|
245
238
|
def create_select_words_set(
|
|
246
239
|
self,
|
|
@@ -280,39 +273,42 @@ class ValidationSetManager:
|
|
|
280
273
|
```
|
|
281
274
|
This would mean: first datapoint the correct words are "this" and "example", second datapoint is "with"
|
|
282
275
|
"""
|
|
283
|
-
|
|
284
|
-
|
|
276
|
+
with tracer.start_as_current_span(
|
|
277
|
+
"ValidationSetManager.create_select_words_set"
|
|
278
|
+
):
|
|
279
|
+
if not datapoints:
|
|
280
|
+
raise ValueError("Datapoints cannot be empty")
|
|
285
281
|
|
|
286
|
-
|
|
287
|
-
|
|
282
|
+
if not all([isinstance(truth, (list, tuple)) for truth in truths]):
|
|
283
|
+
raise ValueError("Truths must be a list of lists or tuples")
|
|
288
284
|
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
285
|
+
if len(datapoints) != len(truths) or len(datapoints) != len(sentences):
|
|
286
|
+
raise ValueError(
|
|
287
|
+
"The number of datapoints, truths, and sentences must be equal"
|
|
288
|
+
)
|
|
293
289
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
290
|
+
if explanation and len(explanation) != len(datapoints):
|
|
291
|
+
raise ValueError(
|
|
292
|
+
"The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
|
|
293
|
+
)
|
|
298
294
|
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
295
|
+
logger.debug("Creating select words rapids")
|
|
296
|
+
rapids: list[Rapid] = []
|
|
297
|
+
for i in range(len(datapoints)):
|
|
298
|
+
rapids.append(
|
|
299
|
+
self.rapid.select_words_rapid(
|
|
300
|
+
instruction=instruction,
|
|
301
|
+
truths=truths[i],
|
|
302
|
+
datapoint=datapoints[i],
|
|
303
|
+
sentence=sentences[i],
|
|
304
|
+
required_precision=required_precision,
|
|
305
|
+
required_completeness=required_completeness,
|
|
306
|
+
explanation=explanation[i] if explanation != None else None,
|
|
307
|
+
)
|
|
311
308
|
)
|
|
312
|
-
)
|
|
313
309
|
|
|
314
|
-
|
|
315
|
-
|
|
310
|
+
logger.debug("Submitting select words rapids")
|
|
311
|
+
return self._submit(name=name, rapids=rapids, dimensions=dimensions)
|
|
316
312
|
|
|
317
313
|
def create_locate_set(
|
|
318
314
|
self,
|
|
@@ -349,49 +345,47 @@ class ValidationSetManager:
|
|
|
349
345
|
```
|
|
350
346
|
This would mean: first datapoint the object is in the top left corner, second datapoint the object is in the center
|
|
351
347
|
"""
|
|
352
|
-
|
|
353
|
-
|
|
348
|
+
with tracer.start_as_current_span("ValidationSetManager.create_locate_set"):
|
|
349
|
+
if not datapoints:
|
|
350
|
+
raise ValueError("Datapoints cannot be empty")
|
|
354
351
|
|
|
355
|
-
|
|
356
|
-
|
|
352
|
+
if len(datapoints) != len(truths):
|
|
353
|
+
raise ValueError("The number of datapoints and truths must be equal")
|
|
357
354
|
|
|
358
|
-
|
|
359
|
-
|
|
355
|
+
if not all([isinstance(truth, (list, tuple)) for truth in truths]):
|
|
356
|
+
raise ValueError("Truths must be a list of lists or tuples")
|
|
360
357
|
|
|
361
|
-
|
|
362
|
-
|
|
358
|
+
if contexts and len(contexts) != len(datapoints):
|
|
359
|
+
raise ValueError("The number of contexts and datapoints must be equal")
|
|
363
360
|
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
361
|
+
if media_contexts and len(media_contexts) != len(datapoints):
|
|
362
|
+
raise ValueError(
|
|
363
|
+
"The number of media contexts and datapoints must be equal"
|
|
364
|
+
)
|
|
368
365
|
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
366
|
+
if explanation and len(explanation) != len(datapoints):
|
|
367
|
+
raise ValueError(
|
|
368
|
+
"The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
|
|
369
|
+
)
|
|
373
370
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
metadata=rapid_metadata,
|
|
389
|
-
explanation=explanation[i] if explanation != None else None,
|
|
371
|
+
logger.debug("Creating locate rapids")
|
|
372
|
+
rapids: list[Rapid] = []
|
|
373
|
+
for i in range(len(datapoints)):
|
|
374
|
+
rapids.append(
|
|
375
|
+
self.rapid.locate_rapid(
|
|
376
|
+
instruction=instruction,
|
|
377
|
+
truths=truths[i],
|
|
378
|
+
datapoint=datapoints[i],
|
|
379
|
+
context=contexts[i] if contexts != None else None,
|
|
380
|
+
media_context=(
|
|
381
|
+
media_contexts[i] if media_contexts != None else None
|
|
382
|
+
),
|
|
383
|
+
explanation=explanation[i] if explanation != None else None,
|
|
384
|
+
)
|
|
390
385
|
)
|
|
391
|
-
)
|
|
392
386
|
|
|
393
|
-
|
|
394
|
-
|
|
387
|
+
logger.debug("Submitting locate rapids")
|
|
388
|
+
return self._submit(name=name, rapids=rapids, dimensions=dimensions)
|
|
395
389
|
|
|
396
390
|
def create_draw_set(
|
|
397
391
|
self,
|
|
@@ -428,48 +422,47 @@ class ValidationSetManager:
|
|
|
428
422
|
```
|
|
429
423
|
This would mean: first datapoint the object is in the top left corner, second datapoint the object is in the center
|
|
430
424
|
"""
|
|
431
|
-
|
|
432
|
-
|
|
425
|
+
with tracer.start_as_current_span("ValidationSetManager.create_draw_set"):
|
|
426
|
+
if not datapoints:
|
|
427
|
+
raise ValueError("Datapoints cannot be empty")
|
|
433
428
|
|
|
434
|
-
|
|
435
|
-
|
|
429
|
+
if len(datapoints) != len(truths):
|
|
430
|
+
raise ValueError("The number of datapoints and truths must be equal")
|
|
436
431
|
|
|
437
|
-
|
|
438
|
-
|
|
432
|
+
if not all([isinstance(truth, (list, tuple)) for truth in truths]):
|
|
433
|
+
raise ValueError("Truths must be a list of lists or tuples")
|
|
439
434
|
|
|
440
|
-
|
|
441
|
-
|
|
435
|
+
if contexts and len(contexts) != len(datapoints):
|
|
436
|
+
raise ValueError("The number of contexts and datapoints must be equal")
|
|
442
437
|
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
438
|
+
if media_contexts and len(media_contexts) != len(datapoints):
|
|
439
|
+
raise ValueError(
|
|
440
|
+
"The number of media contexts and datapoints must be equal"
|
|
441
|
+
)
|
|
447
442
|
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
443
|
+
if explanation and len(explanation) != len(datapoints):
|
|
444
|
+
raise ValueError(
|
|
445
|
+
"The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
|
|
446
|
+
)
|
|
452
447
|
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
explanation=explanation[i] if explanation != None else None,
|
|
448
|
+
logger.debug("Creating draw rapids")
|
|
449
|
+
rapids: list[Rapid] = []
|
|
450
|
+
for i in range(len(datapoints)):
|
|
451
|
+
rapids.append(
|
|
452
|
+
self.rapid.draw_rapid(
|
|
453
|
+
instruction=instruction,
|
|
454
|
+
truths=truths[i],
|
|
455
|
+
datapoint=datapoints[i],
|
|
456
|
+
context=contexts[i] if contexts != None else None,
|
|
457
|
+
media_context=(
|
|
458
|
+
media_contexts[i] if media_contexts != None else None
|
|
459
|
+
),
|
|
460
|
+
explanation=explanation[i] if explanation != None else None,
|
|
461
|
+
)
|
|
468
462
|
)
|
|
469
|
-
)
|
|
470
463
|
|
|
471
|
-
|
|
472
|
-
|
|
464
|
+
logger.debug("Submitting draw rapids")
|
|
465
|
+
return self._submit(name=name, rapids=rapids, dimensions=dimensions)
|
|
473
466
|
|
|
474
467
|
def create_timestamp_set(
|
|
475
468
|
self,
|
|
@@ -507,48 +500,47 @@ class ValidationSetManager:
|
|
|
507
500
|
```
|
|
508
501
|
This would mean: first datapoint the correct interval is from 0 to 10, second datapoint the correct interval is from 20 to 30
|
|
509
502
|
"""
|
|
510
|
-
|
|
511
|
-
|
|
503
|
+
with tracer.start_as_current_span("ValidationSetManager.create_timestamp_set"):
|
|
504
|
+
if not datapoints:
|
|
505
|
+
raise ValueError("Datapoints cannot be empty")
|
|
512
506
|
|
|
513
|
-
|
|
514
|
-
|
|
507
|
+
if len(datapoints) != len(truths):
|
|
508
|
+
raise ValueError("The number of datapoints and truths must be equal")
|
|
515
509
|
|
|
516
|
-
|
|
517
|
-
|
|
510
|
+
if not all([isinstance(truth, (list, tuple)) for truth in truths]):
|
|
511
|
+
raise ValueError("Truths must be a list of lists or tuples")
|
|
518
512
|
|
|
519
|
-
|
|
520
|
-
|
|
513
|
+
if contexts and len(contexts) != len(datapoints):
|
|
514
|
+
raise ValueError("The number of contexts and datapoints must be equal")
|
|
521
515
|
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
516
|
+
if media_contexts and len(media_contexts) != len(datapoints):
|
|
517
|
+
raise ValueError(
|
|
518
|
+
"The number of media contexts and datapoints must be equal"
|
|
519
|
+
)
|
|
526
520
|
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
521
|
+
if explanation and len(explanation) != len(datapoints):
|
|
522
|
+
raise ValueError(
|
|
523
|
+
"The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
|
|
524
|
+
)
|
|
531
525
|
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
explanation=explanation[i] if explanation != None else None,
|
|
526
|
+
logger.debug("Creating timestamp rapids")
|
|
527
|
+
rapids: list[Rapid] = []
|
|
528
|
+
for i in range(len(datapoints)):
|
|
529
|
+
rapids.append(
|
|
530
|
+
self.rapid.timestamp_rapid(
|
|
531
|
+
instruction=instruction,
|
|
532
|
+
truths=truths[i],
|
|
533
|
+
datapoint=datapoints[i],
|
|
534
|
+
context=contexts[i] if contexts != None else None,
|
|
535
|
+
media_context=(
|
|
536
|
+
media_contexts[i] if media_contexts != None else None
|
|
537
|
+
),
|
|
538
|
+
explanation=explanation[i] if explanation != None else None,
|
|
539
|
+
)
|
|
547
540
|
)
|
|
548
|
-
)
|
|
549
541
|
|
|
550
|
-
|
|
551
|
-
|
|
542
|
+
logger.debug("Submitting timestamp rapids")
|
|
543
|
+
return self._submit(name=name, rapids=rapids, dimensions=dimensions)
|
|
552
544
|
|
|
553
545
|
def create_mixed_set(
|
|
554
546
|
self,
|
|
@@ -563,20 +555,18 @@ class ValidationSetManager:
|
|
|
563
555
|
rapids (list[Rapid]): The list of rapids to add to the validation set.
|
|
564
556
|
dimensions (list[str], optional): The dimensions to add to the validation set accross which users will be tracked. Defaults to [] which is the default dimension.
|
|
565
557
|
"""
|
|
566
|
-
|
|
567
|
-
|
|
558
|
+
with tracer.start_as_current_span("ValidationSetManager.create_mixed_set"):
|
|
559
|
+
if not rapids:
|
|
560
|
+
raise ValueError("Rapids cannot be empty")
|
|
568
561
|
|
|
569
|
-
|
|
562
|
+
return self._submit(name=name, rapids=rapids, dimensions=dimensions)
|
|
570
563
|
|
|
571
564
|
def _submit(
|
|
572
|
-
self,
|
|
573
|
-
name: str,
|
|
574
|
-
rapids: list[Rapid],
|
|
575
|
-
dimensions: list[str] | None,
|
|
565
|
+
self, name: str, rapids: list[Rapid], dimensions: list[str]
|
|
576
566
|
) -> RapidataValidationSet:
|
|
577
567
|
logger.debug("Creating validation set")
|
|
578
568
|
validation_set_id = (
|
|
579
|
-
self.
|
|
569
|
+
self._openapi_service.validation_api.validation_set_post(
|
|
580
570
|
create_validation_set_model=CreateValidationSetModel(name=name)
|
|
581
571
|
)
|
|
582
572
|
).validation_set_id
|
|
@@ -591,31 +581,43 @@ class ValidationSetManager:
|
|
|
591
581
|
validation_set = RapidataValidationSet(
|
|
592
582
|
name=name,
|
|
593
583
|
validation_set_id=validation_set_id,
|
|
594
|
-
|
|
584
|
+
dimensions=dimensions,
|
|
585
|
+
openapi_service=self._openapi_service,
|
|
595
586
|
)
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
try:
|
|
605
|
-
validation_set.add_rapid(rapid)
|
|
606
|
-
except Exception:
|
|
607
|
-
failed_rapids.append(rapid.asset)
|
|
608
|
-
|
|
609
|
-
if failed_rapids:
|
|
610
|
-
logger.error(
|
|
611
|
-
"Failed to add %s datapoints to validation set: %s",
|
|
612
|
-
len(failed_rapids),
|
|
613
|
-
failed_rapids,
|
|
614
|
-
)
|
|
615
|
-
raise RuntimeError(
|
|
616
|
-
f"Failed to add {len(failed_rapids)} datapoints to validation set: {failed_rapids}"
|
|
587
|
+
with tracer.start_as_current_span("Adding rapids to validation set"):
|
|
588
|
+
logger.debug("Adding rapids to validation set")
|
|
589
|
+
failed_rapids = []
|
|
590
|
+
|
|
591
|
+
progress_bar = tqdm(
|
|
592
|
+
total=len(rapids),
|
|
593
|
+
desc="Uploading validation tasks",
|
|
594
|
+
disable=rapidata_config.logging.silent_mode,
|
|
617
595
|
)
|
|
618
596
|
|
|
597
|
+
for rapid in rapids:
|
|
598
|
+
try:
|
|
599
|
+
validation_set.add_rapid(rapid)
|
|
600
|
+
progress_bar.update(1)
|
|
601
|
+
except Exception as e:
|
|
602
|
+
logger.error(
|
|
603
|
+
"Failed to add rapid %s to validation set.\nError: %s",
|
|
604
|
+
rapid.asset,
|
|
605
|
+
str(e),
|
|
606
|
+
)
|
|
607
|
+
failed_rapids.append(rapid.asset)
|
|
608
|
+
|
|
609
|
+
progress_bar.close()
|
|
610
|
+
|
|
611
|
+
if failed_rapids:
|
|
612
|
+
logger.error(
|
|
613
|
+
"Failed to add %s datapoints to validation set: %s",
|
|
614
|
+
len(failed_rapids),
|
|
615
|
+
failed_rapids,
|
|
616
|
+
)
|
|
617
|
+
raise RuntimeError(
|
|
618
|
+
f"Failed to add {len(failed_rapids)} datapoints to validation set: {failed_rapids}"
|
|
619
|
+
)
|
|
620
|
+
|
|
619
621
|
managed_print()
|
|
620
622
|
managed_print(
|
|
621
623
|
f"Validation set '{name}' created with ID {validation_set_id}\n",
|
|
@@ -628,6 +630,110 @@ class ValidationSetManager:
|
|
|
628
630
|
|
|
629
631
|
return validation_set
|
|
630
632
|
|
|
633
|
+
def _create_order_validation_set(
|
|
634
|
+
self,
|
|
635
|
+
workflow: Workflow,
|
|
636
|
+
name: str,
|
|
637
|
+
datapoints: list[Datapoint],
|
|
638
|
+
required_amount: int,
|
|
639
|
+
settings: Sequence[RapidataSetting] | None = None,
|
|
640
|
+
dimensions: list[str] = [],
|
|
641
|
+
) -> RapidataValidationSet:
|
|
642
|
+
with tracer.start_as_current_span(
|
|
643
|
+
"ValidationSetManager._create_order_validation_set"
|
|
644
|
+
):
|
|
645
|
+
rapids: list[Rapid] = []
|
|
646
|
+
for datapoint in workflow._format_datapoints(datapoints):
|
|
647
|
+
rapids.append(
|
|
648
|
+
Rapid(
|
|
649
|
+
asset=datapoint.asset,
|
|
650
|
+
payload=workflow._to_payload(datapoint),
|
|
651
|
+
context=datapoint.context,
|
|
652
|
+
media_context=datapoint.media_context,
|
|
653
|
+
data_type=datapoint.data_type,
|
|
654
|
+
settings=settings,
|
|
655
|
+
)
|
|
656
|
+
)
|
|
657
|
+
validation_set = RapidataValidationSet(
|
|
658
|
+
validation_set_id=self._openapi_service.validation_api.validation_set_post(
|
|
659
|
+
create_validation_set_model=CreateValidationSetModel(name=name)
|
|
660
|
+
).validation_set_id,
|
|
661
|
+
name=name,
|
|
662
|
+
dimensions=dimensions,
|
|
663
|
+
openapi_service=self._openapi_service,
|
|
664
|
+
)
|
|
665
|
+
|
|
666
|
+
managed_print()
|
|
667
|
+
managed_print(
|
|
668
|
+
Fore.YELLOW
|
|
669
|
+
+ f"A new validation set was created. Please annotate {required_amount} datapoint{('s' if required_amount != 1 else '')} before the order can run."
|
|
670
|
+
+ Fore.RESET
|
|
671
|
+
)
|
|
672
|
+
|
|
673
|
+
link = f"https://app.{self._openapi_service.environment}/validation-set/detail/{validation_set.id}/annotate?maxSize={len(datapoints)}&required={required_amount}"
|
|
674
|
+
could_open_browser = webbrowser.open(link)
|
|
675
|
+
if not could_open_browser:
|
|
676
|
+
encoded_url = urllib.parse.quote(link, safe="%/:=&?~#+!$,;'@()*[]")
|
|
677
|
+
managed_print(
|
|
678
|
+
Fore.RED
|
|
679
|
+
+ f"Please open this URL in your browser to annotate the validation set: '{encoded_url}'"
|
|
680
|
+
+ Fore.RESET
|
|
681
|
+
)
|
|
682
|
+
else:
|
|
683
|
+
managed_print(
|
|
684
|
+
Fore.YELLOW
|
|
685
|
+
+ f"Please annotate the validation set. \n'{link}'"
|
|
686
|
+
+ Fore.RESET
|
|
687
|
+
)
|
|
688
|
+
|
|
689
|
+
with tracer.start_as_current_span("Annotating validation set"):
|
|
690
|
+
progress_bar = tqdm(
|
|
691
|
+
total=required_amount,
|
|
692
|
+
desc="Annotate the validation set",
|
|
693
|
+
disable=rapidata_config.logging.silent_mode,
|
|
694
|
+
)
|
|
695
|
+
|
|
696
|
+
rapid_index = 0
|
|
697
|
+
while True:
|
|
698
|
+
total_rapids, labeled_rapids = (
|
|
699
|
+
self._get_total_and_labeled_rapids_count(validation_set.id)
|
|
700
|
+
)
|
|
701
|
+
|
|
702
|
+
progress_bar.n = labeled_rapids
|
|
703
|
+
progress_bar.refresh()
|
|
704
|
+
|
|
705
|
+
if labeled_rapids >= required_amount:
|
|
706
|
+
break
|
|
707
|
+
|
|
708
|
+
if total_rapids < required_amount and rapid_index >= len(rapids):
|
|
709
|
+
managed_print(
|
|
710
|
+
Fore.RED
|
|
711
|
+
+ f"""Warning: An order can only be started with at least {required_amount} annotated validation tasks. But only {labeled_rapids}/{required_amount} were annotated.
|
|
712
|
+
Either add clearer examples or turn off the 'autoValidationSetCreation' with:
|
|
713
|
+
|
|
714
|
+
from rapidata import rapidata_config
|
|
715
|
+
rapidata_config.order.autoValidationSetCreation = False"""
|
|
716
|
+
+ Fore.RESET
|
|
717
|
+
)
|
|
718
|
+
raise RuntimeError(
|
|
719
|
+
f"Not enough rapids annotated. Required: {required_amount}, Annotated: {labeled_rapids}"
|
|
720
|
+
)
|
|
721
|
+
|
|
722
|
+
if (
|
|
723
|
+
rapid_index < len(rapids)
|
|
724
|
+
and total_rapids - labeled_rapids <= required_amount * 2
|
|
725
|
+
):
|
|
726
|
+
validation_set.add_rapid(rapids[rapid_index])
|
|
727
|
+
rapid_index += 1
|
|
728
|
+
|
|
729
|
+
time.sleep(2)
|
|
730
|
+
|
|
731
|
+
progress_bar.close()
|
|
732
|
+
|
|
733
|
+
validation_set.update_dimensions(dimensions)
|
|
734
|
+
|
|
735
|
+
return validation_set
|
|
736
|
+
|
|
631
737
|
def get_validation_set_by_id(self, validation_set_id: str) -> RapidataValidationSet:
|
|
632
738
|
"""Get a validation set by ID.
|
|
633
739
|
|
|
@@ -638,53 +744,70 @@ class ValidationSetManager:
|
|
|
638
744
|
RapidataValidationSet: The ValidationSet instance.
|
|
639
745
|
"""
|
|
640
746
|
|
|
641
|
-
|
|
642
|
-
|
|
747
|
+
with tracer.start_as_current_span(
|
|
748
|
+
"ValidationSetManager.get_validation_set_by_id"
|
|
749
|
+
):
|
|
750
|
+
logger.debug("Getting validation set by ID: %s", validation_set_id)
|
|
751
|
+
validation_set = self._openapi_service.validation_api.validation_set_validation_set_id_get(
|
|
643
752
|
validation_set_id=validation_set_id
|
|
644
753
|
)
|
|
645
|
-
)
|
|
646
754
|
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
755
|
+
return RapidataValidationSet(
|
|
756
|
+
validation_set_id,
|
|
757
|
+
str(validation_set.name),
|
|
758
|
+
validation_set.dimensions,
|
|
759
|
+
self._openapi_service,
|
|
760
|
+
)
|
|
650
761
|
|
|
651
762
|
def find_validation_sets(
|
|
652
|
-
self, name: str = "", amount: int =
|
|
763
|
+
self, name: str = "", amount: int = 10
|
|
653
764
|
) -> list[RapidataValidationSet]:
|
|
654
765
|
"""Find validation sets by name.
|
|
655
766
|
|
|
656
767
|
Args:
|
|
657
768
|
name (str, optional): The name to search for. Defaults to "" to match with any set.
|
|
658
|
-
amount (int, optional): The amount of validation sets to return. Defaults to
|
|
769
|
+
amount (int, optional): The amount of validation sets to return. Defaults to 10.
|
|
659
770
|
|
|
660
771
|
Returns:
|
|
661
772
|
list[RapidataValidationSet]: The list of validation sets.
|
|
662
773
|
"""
|
|
774
|
+
with tracer.start_as_current_span("ValidationSetManager.find_validation_sets"):
|
|
775
|
+
logger.debug(
|
|
776
|
+
"Finding validation sets with name: %s and amount: %s", name, amount
|
|
777
|
+
)
|
|
663
778
|
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
779
|
+
validation_page_result = (
|
|
780
|
+
self._openapi_service.validation_api.validation_sets_get(
|
|
781
|
+
QueryModel(
|
|
782
|
+
page=PageInfo(index=1, size=amount),
|
|
783
|
+
filter=RootFilter(
|
|
784
|
+
filters=[
|
|
785
|
+
Filter(
|
|
786
|
+
field="Name",
|
|
787
|
+
operator=FilterOperator.CONTAINS,
|
|
788
|
+
value=name,
|
|
789
|
+
)
|
|
790
|
+
]
|
|
791
|
+
),
|
|
792
|
+
sortCriteria=[
|
|
793
|
+
SortCriterion(
|
|
794
|
+
direction=SortDirection.DESC, propertyName="CreatedAt"
|
|
674
795
|
)
|
|
675
|
-
]
|
|
676
|
-
)
|
|
677
|
-
sortCriteria=[
|
|
678
|
-
SortCriterion(
|
|
679
|
-
direction=SortDirection.DESC, propertyName="CreatedAt"
|
|
680
|
-
)
|
|
681
|
-
],
|
|
796
|
+
],
|
|
797
|
+
)
|
|
682
798
|
)
|
|
683
799
|
)
|
|
684
|
-
)
|
|
685
800
|
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
801
|
+
logger.debug("Validation sets found: %s", validation_page_result.items)
|
|
802
|
+
|
|
803
|
+
validation_sets = [
|
|
804
|
+
self.get_validation_set_by_id(str(validation_set.id))
|
|
805
|
+
for validation_set in validation_page_result.items
|
|
806
|
+
]
|
|
807
|
+
return validation_sets
|
|
808
|
+
|
|
809
|
+
def __str__(self) -> str:
|
|
810
|
+
return "ValidationSetManager"
|
|
811
|
+
|
|
812
|
+
def __repr__(self) -> str:
|
|
813
|
+
return self.__str__()
|