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,12 @@
|
|
|
1
1
|
from .rapidata_client import RapidataClient
|
|
2
|
+
from .audience import (
|
|
3
|
+
RapidataAudience,
|
|
4
|
+
RapidataAudienceManager,
|
|
5
|
+
)
|
|
6
|
+
from .order import RapidataOrderManager, RapidataOrder
|
|
7
|
+
from .job import RapidataJob, JobDefinition, JobManager
|
|
8
|
+
from .validation import ValidationSetManager, RapidataValidationSet, Box
|
|
9
|
+
from .results import RapidataResults
|
|
2
10
|
from .selection import (
|
|
3
11
|
DemographicSelection,
|
|
4
12
|
LabelingSelection,
|
|
@@ -13,10 +21,8 @@ from .datapoints import Datapoint
|
|
|
13
21
|
from .datapoints.metadata import (
|
|
14
22
|
PrivateTextMetadata,
|
|
15
23
|
PublicTextMetadata,
|
|
16
|
-
PromptMetadata,
|
|
17
24
|
SelectWordsMetadata,
|
|
18
25
|
)
|
|
19
|
-
from .datapoints.assets import MediaAsset, TextAsset, MultiAsset, RapidataDataTypes
|
|
20
26
|
from .settings import (
|
|
21
27
|
RapidataSettings,
|
|
22
28
|
TranslationBehaviourOptions,
|
|
@@ -27,11 +33,15 @@ from .settings import (
|
|
|
27
33
|
PlayVideoUntilTheEnd,
|
|
28
34
|
CustomSetting,
|
|
29
35
|
AllowNeitherBoth,
|
|
36
|
+
SwapContextInstruction,
|
|
37
|
+
MuteVideo,
|
|
30
38
|
)
|
|
31
|
-
from .country_codes import CountryCodes
|
|
32
39
|
from .filter import (
|
|
33
40
|
CountryFilter,
|
|
34
41
|
LanguageFilter,
|
|
42
|
+
NotFilter,
|
|
43
|
+
OrFilter,
|
|
44
|
+
AndFilter,
|
|
35
45
|
UserScoreFilter,
|
|
36
46
|
CampaignFilter,
|
|
37
47
|
AgeFilter,
|
|
@@ -39,13 +49,6 @@ from .filter import (
|
|
|
39
49
|
CustomFilter,
|
|
40
50
|
AgeGroup,
|
|
41
51
|
Gender,
|
|
42
|
-
NotFilter,
|
|
43
|
-
OrFilter,
|
|
44
|
-
ResponseCountFilter,
|
|
45
52
|
)
|
|
46
|
-
|
|
47
|
-
from .logging import configure_logger, logger, RapidataOutputManager
|
|
48
|
-
|
|
49
|
-
from .validation import Box
|
|
50
53
|
from .exceptions import FailedUploadException
|
|
51
|
-
from .config import rapidata_config
|
|
54
|
+
from .config import rapidata_config, logger, managed_print
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
from typing import Optional, Any
|
|
2
|
-
from rapidata.api_client.api_client import
|
|
2
|
+
from rapidata.api_client.api_client import (
|
|
3
|
+
ApiClient,
|
|
4
|
+
rest,
|
|
5
|
+
ApiResponse,
|
|
6
|
+
ApiResponseT,
|
|
7
|
+
)
|
|
3
8
|
from rapidata.api_client.exceptions import ApiException
|
|
4
9
|
import json
|
|
5
10
|
import threading
|
|
6
11
|
from contextlib import contextmanager
|
|
7
|
-
from rapidata.rapidata_client.
|
|
12
|
+
from rapidata.rapidata_client.config import logger, tracer
|
|
13
|
+
from opentelemetry import trace
|
|
14
|
+
from opentelemetry.trace import format_trace_id, format_span_id, Link, SpanContext
|
|
15
|
+
from opentelemetry.sdk.trace.id_generator import RandomIdGenerator
|
|
16
|
+
|
|
8
17
|
|
|
9
18
|
# Thread-local storage for controlling error logging
|
|
10
19
|
_thread_local = threading.local()
|
|
@@ -91,6 +100,114 @@ class RapidataError(Exception):
|
|
|
91
100
|
class RapidataApiClient(ApiClient):
|
|
92
101
|
"""Custom API client that wraps errors in RapidataError."""
|
|
93
102
|
|
|
103
|
+
def __init__(self, *args, **kwargs):
|
|
104
|
+
super().__init__(*args, **kwargs)
|
|
105
|
+
self.id_generator = RandomIdGenerator()
|
|
106
|
+
|
|
107
|
+
def call_api(
|
|
108
|
+
self,
|
|
109
|
+
method,
|
|
110
|
+
url,
|
|
111
|
+
header_params=None,
|
|
112
|
+
body=None,
|
|
113
|
+
post_params=None,
|
|
114
|
+
_request_timeout=None,
|
|
115
|
+
) -> rest.RESTResponse:
|
|
116
|
+
# Get the current span from OpenTelemetry
|
|
117
|
+
current_span = trace.get_current_span()
|
|
118
|
+
|
|
119
|
+
# Initialize header_params if it's None
|
|
120
|
+
if header_params is None:
|
|
121
|
+
header_params = {}
|
|
122
|
+
|
|
123
|
+
# Add tracing headers if we have a valid span
|
|
124
|
+
if not current_span.is_recording():
|
|
125
|
+
return super().call_api(
|
|
126
|
+
method,
|
|
127
|
+
url,
|
|
128
|
+
header_params,
|
|
129
|
+
body,
|
|
130
|
+
post_params,
|
|
131
|
+
_request_timeout,
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
current_span_context = current_span.get_span_context()
|
|
135
|
+
|
|
136
|
+
# Generate a new trace ID for backend communication
|
|
137
|
+
# This separates the backend trace from the SDK trace
|
|
138
|
+
backend_trace_id = self.id_generator.generate_trace_id()
|
|
139
|
+
backend_span_id = self.id_generator.generate_span_id()
|
|
140
|
+
|
|
141
|
+
# Create a new span context for the backend trace
|
|
142
|
+
backend_span_context = SpanContext(
|
|
143
|
+
trace_id=backend_trace_id,
|
|
144
|
+
span_id=backend_span_id,
|
|
145
|
+
is_remote=True,
|
|
146
|
+
trace_flags=current_span_context.trace_flags,
|
|
147
|
+
)
|
|
148
|
+
|
|
149
|
+
# Create a link from current SDK span to the backend trace
|
|
150
|
+
link_to_backend = Link(backend_span_context)
|
|
151
|
+
|
|
152
|
+
# Create a link from backend trace back to the original SDK span
|
|
153
|
+
link_back_to_sdk = Link(current_span_context)
|
|
154
|
+
|
|
155
|
+
# Create a span in the current SDK trace that links to the backend
|
|
156
|
+
with tracer.start_span(
|
|
157
|
+
f"{str(method).upper()} {url}",
|
|
158
|
+
links=[link_to_backend],
|
|
159
|
+
) as sdk_request_span:
|
|
160
|
+
# Set attributes on the SDK span
|
|
161
|
+
sdk_request_span.set_attribute("http.method", method)
|
|
162
|
+
sdk_request_span.set_attribute("http.target", url)
|
|
163
|
+
sdk_request_span.set_attribute(
|
|
164
|
+
"rapidata.backend_trace_id", format_trace_id(backend_trace_id)
|
|
165
|
+
)
|
|
166
|
+
sdk_request_span.set_attribute(
|
|
167
|
+
"rapidata.original_trace_id",
|
|
168
|
+
format_trace_id(current_span_context.trace_id),
|
|
169
|
+
)
|
|
170
|
+
|
|
171
|
+
# Now create the initial span for the backend trace that will be sent
|
|
172
|
+
# This span will be the starting point for the backend trace
|
|
173
|
+
with tracer.start_span(
|
|
174
|
+
f"{str(method).upper()} {url}",
|
|
175
|
+
context=trace.set_span_in_context(
|
|
176
|
+
trace.NonRecordingSpan(backend_span_context)
|
|
177
|
+
),
|
|
178
|
+
links=[link_back_to_sdk],
|
|
179
|
+
) as backend_initial_span:
|
|
180
|
+
# Set attributes on the backend initial span
|
|
181
|
+
backend_initial_span.set_attribute("http.method", method)
|
|
182
|
+
backend_initial_span.set_attribute("http.target", url)
|
|
183
|
+
backend_initial_span.set_attribute(
|
|
184
|
+
"rapidata.trace_type", "backend_start"
|
|
185
|
+
)
|
|
186
|
+
backend_initial_span.set_attribute(
|
|
187
|
+
"rapidata.sdk_trace_id",
|
|
188
|
+
format_trace_id(current_span_context.trace_id),
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
# Format the traceparent header with the backend trace ID
|
|
192
|
+
# The backend will receive this and continue the trace
|
|
193
|
+
header_params["traceparent"] = (
|
|
194
|
+
"00-"
|
|
195
|
+
+ format_trace_id(backend_trace_id)
|
|
196
|
+
+ "-"
|
|
197
|
+
+ format_span_id(backend_initial_span.get_span_context().span_id)
|
|
198
|
+
+ "-"
|
|
199
|
+
+ f"{backend_span_context.trace_flags:02x}"
|
|
200
|
+
)
|
|
201
|
+
|
|
202
|
+
return super().call_api(
|
|
203
|
+
method,
|
|
204
|
+
url,
|
|
205
|
+
header_params,
|
|
206
|
+
body,
|
|
207
|
+
post_params,
|
|
208
|
+
_request_timeout,
|
|
209
|
+
)
|
|
210
|
+
|
|
94
211
|
def response_deserialize(
|
|
95
212
|
self,
|
|
96
213
|
response_data: rest.RESTResponse,
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
from typing import Literal
|
|
2
|
+
|
|
3
|
+
from rapidata.api_client.models.i_validation_truth_attach_category_truth import (
|
|
4
|
+
IValidationTruthAttachCategoryTruth,
|
|
5
|
+
)
|
|
6
|
+
from rapidata.api_client.models.i_rapid_payload_classify_payload import (
|
|
7
|
+
IRapidPayloadClassifyPayload,
|
|
8
|
+
)
|
|
9
|
+
from rapidata.api_client.models.classify_payload_category import ClassifyPayloadCategory
|
|
10
|
+
from rapidata.api_client.models.i_rapid_payload_compare_payload import (
|
|
11
|
+
IRapidPayloadComparePayload,
|
|
12
|
+
)
|
|
13
|
+
from rapidata.api_client.models.i_validation_truth_compare_truth import (
|
|
14
|
+
IValidationTruthCompareTruth,
|
|
15
|
+
)
|
|
16
|
+
from rapidata.service.openapi_service import OpenAPIService
|
|
17
|
+
from rapidata.api_client.models.i_rapid_payload import IRapidPayload
|
|
18
|
+
from rapidata.api_client.models.i_validation_truth import IValidationTruth
|
|
19
|
+
from rapidata.rapidata_client.datapoints._asset_uploader import AssetUploader
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class AudienceExampleHandler:
|
|
23
|
+
"""
|
|
24
|
+
Can be used to build different types of examples. That can then be added to Example sets
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
def __init__(self, openapi_service: OpenAPIService, audience_id: str):
|
|
28
|
+
self._openapi_service = openapi_service
|
|
29
|
+
self._audience_id = audience_id
|
|
30
|
+
self._asset_uploader = AssetUploader(openapi_service)
|
|
31
|
+
|
|
32
|
+
def add_classification_example(
|
|
33
|
+
self,
|
|
34
|
+
instruction: str,
|
|
35
|
+
answer_options: list[str],
|
|
36
|
+
datapoint: str,
|
|
37
|
+
truth: list[str],
|
|
38
|
+
data_type: Literal["media", "text"] = "media",
|
|
39
|
+
context: str | None = None,
|
|
40
|
+
media_context: str | None = None,
|
|
41
|
+
explanation: str | None = None,
|
|
42
|
+
) -> None:
|
|
43
|
+
"""add a classification example to the audience
|
|
44
|
+
|
|
45
|
+
Args:
|
|
46
|
+
instruction (str): The instruction/question to be shown to the labeler.
|
|
47
|
+
answer_options (list[str]): The options that the labeler can choose from to answer the question.
|
|
48
|
+
datapoint (str): The datapoint that the labeler will be labeling.
|
|
49
|
+
truts (list[str]): The correct answers to the question.
|
|
50
|
+
data_type (str, optional): The type of the datapoint. Defaults to "media" (any form of image, video or audio).
|
|
51
|
+
context (str, optional): The context is text that will be shown in addition to the instruction. Defaults to None.
|
|
52
|
+
media_context (str, optional): The media context is a link to an image / video that will be shown in addition to the instruction (can be combined with context). Defaults to None.
|
|
53
|
+
explanation (str, optional): The explanation that will be shown to the labeler if the answer is wrong. Defaults to None.
|
|
54
|
+
"""
|
|
55
|
+
from rapidata.api_client.models.add_rapid_to_audience_model import (
|
|
56
|
+
AddRapidToAudienceModel,
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
if not isinstance(truth, list):
|
|
60
|
+
raise ValueError("Truth must be a list of strings")
|
|
61
|
+
|
|
62
|
+
if not all(truth in answer_options for truth in truth):
|
|
63
|
+
raise ValueError("Truth must be part of the answer options")
|
|
64
|
+
|
|
65
|
+
if data_type == "media":
|
|
66
|
+
asset_input = self._asset_uploader.get_uploaded_asset_input(datapoint)
|
|
67
|
+
else:
|
|
68
|
+
asset_input = self._asset_uploader.get_uploaded_text_input(datapoint)
|
|
69
|
+
|
|
70
|
+
payload = IRapidPayload(
|
|
71
|
+
actual_instance=IRapidPayloadClassifyPayload(
|
|
72
|
+
_t="ClassifyPayload",
|
|
73
|
+
categories=[
|
|
74
|
+
ClassifyPayloadCategory(label=option, value=option)
|
|
75
|
+
for option in answer_options
|
|
76
|
+
],
|
|
77
|
+
title=instruction,
|
|
78
|
+
)
|
|
79
|
+
)
|
|
80
|
+
model_truth = IValidationTruth(
|
|
81
|
+
actual_instance=IValidationTruthAttachCategoryTruth(
|
|
82
|
+
correctCategories=truth, _t="AttachCategoryTruth"
|
|
83
|
+
)
|
|
84
|
+
)
|
|
85
|
+
|
|
86
|
+
self._openapi_service.audience_api.audience_audience_id_rapid_post(
|
|
87
|
+
audience_id=self._audience_id,
|
|
88
|
+
add_rapid_to_audience_model=AddRapidToAudienceModel(
|
|
89
|
+
asset=asset_input,
|
|
90
|
+
payload=payload,
|
|
91
|
+
truth=model_truth,
|
|
92
|
+
context=context,
|
|
93
|
+
contextAsset=(
|
|
94
|
+
self._asset_uploader.get_uploaded_asset_input(media_context)
|
|
95
|
+
if media_context
|
|
96
|
+
else None
|
|
97
|
+
),
|
|
98
|
+
explanation=explanation,
|
|
99
|
+
randomCorrectProbability=len(truth) / len(answer_options),
|
|
100
|
+
),
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
def add_compare_example(
|
|
104
|
+
self,
|
|
105
|
+
instruction: str,
|
|
106
|
+
truth: str,
|
|
107
|
+
datapoint: list[str],
|
|
108
|
+
data_type: Literal["media", "text"] = "media",
|
|
109
|
+
context: str | None = None,
|
|
110
|
+
media_context: str | None = None,
|
|
111
|
+
explanation: str | None = None,
|
|
112
|
+
) -> None:
|
|
113
|
+
"""add a compare example to the audience
|
|
114
|
+
|
|
115
|
+
Args:
|
|
116
|
+
instruction (str): The instruction that the labeler will be comparing the assets on.
|
|
117
|
+
truth (str): The correct answer to the comparison. (has to be one of the assets)
|
|
118
|
+
datapoint (list[str]): The two assets that the labeler will be comparing.
|
|
119
|
+
data_type (str, optional): The type of the datapoint. Defaults to "media" (any form of image, video or audio).
|
|
120
|
+
context (str, optional): The context is text that will be shown in addition to the instruction. Defaults to None.
|
|
121
|
+
media_context (str, optional): The media context is a link to an image / video that will be shown in addition to the instruction (can be combined with context). Defaults to None.
|
|
122
|
+
explanation (str, optional): The explanation that will be shown to the labeler if the answer is wrong. Defaults to None.
|
|
123
|
+
"""
|
|
124
|
+
from rapidata.api_client.models.add_rapid_to_audience_model import (
|
|
125
|
+
AddRapidToAudienceModel,
|
|
126
|
+
)
|
|
127
|
+
|
|
128
|
+
payload = IRapidPayload(
|
|
129
|
+
actual_instance=IRapidPayloadComparePayload(
|
|
130
|
+
_t="ComparePayload", criteria=instruction
|
|
131
|
+
)
|
|
132
|
+
)
|
|
133
|
+
model_truth = IValidationTruth(
|
|
134
|
+
actual_instance=IValidationTruthCompareTruth(
|
|
135
|
+
_t="CompareTruth", winnerId=truth
|
|
136
|
+
)
|
|
137
|
+
)
|
|
138
|
+
|
|
139
|
+
if data_type == "media":
|
|
140
|
+
asset_input = self._asset_uploader.get_uploaded_asset_input(datapoint)
|
|
141
|
+
else:
|
|
142
|
+
asset_input = self._asset_uploader.get_uploaded_text_input(datapoint)
|
|
143
|
+
|
|
144
|
+
if len(datapoint) != 2:
|
|
145
|
+
raise ValueError("Compare rapid requires exactly two media paths")
|
|
146
|
+
|
|
147
|
+
self._openapi_service.audience_api.audience_audience_id_rapid_post(
|
|
148
|
+
audience_id=self._audience_id,
|
|
149
|
+
add_rapid_to_audience_model=AddRapidToAudienceModel(
|
|
150
|
+
asset=asset_input,
|
|
151
|
+
payload=payload,
|
|
152
|
+
truth=model_truth,
|
|
153
|
+
context=context,
|
|
154
|
+
contextAsset=(
|
|
155
|
+
self._asset_uploader.get_uploaded_asset_input(media_context)
|
|
156
|
+
if media_context
|
|
157
|
+
else None
|
|
158
|
+
),
|
|
159
|
+
explanation=explanation,
|
|
160
|
+
randomCorrectProbability=0.5,
|
|
161
|
+
),
|
|
162
|
+
)
|
|
163
|
+
|
|
164
|
+
def __str__(self) -> str:
|
|
165
|
+
return "RapidsManager"
|
|
166
|
+
|
|
167
|
+
def __repr__(self) -> str:
|
|
168
|
+
return self.__str__()
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import TYPE_CHECKING, Literal
|
|
4
|
+
from rapidata.rapidata_client.config import logger, tracer, rapidata_config
|
|
5
|
+
from rapidata.rapidata_client.audience.audience_example_handler import (
|
|
6
|
+
AudienceExampleHandler,
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
if TYPE_CHECKING:
|
|
10
|
+
from rapidata.service.openapi_service import OpenAPIService
|
|
11
|
+
from rapidata.rapidata_client.filter import RapidataFilter
|
|
12
|
+
from rapidata.rapidata_client.job.job_definition import (
|
|
13
|
+
JobDefinition,
|
|
14
|
+
)
|
|
15
|
+
from rapidata.rapidata_client.job.rapidata_job import RapidataJob
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class RapidataAudience:
|
|
19
|
+
"""Represents a Rapidata audience.
|
|
20
|
+
|
|
21
|
+
An audience is a group of annotators that can be recruited based on example tasks and assigned jobs.
|
|
22
|
+
|
|
23
|
+
Attributes:
|
|
24
|
+
id (str): The unique identifier of the audience.
|
|
25
|
+
name (str): The name of the audience.
|
|
26
|
+
filters (list[RapidataFilter]): The list of filters applied to the audience.
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
def __init__(
|
|
30
|
+
self,
|
|
31
|
+
id: str,
|
|
32
|
+
name: str,
|
|
33
|
+
filters: list[RapidataFilter],
|
|
34
|
+
openapi_service: OpenAPIService,
|
|
35
|
+
):
|
|
36
|
+
self.id = id
|
|
37
|
+
self._name = name
|
|
38
|
+
self._filters = filters
|
|
39
|
+
self._openapi_service = openapi_service
|
|
40
|
+
self._example_handler = AudienceExampleHandler(openapi_service, id)
|
|
41
|
+
|
|
42
|
+
@property
|
|
43
|
+
def name(self) -> str:
|
|
44
|
+
"""The name of the audience."""
|
|
45
|
+
return self._name
|
|
46
|
+
|
|
47
|
+
@property
|
|
48
|
+
def filters(self) -> list[RapidataFilter]:
|
|
49
|
+
"""The list of filters applied to the audience."""
|
|
50
|
+
return self._filters
|
|
51
|
+
|
|
52
|
+
def update_filters(self, filters: list[RapidataFilter]) -> RapidataAudience:
|
|
53
|
+
"""Update the filters for this audience.
|
|
54
|
+
|
|
55
|
+
Args:
|
|
56
|
+
filters (list[RapidataFilter]): The new list of filters to apply to the audience.
|
|
57
|
+
|
|
58
|
+
Returns:
|
|
59
|
+
RapidataAudience: The updated audience instance (self) for method chaining.
|
|
60
|
+
"""
|
|
61
|
+
with tracer.start_as_current_span("RapidataAudience.update_filters"):
|
|
62
|
+
from rapidata.api_client.models.update_audience_request import (
|
|
63
|
+
UpdateAudienceRequest,
|
|
64
|
+
)
|
|
65
|
+
|
|
66
|
+
logger.debug(f"Updating filters for audience: {self.id} to {filters}")
|
|
67
|
+
self._openapi_service.audience_api.audience_audience_id_patch(
|
|
68
|
+
audience_id=self.id,
|
|
69
|
+
update_audience_request=UpdateAudienceRequest(
|
|
70
|
+
filters=[filter._to_audience_model() for filter in filters],
|
|
71
|
+
),
|
|
72
|
+
)
|
|
73
|
+
self._filters = filters
|
|
74
|
+
return self
|
|
75
|
+
|
|
76
|
+
def update_name(self, name: str) -> RapidataAudience:
|
|
77
|
+
"""Update the name of this audience.
|
|
78
|
+
|
|
79
|
+
Args:
|
|
80
|
+
name (str): The new name for the audience.
|
|
81
|
+
|
|
82
|
+
Returns:
|
|
83
|
+
RapidataAudience: The updated audience instance (self) for method chaining.
|
|
84
|
+
"""
|
|
85
|
+
with tracer.start_as_current_span("RapidataAudience.update_name"):
|
|
86
|
+
from rapidata.api_client.models.update_audience_request import (
|
|
87
|
+
UpdateAudienceRequest,
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
logger.debug(f"Updating name for audience: {self.id} to {name}")
|
|
91
|
+
self._openapi_service.audience_api.audience_audience_id_patch(
|
|
92
|
+
audience_id=self.id,
|
|
93
|
+
update_audience_request=UpdateAudienceRequest(name=name),
|
|
94
|
+
)
|
|
95
|
+
self._name = name
|
|
96
|
+
return self
|
|
97
|
+
|
|
98
|
+
def start_recruiting(self) -> RapidataAudience:
|
|
99
|
+
"""Start recruiting annotators for this audience.
|
|
100
|
+
|
|
101
|
+
This will begin the process of onboarding annotators for this audience.
|
|
102
|
+
|
|
103
|
+
Returns:
|
|
104
|
+
RapidataAudience: The audience instance (self) for method chaining.
|
|
105
|
+
"""
|
|
106
|
+
with tracer.start_as_current_span("RapidataAudience.start_recruiting"):
|
|
107
|
+
logger.debug(f"Sending request to start recruiting for audience: {self.id}")
|
|
108
|
+
self._openapi_service.audience_api.audience_audience_id_recruit_post(
|
|
109
|
+
audience_id=self.id,
|
|
110
|
+
)
|
|
111
|
+
logger.info(f"Started recruiting for audience: {self.id}")
|
|
112
|
+
return self
|
|
113
|
+
|
|
114
|
+
def assign_job(self, job_definition: JobDefinition) -> RapidataJob:
|
|
115
|
+
"""Assign a job to this audience.
|
|
116
|
+
|
|
117
|
+
Creates a new job instance from the job definition and assigns it to this audience.
|
|
118
|
+
The job will be executed by the annotators in this audience.
|
|
119
|
+
|
|
120
|
+
Args:
|
|
121
|
+
job_definition (JobDefinition): The job definition to create and assign to the audience.
|
|
122
|
+
|
|
123
|
+
Returns:
|
|
124
|
+
RapidataJob: The created job instance.
|
|
125
|
+
"""
|
|
126
|
+
with tracer.start_as_current_span("RapidataAudience.assign_job"):
|
|
127
|
+
from rapidata.api_client.models.create_job_endpoint_input import (
|
|
128
|
+
CreateJobEndpointInput,
|
|
129
|
+
)
|
|
130
|
+
from rapidata.rapidata_client.job.rapidata_job import RapidataJob
|
|
131
|
+
|
|
132
|
+
logger.debug(f"Assigning job to audience: {self.id}")
|
|
133
|
+
response = self._openapi_service.job_api.job_post(
|
|
134
|
+
create_job_endpoint_input=CreateJobEndpointInput(
|
|
135
|
+
audienceId=self.id,
|
|
136
|
+
jobDefinitionId=job_definition._id,
|
|
137
|
+
),
|
|
138
|
+
)
|
|
139
|
+
job = RapidataJob(
|
|
140
|
+
response.job_id, job_definition._name, self._openapi_service
|
|
141
|
+
)
|
|
142
|
+
logger.info(f"Assigned job to audience: {self.id}")
|
|
143
|
+
return job
|
|
144
|
+
|
|
145
|
+
def add_classification_example(
|
|
146
|
+
self,
|
|
147
|
+
instruction: str,
|
|
148
|
+
answer_options: list[str],
|
|
149
|
+
datapoint: str,
|
|
150
|
+
truth: list[str],
|
|
151
|
+
data_type: Literal["media", "text"] = "media",
|
|
152
|
+
context: str | None = None,
|
|
153
|
+
media_context: str | None = None,
|
|
154
|
+
explanation: str | None = None,
|
|
155
|
+
) -> RapidataAudience:
|
|
156
|
+
"""Add a classification training example to this audience.
|
|
157
|
+
|
|
158
|
+
Training examples help annotators understand the task by showing them
|
|
159
|
+
a sample datapoint with the correct answer before they start labeling.
|
|
160
|
+
|
|
161
|
+
Args:
|
|
162
|
+
instruction (str): The instruction for how the data should be classified.
|
|
163
|
+
answer_options (list[str]): The list of possible answer options for the classification.
|
|
164
|
+
datapoint (str): The datapoint (URL or path) to use as the training example.
|
|
165
|
+
truth (list[str]): The correct answer(s) for this training example.
|
|
166
|
+
data_type (Literal["media", "text"], optional): The data type of the datapoint. Defaults to "media".
|
|
167
|
+
context (str, optional): Additional text context to display with the example. Defaults to None.
|
|
168
|
+
media_context (str, optional): Additional media (URL or path) to display with the example. Defaults to None.
|
|
169
|
+
explanation (str, optional): An explanation of why the truth is correct. Defaults to None.
|
|
170
|
+
|
|
171
|
+
Returns:
|
|
172
|
+
RapidataAudience: The audience instance (self) for method chaining.
|
|
173
|
+
"""
|
|
174
|
+
with tracer.start_as_current_span(
|
|
175
|
+
"RapidataAudience.add_classification_example"
|
|
176
|
+
):
|
|
177
|
+
logger.debug(
|
|
178
|
+
f"Adding classification example to audience: {self.id} with instruction: {instruction}, answer_options: {answer_options}, datapoint: {datapoint}, truths: {truth}, data_type: {data_type}, context: {context}, media_context: {media_context}, explanation: {explanation}"
|
|
179
|
+
)
|
|
180
|
+
self._example_handler.add_classification_example(
|
|
181
|
+
instruction,
|
|
182
|
+
answer_options,
|
|
183
|
+
datapoint,
|
|
184
|
+
truth,
|
|
185
|
+
data_type,
|
|
186
|
+
context,
|
|
187
|
+
media_context,
|
|
188
|
+
explanation,
|
|
189
|
+
)
|
|
190
|
+
return self
|
|
191
|
+
|
|
192
|
+
def add_compare_example(
|
|
193
|
+
self,
|
|
194
|
+
instruction: str,
|
|
195
|
+
truth: str,
|
|
196
|
+
datapoint: list[str],
|
|
197
|
+
data_type: Literal["media", "text"] = "media",
|
|
198
|
+
context: str | None = None,
|
|
199
|
+
media_context: str | None = None,
|
|
200
|
+
explanation: str | None = None,
|
|
201
|
+
) -> RapidataAudience:
|
|
202
|
+
"""Add a comparison training example to this audience.
|
|
203
|
+
|
|
204
|
+
Training examples help annotators understand the task by showing them
|
|
205
|
+
a sample comparison with the correct answer before they start labeling.
|
|
206
|
+
|
|
207
|
+
Args:
|
|
208
|
+
instruction (str): The instruction for the comparison task.
|
|
209
|
+
truth (str): The correct answer for this training example (which option should be selected).
|
|
210
|
+
datapoint (list[str]): A list of exactly two datapoints (URLs or paths) to compare.
|
|
211
|
+
data_type (Literal["media", "text"], optional): The data type of the datapoints. Defaults to "media".
|
|
212
|
+
context (str, optional): Additional text context to display with the example. Defaults to None.
|
|
213
|
+
media_context (str, optional): Additional media (URL or path) to display with the example. Defaults to None.
|
|
214
|
+
explanation (str, optional): An explanation of why the truth is correct. Defaults to None.
|
|
215
|
+
|
|
216
|
+
Returns:
|
|
217
|
+
RapidataAudience: The audience instance (self) for method chaining.
|
|
218
|
+
"""
|
|
219
|
+
with tracer.start_as_current_span("RapidataAudience.add_compare_example"):
|
|
220
|
+
logger.debug(
|
|
221
|
+
f"Adding compare example to audience: {self.id} with instruction: {instruction}, truth: {truth}, datapoint: {datapoint}, data_type: {data_type}, context: {context}, media_context: {media_context}, explanation: {explanation}"
|
|
222
|
+
)
|
|
223
|
+
self._example_handler.add_compare_example(
|
|
224
|
+
instruction,
|
|
225
|
+
truth,
|
|
226
|
+
datapoint,
|
|
227
|
+
data_type,
|
|
228
|
+
context,
|
|
229
|
+
media_context,
|
|
230
|
+
explanation,
|
|
231
|
+
)
|
|
232
|
+
return self
|
|
233
|
+
|
|
234
|
+
def find_jobs(self, name: str = "", amount: int = 10) -> list[RapidataJob]:
|
|
235
|
+
"""Find jobs assigned to this audience.
|
|
236
|
+
|
|
237
|
+
Args:
|
|
238
|
+
name (str, optional): Filter jobs by name (matching jobs will contain this string). Defaults to "" for any job.
|
|
239
|
+
amount (int, optional): The maximum number of jobs to return. Defaults to 10.
|
|
240
|
+
|
|
241
|
+
Returns:
|
|
242
|
+
list[RapidataJob]: A list of RapidataJob instances assigned to this audience.
|
|
243
|
+
"""
|
|
244
|
+
with tracer.start_as_current_span("RapidataAudience.find_jobs"):
|
|
245
|
+
from rapidata.rapidata_client.job.rapidata_job import RapidataJob
|
|
246
|
+
from rapidata.api_client.models.query_model import QueryModel
|
|
247
|
+
from rapidata.api_client.models.root_filter import RootFilter
|
|
248
|
+
from rapidata.api_client.models.filter import Filter
|
|
249
|
+
from rapidata.api_client.models.filter_operator import FilterOperator
|
|
250
|
+
from rapidata.api_client.models.page_info import PageInfo
|
|
251
|
+
from rapidata.api_client.models.sort_criterion import SortCriterion
|
|
252
|
+
from rapidata.api_client.models.sort_direction import SortDirection
|
|
253
|
+
|
|
254
|
+
response = self._openapi_service.job_api.jobs_get(
|
|
255
|
+
request=QueryModel(
|
|
256
|
+
page=PageInfo(index=1, size=amount),
|
|
257
|
+
filter=RootFilter(
|
|
258
|
+
filters=[
|
|
259
|
+
Filter(
|
|
260
|
+
field="AudienceId",
|
|
261
|
+
operator=FilterOperator.EQ,
|
|
262
|
+
value=self.id,
|
|
263
|
+
),
|
|
264
|
+
Filter(
|
|
265
|
+
field="Name",
|
|
266
|
+
operator=FilterOperator.CONTAINS,
|
|
267
|
+
value=name,
|
|
268
|
+
),
|
|
269
|
+
]
|
|
270
|
+
),
|
|
271
|
+
sortCriteria=[
|
|
272
|
+
SortCriterion(
|
|
273
|
+
direction=SortDirection.DESC, propertyName="CreatedAt"
|
|
274
|
+
)
|
|
275
|
+
],
|
|
276
|
+
),
|
|
277
|
+
)
|
|
278
|
+
return [
|
|
279
|
+
RapidataJob(job.job_id, job.name, self._openapi_service)
|
|
280
|
+
for job in response.items
|
|
281
|
+
]
|
|
282
|
+
|
|
283
|
+
def __str__(self) -> str:
|
|
284
|
+
return f"RapidataAudience(id={self.id}, name={self._name}, filters={self._filters})"
|
|
285
|
+
|
|
286
|
+
def __repr__(self) -> str:
|
|
287
|
+
return self.__str__()
|