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.

Files changed (743) hide show
  1. rapidata/__init__.py +23 -15
  2. rapidata/api_client/__init__.py +84 -427
  3. rapidata/api_client/api/__init__.py +5 -2
  4. rapidata/api_client/api/asset_api.py +853 -0
  5. rapidata/api_client/api/audience_api.py +2505 -0
  6. rapidata/api_client/api/benchmark_api.py +618 -253
  7. rapidata/api_client/api/campaign_api.py +322 -32
  8. rapidata/api_client/api/client_api.py +38 -33
  9. rapidata/api_client/api/compare_workflow_api.py +11 -10
  10. rapidata/api_client/api/customer_rapid_api.py +119 -125
  11. rapidata/api_client/api/datapoint_api.py +8 -6
  12. rapidata/api_client/api/dataset_api.py +240 -1516
  13. rapidata/api_client/api/evaluation_workflow_api.py +29 -82
  14. rapidata/api_client/api/feedback_api.py +11 -11
  15. rapidata/api_client/api/grouped_ranking_workflow_api.py +319 -0
  16. rapidata/api_client/api/identity_api.py +26 -300
  17. rapidata/api_client/api/job_api.py +3902 -0
  18. rapidata/api_client/api/job_definition_api.py +319 -0
  19. rapidata/api_client/api/job_revision_api.py +335 -0
  20. rapidata/api_client/api/leaderboard_api.py +139 -2355
  21. rapidata/api_client/api/newsletter_api.py +20 -19
  22. rapidata/api_client/api/order_api.py +375 -91
  23. rapidata/api_client/api/participant_api.py +80 -118
  24. rapidata/api_client/api/pipeline_api.py +24 -607
  25. rapidata/api_client/api/prompt_api.py +11 -11
  26. rapidata/api_client/api/rapidata_identity_api_api.py +5 -4
  27. rapidata/api_client/api/sample_api.py +5 -4
  28. rapidata/api_client/api/simple_workflow_api.py +11 -10
  29. rapidata/api_client/api/survey_api.py +304 -0
  30. rapidata/api_client/api/user_rapid_api.py +35 -31
  31. rapidata/api_client/api/validation_set_api.py +337 -2043
  32. rapidata/api_client/api/workflow_api.py +32 -26
  33. rapidata/api_client/api_client.py +2 -2
  34. rapidata/api_client/configuration.py +16 -29
  35. rapidata/api_client/exceptions.py +2 -2
  36. rapidata/api_client/models/__init__.py +65 -400
  37. rapidata/api_client/models/ab_test_selection_a_inner.py +1 -1
  38. rapidata/api_client/models/add_rapid_to_audience_model.py +144 -0
  39. rapidata/api_client/models/add_user_response_result.py +10 -5
  40. rapidata/api_client/models/add_validation_rapid_model.py +34 -36
  41. rapidata/api_client/models/add_validation_rapid_model_asset.py +154 -0
  42. rapidata/api_client/models/add_validation_rapid_model_context_asset.py +160 -0
  43. rapidata/api_client/models/add_validation_rapid_model_metadata_inner.py +140 -0
  44. rapidata/api_client/models/add_validation_rapid_new_model.py +137 -0
  45. rapidata/api_client/models/add_validation_rapid_new_model_asset.py +182 -0
  46. rapidata/api_client/models/add_validation_rapid_new_model_truth.py +286 -0
  47. rapidata/api_client/models/age_user_filter_model.py +2 -2
  48. rapidata/api_client/models/age_user_filter_model_age_group.py +41 -0
  49. rapidata/api_client/models/aggregated_orders_model.py +98 -0
  50. rapidata/api_client/models/aggregator_type.py +4 -2
  51. rapidata/api_client/models/and_filter_filters_inner.py +24 -10
  52. rapidata/api_client/models/are_rapids_active_result.py +2 -2
  53. rapidata/api_client/models/asset_metadata.py +2 -8
  54. rapidata/api_client/models/attach_category_rapid_blueprint.py +13 -3
  55. rapidata/api_client/models/attach_category_rapid_blueprint_category.py +89 -0
  56. rapidata/api_client/models/audience_job_state.py +38 -0
  57. rapidata/api_client/models/audience_status.py +39 -0
  58. rapidata/api_client/models/benchmark_query_result.py +5 -3
  59. rapidata/api_client/models/boost_leaderboard_model.py +5 -5
  60. rapidata/api_client/models/boost_query_result.py +4 -4
  61. rapidata/api_client/models/boost_query_result_boost_mode.py +37 -0
  62. rapidata/api_client/models/boost_query_result_boost_status.py +39 -0
  63. rapidata/api_client/models/boosting_profile.py +91 -0
  64. rapidata/api_client/models/box_shape.py +4 -33
  65. rapidata/api_client/models/campaign_query_result.py +13 -5
  66. rapidata/api_client/models/campaign_status.py +2 -2
  67. rapidata/api_client/models/change_boost_model.py +5 -5
  68. rapidata/api_client/models/classify_payload.py +14 -15
  69. rapidata/api_client/models/classify_payload_category.py +89 -0
  70. rapidata/api_client/models/client_model.py +25 -35
  71. rapidata/api_client/models/clients_query_result.py +5 -5
  72. rapidata/api_client/models/clone_order_model.py +4 -4
  73. rapidata/api_client/models/clone_order_result.py +9 -4
  74. rapidata/api_client/models/compare_workflow_config.py +19 -18
  75. rapidata/api_client/models/compare_workflow_config_context_asset.py +174 -0
  76. rapidata/api_client/models/compare_workflow_config_model.py +3 -3
  77. rapidata/api_client/models/compare_workflow_model.py +25 -7
  78. rapidata/api_client/models/compare_workflow_model1.py +20 -9
  79. rapidata/api_client/models/compare_workflow_model_context_asset.py +160 -0
  80. rapidata/api_client/models/compare_workflow_model_metadata_inner.py +154 -0
  81. rapidata/api_client/models/compare_workflow_model_pair_maker_config.py +1 -1
  82. rapidata/api_client/models/comparison_operator.py +2 -2
  83. rapidata/api_client/models/conditional_validation_selection.py +6 -11
  84. rapidata/api_client/models/conditional_validation_selection_validation_chance.py +103 -0
  85. rapidata/api_client/models/confidence_interval.py +89 -0
  86. rapidata/api_client/models/create_audience_request.py +122 -0
  87. rapidata/api_client/models/create_audience_result.py +87 -0
  88. rapidata/api_client/models/create_benchmark_model.py +5 -5
  89. rapidata/api_client/models/create_benchmark_participant_model.py +5 -5
  90. rapidata/api_client/models/create_benchmark_participant_result.py +4 -4
  91. rapidata/api_client/models/create_benchmark_prompt_result.py +87 -0
  92. rapidata/api_client/models/create_benchmark_result.py +2 -2
  93. rapidata/api_client/models/create_bridge_token_result.py +2 -2
  94. rapidata/api_client/models/create_client_model.py +6 -13
  95. rapidata/api_client/models/create_complex_order_model.py +9 -9
  96. rapidata/api_client/models/create_complex_order_result.py +2 -2
  97. rapidata/api_client/models/create_customer_client_result.py +2 -2
  98. rapidata/api_client/models/create_datapoint_from_files_model.py +3 -3
  99. rapidata/api_client/models/create_datapoint_from_text_sources_model.py +3 -3
  100. rapidata/api_client/models/create_datapoint_from_urls_model.py +3 -3
  101. rapidata/api_client/models/create_datapoint_model.py +124 -0
  102. rapidata/api_client/models/create_datapoint_model_asset.py +154 -0
  103. rapidata/api_client/models/create_datapoint_model_context_asset.py +160 -0
  104. rapidata/api_client/models/create_datapoint_model_metadata_inner.py +154 -0
  105. rapidata/api_client/models/create_datapoint_result.py +2 -2
  106. rapidata/api_client/models/create_dataset_endpoint_input.py +87 -0
  107. rapidata/api_client/models/create_dataset_endpoint_output.py +87 -0
  108. rapidata/api_client/models/create_demographic_rapid_model.py +33 -10
  109. rapidata/api_client/models/create_demographic_rapid_model_asset.py +160 -0
  110. rapidata/api_client/models/create_demographic_rapid_model_context_asset.py +160 -0
  111. rapidata/api_client/models/create_demographic_rapid_model_new.py +119 -0
  112. rapidata/api_client/models/create_empty_validation_set_result.py +2 -2
  113. rapidata/api_client/models/create_job_definition_endpoint_input.py +119 -0
  114. rapidata/api_client/models/create_job_definition_endpoint_output.py +89 -0
  115. rapidata/api_client/models/create_job_endpoint_input.py +100 -0
  116. rapidata/api_client/models/create_job_endpoint_output.py +89 -0
  117. rapidata/api_client/models/create_job_revision_endpoint_input.py +127 -0
  118. rapidata/api_client/models/create_job_revision_endpoint_output.py +89 -0
  119. rapidata/api_client/models/create_leaderboard_model.py +23 -26
  120. rapidata/api_client/models/create_leaderboard_result.py +2 -2
  121. rapidata/api_client/models/create_order_definition_model.py +119 -0
  122. rapidata/api_client/models/create_order_definition_result.py +87 -0
  123. rapidata/api_client/models/create_order_definition_revision_model.py +117 -0
  124. rapidata/api_client/models/create_order_definition_revision_result.py +87 -0
  125. rapidata/api_client/models/create_order_model.py +33 -62
  126. rapidata/api_client/models/create_order_model_referee.py +12 -12
  127. rapidata/api_client/models/create_order_model_workflow.py +35 -21
  128. rapidata/api_client/models/create_order_result.py +2 -2
  129. rapidata/api_client/models/create_rapid_result.py +2 -2
  130. rapidata/api_client/models/create_sample_model.py +13 -7
  131. rapidata/api_client/models/create_sample_model_asset.py +154 -0
  132. rapidata/api_client/models/create_sample_model_obsolete.py +87 -0
  133. rapidata/api_client/models/create_simple_pipeline_model_pipeline_steps_inner.py +8 -22
  134. rapidata/api_client/models/create_unsupported_order_model.py +6 -6
  135. rapidata/api_client/models/create_validation_set_model.py +5 -5
  136. rapidata/api_client/models/datapoint_model.py +3 -3
  137. rapidata/api_client/models/datapoint_state.py +2 -2
  138. rapidata/api_client/models/definition_type.py +49 -0
  139. rapidata/api_client/models/dynamic_client_registration_request.py +21 -36
  140. rapidata/api_client/models/early_stopping_referee_model.py +3 -3
  141. rapidata/api_client/models/elo_config.py +2 -2
  142. rapidata/api_client/models/elo_config_model.py +6 -6
  143. rapidata/api_client/models/entity_tag_header_value.py +93 -0
  144. rapidata/api_client/models/evaluation_workflow_model.py +4 -4
  145. rapidata/api_client/models/existing_asset_input.py +109 -0
  146. rapidata/api_client/models/existing_asset_input_metadata_value.py +126 -0
  147. rapidata/api_client/models/feature_flag.py +2 -2
  148. rapidata/api_client/models/feature_flag_model.py +2 -2
  149. rapidata/api_client/models/feedback_model.py +7 -7
  150. rapidata/api_client/models/file_asset.py +3 -5
  151. rapidata/api_client/models/file_asset_input_file.py +8 -22
  152. rapidata/api_client/models/file_asset_metadata_value.py +252 -0
  153. rapidata/api_client/models/file_asset_model_metadata_value.py +18 -88
  154. rapidata/api_client/models/file_stream_result.py +122 -0
  155. rapidata/api_client/models/file_type.py +2 -2
  156. rapidata/api_client/models/filter.py +2 -2
  157. rapidata/api_client/models/filter_operator.py +2 -2
  158. rapidata/api_client/models/fork_benchmark_result.py +87 -0
  159. rapidata/api_client/models/form_file_wrapper.py +17 -2
  160. rapidata/api_client/models/gender_user_filter_model.py +2 -2
  161. rapidata/api_client/models/gender_user_filter_model_gender.py +38 -0
  162. rapidata/api_client/models/get_asset_metadata_result.py +100 -0
  163. rapidata/api_client/models/get_audience_by_id_result.py +118 -0
  164. rapidata/api_client/models/get_available_validation_sets_result.py +2 -2
  165. rapidata/api_client/models/get_benchmark_by_id_result.py +8 -4
  166. rapidata/api_client/models/get_boost_result.py +97 -0
  167. rapidata/api_client/models/get_boost_result_boost_mode.py +37 -0
  168. rapidata/api_client/models/get_boost_result_boost_status.py +39 -0
  169. rapidata/api_client/models/get_compare_ab_summary_result.py +3 -5
  170. rapidata/api_client/models/get_compare_workflow_results_model.py +7 -7
  171. rapidata/api_client/models/get_compare_workflow_results_result.py +5 -5
  172. rapidata/api_client/models/get_datapoint_by_id_result.py +7 -12
  173. rapidata/api_client/models/get_datapoint_by_id_result_asset.py +170 -0
  174. rapidata/api_client/models/get_dataset_by_id_result.py +2 -2
  175. rapidata/api_client/models/get_dataset_progress_result.py +2 -2
  176. rapidata/api_client/models/get_evaluation_workflow_results_model.py +119 -0
  177. rapidata/api_client/models/get_failed_datapoints_result.py +5 -5
  178. rapidata/api_client/models/get_failed_datapoints_result_datapoint.py +100 -0
  179. rapidata/api_client/models/get_file_metadata_result.py +100 -0
  180. rapidata/api_client/models/get_grouped_ranking_workflow_results_model.py +106 -0
  181. rapidata/api_client/models/get_grouped_ranking_workflow_results_result.py +97 -0
  182. rapidata/api_client/models/get_grouped_ranking_workflow_results_result_paged_result.py +105 -0
  183. rapidata/api_client/models/get_job_by_id_endpoint_output.py +130 -0
  184. rapidata/api_client/models/get_job_definition_by_id_endpoint_output.py +95 -0
  185. rapidata/api_client/models/get_job_revision_endpoint_output.py +133 -0
  186. rapidata/api_client/models/get_leaderboard_by_id_result.py +5 -5
  187. rapidata/api_client/models/get_order_by_id_result.py +12 -5
  188. rapidata/api_client/models/get_participant_by_id_result.py +4 -6
  189. rapidata/api_client/models/get_pipeline_by_id_result.py +5 -5
  190. rapidata/api_client/models/get_public_orders_result.py +2 -2
  191. rapidata/api_client/models/get_public_responses_result.py +5 -5
  192. rapidata/api_client/models/get_public_responses_result_response.py +112 -0
  193. rapidata/api_client/models/get_rapid_responses_result.py +3 -3
  194. rapidata/api_client/models/get_recommended_validation_set_result.py +2 -2
  195. rapidata/api_client/models/get_responses_for_rapid_result.py +106 -0
  196. rapidata/api_client/models/get_responses_for_rapid_result_response.py +103 -0
  197. rapidata/api_client/models/get_responses_for_rapid_result_response_result.py +266 -0
  198. rapidata/api_client/models/get_responses_result.py +5 -5
  199. rapidata/api_client/models/get_responses_result_response.py +103 -0
  200. rapidata/api_client/models/get_sample_by_id_result.py +7 -8
  201. rapidata/api_client/models/get_simple_workflow_results_model.py +20 -15
  202. rapidata/api_client/models/get_standing_by_id_result.py +3 -5
  203. rapidata/api_client/models/get_validation_rapids_result.py +29 -32
  204. rapidata/api_client/models/get_validation_set_by_id_result.py +10 -4
  205. rapidata/api_client/models/get_workflow_by_id_result.py +5 -5
  206. rapidata/api_client/models/get_workflow_by_id_result_workflow.py +23 -9
  207. rapidata/api_client/models/get_workflow_progress_result.py +2 -2
  208. rapidata/api_client/models/get_workflow_results_result.py +31 -14
  209. rapidata/api_client/models/get_workflow_results_result_response.py +103 -0
  210. rapidata/api_client/models/google_one_tap_login_model.py +4 -4
  211. rapidata/api_client/models/grouped_ranking_workflow_config.py +155 -0
  212. rapidata/api_client/models/grouped_ranking_workflow_config_context_assets_value.py +170 -0
  213. rapidata/api_client/models/grouped_ranking_workflow_model.py +147 -0
  214. rapidata/api_client/models/grouped_ranking_workflow_model1.py +121 -0
  215. rapidata/api_client/models/i_artifact_model.py +182 -0
  216. rapidata/api_client/models/i_artifact_model_campaign_artifact_model.py +98 -0
  217. rapidata/api_client/models/i_artifact_model_dataset_artifact_model.py +98 -0
  218. rapidata/api_client/models/i_artifact_model_file_artifact_model.py +98 -0
  219. rapidata/api_client/models/i_artifact_model_workflow_artifact_model.py +98 -0
  220. rapidata/api_client/models/i_artifact_model_workflow_config_artifact_model.py +102 -0
  221. rapidata/api_client/models/i_asset.py +170 -0
  222. rapidata/api_client/models/i_asset_file_asset.py +111 -0
  223. rapidata/api_client/models/i_asset_input.py +156 -0
  224. rapidata/api_client/models/i_asset_input_existing_asset_input.py +118 -0
  225. rapidata/api_client/models/i_asset_input_multi_asset_input.py +128 -0
  226. rapidata/api_client/models/i_asset_input_text_asset_input.py +118 -0
  227. rapidata/api_client/models/i_asset_model.py +170 -0
  228. rapidata/api_client/models/i_asset_model_file_asset_model.py +113 -0
  229. rapidata/api_client/models/i_asset_model_multi_asset_model.py +123 -0
  230. rapidata/api_client/models/i_asset_model_null_asset_model.py +111 -0
  231. rapidata/api_client/models/i_asset_model_text_asset_model.py +113 -0
  232. rapidata/api_client/models/i_asset_multi_asset.py +121 -0
  233. rapidata/api_client/models/i_asset_null_asset.py +109 -0
  234. rapidata/api_client/models/i_asset_text_asset.py +111 -0
  235. rapidata/api_client/models/i_audience_filter.py +184 -0
  236. rapidata/api_client/models/i_audience_filter_and_audience_filter.py +106 -0
  237. rapidata/api_client/models/i_audience_filter_country_audience_filter.py +96 -0
  238. rapidata/api_client/models/i_audience_filter_country_filter.py +96 -0
  239. rapidata/api_client/models/i_audience_filter_language_audience_filter.py +96 -0
  240. rapidata/api_client/models/i_audience_filter_language_filter.py +96 -0
  241. rapidata/api_client/models/i_audience_filter_not_audience_filter.py +102 -0
  242. rapidata/api_client/models/i_audience_filter_or_audience_filter.py +106 -0
  243. rapidata/api_client/models/i_campaign_filter.py +296 -0
  244. rapidata/api_client/models/i_campaign_filter_and_filter.py +117 -0
  245. rapidata/api_client/models/i_campaign_filter_campaign_filter.py +98 -0
  246. rapidata/api_client/models/i_campaign_filter_campaign_session_count_filter.py +101 -0
  247. rapidata/api_client/models/i_campaign_filter_country_filter.py +98 -0
  248. rapidata/api_client/models/i_campaign_filter_demographic_filter.py +100 -0
  249. rapidata/api_client/models/i_campaign_filter_device_filter.py +106 -0
  250. rapidata/api_client/models/i_campaign_filter_language_filter.py +98 -0
  251. rapidata/api_client/models/i_campaign_filter_new_user_filter.py +96 -0
  252. rapidata/api_client/models/i_campaign_filter_not_filter.py +113 -0
  253. rapidata/api_client/models/i_campaign_filter_or_filter.py +117 -0
  254. rapidata/api_client/models/i_campaign_filter_response_count_filter.py +103 -0
  255. rapidata/api_client/models/i_campaign_filter_user_action_restriction_filter.py +106 -0
  256. rapidata/api_client/models/i_campaign_filter_user_score_filter.py +102 -0
  257. rapidata/api_client/models/i_campaign_filter_user_state_filter.py +106 -0
  258. rapidata/api_client/models/i_dataset_metadata_input.py +154 -0
  259. rapidata/api_client/models/i_dataset_metadata_input_prompt_asset_metadata_input.py +100 -0
  260. rapidata/api_client/models/i_dataset_metadata_input_prompt_metadata_input.py +96 -0
  261. rapidata/api_client/models/i_dataset_metadata_input_transcription_metadata_input.py +96 -0
  262. rapidata/api_client/models/i_dataset_model.py +126 -0
  263. rapidata/api_client/models/i_dataset_model_clone_dataset_model.py +98 -0
  264. rapidata/api_client/models/i_metadata.py +252 -0
  265. rapidata/api_client/models/i_metadata_classification_metadata.py +109 -0
  266. rapidata/api_client/models/i_metadata_count_metadata.py +109 -0
  267. rapidata/api_client/models/i_metadata_duration_metadata.py +110 -0
  268. rapidata/api_client/models/i_metadata_file_type_metadata.py +110 -0
  269. rapidata/api_client/models/i_metadata_image_dimension_metadata.py +111 -0
  270. rapidata/api_client/models/i_metadata_input.py +126 -0
  271. rapidata/api_client/models/i_metadata_input_text_metadata_input.py +111 -0
  272. rapidata/api_client/models/i_metadata_location_metadata.py +111 -0
  273. rapidata/api_client/models/i_metadata_model.py +252 -0
  274. rapidata/api_client/models/i_metadata_model_classification_metadata_model.py +96 -0
  275. rapidata/api_client/models/i_metadata_model_count_metadata_model.py +96 -0
  276. rapidata/api_client/models/i_metadata_model_file_type_metadata_model.py +97 -0
  277. rapidata/api_client/models/i_metadata_model_image_dimension_metadata_model.py +98 -0
  278. rapidata/api_client/models/i_metadata_model_location_metadata_model.py +98 -0
  279. rapidata/api_client/models/i_metadata_model_original_filename_metadata_model.py +96 -0
  280. rapidata/api_client/models/i_metadata_model_source_url_metadata_model.py +96 -0
  281. rapidata/api_client/models/i_metadata_model_streams_metadata_model.py +100 -0
  282. rapidata/api_client/models/i_metadata_model_text_metadata_model.py +101 -0
  283. rapidata/api_client/models/i_metadata_model_video_duration_metadata_model.py +97 -0
  284. rapidata/api_client/models/i_metadata_original_filename_metadata.py +109 -0
  285. rapidata/api_client/models/i_metadata_source_url_metadata.py +109 -0
  286. rapidata/api_client/models/i_metadata_streams_metadata.py +113 -0
  287. rapidata/api_client/models/i_metadata_text_metadata.py +114 -0
  288. rapidata/api_client/models/i_metadata_video_duration_metadata.py +110 -0
  289. rapidata/api_client/models/i_order_workflow_model.py +168 -0
  290. rapidata/api_client/models/i_order_workflow_model_compare_workflow_model.py +146 -0
  291. rapidata/api_client/models/i_order_workflow_model_evaluation_workflow_model.py +108 -0
  292. rapidata/api_client/models/i_order_workflow_model_grouped_ranking_workflow_model.py +147 -0
  293. rapidata/api_client/models/i_order_workflow_model_simple_workflow_model.py +110 -0
  294. rapidata/api_client/models/i_pair_maker_config.py +126 -0
  295. rapidata/api_client/models/i_pair_maker_config_model.py +126 -0
  296. rapidata/api_client/models/i_pair_maker_config_model_online_pair_maker_config_model.py +98 -0
  297. rapidata/api_client/models/i_pair_maker_config_online_pair_maker_config.py +98 -0
  298. rapidata/api_client/models/i_pair_maker_information.py +126 -0
  299. rapidata/api_client/models/i_pair_maker_information_online_pair_maker_information.py +100 -0
  300. rapidata/api_client/models/i_pipeline_artifact_model.py +126 -0
  301. rapidata/api_client/models/i_pipeline_artifact_model_create_dataset_artifact_model.py +102 -0
  302. rapidata/api_client/models/i_pipeline_model.py +126 -0
  303. rapidata/api_client/models/i_pipeline_model_create_simple_pipeline_model.py +116 -0
  304. rapidata/api_client/models/i_pipeline_step_model.py +168 -0
  305. rapidata/api_client/models/i_pipeline_step_model_dataset_evaluation_step_model.py +102 -0
  306. rapidata/api_client/models/i_pipeline_step_model_send_completion_mail_step_model.py +98 -0
  307. rapidata/api_client/models/i_pipeline_step_model_workflow_aggregation_step_model.py +103 -0
  308. rapidata/api_client/models/i_pipeline_step_model_workflow_labeling_step_model.py +96 -0
  309. rapidata/api_client/models/i_rapid_blueprint.py +252 -0
  310. rapidata/api_client/models/i_rapid_blueprint_attach_category_rapid_blueprint.py +108 -0
  311. rapidata/api_client/models/i_rapid_blueprint_bounding_box_rapid_blueprint.py +96 -0
  312. rapidata/api_client/models/i_rapid_blueprint_compare_rapid_blueprint.py +98 -0
  313. rapidata/api_client/models/i_rapid_blueprint_free_text_rapid_blueprint.py +105 -0
  314. rapidata/api_client/models/i_rapid_blueprint_line_rapid_blueprint.py +96 -0
  315. rapidata/api_client/models/i_rapid_blueprint_locate_rapid_blueprint.py +96 -0
  316. rapidata/api_client/models/i_rapid_blueprint_named_entity_rapid_blueprint.py +98 -0
  317. rapidata/api_client/models/i_rapid_blueprint_polygon_rapid_blueprint.py +96 -0
  318. rapidata/api_client/models/i_rapid_blueprint_scrub_rapid_blueprint.py +96 -0
  319. rapidata/api_client/models/i_rapid_blueprint_transcription_rapid_blueprint.py +96 -0
  320. rapidata/api_client/models/i_rapid_payload.py +252 -0
  321. rapidata/api_client/models/i_rapid_payload_bounding_box_payload.py +96 -0
  322. rapidata/api_client/models/i_rapid_payload_classify_payload.py +106 -0
  323. rapidata/api_client/models/i_rapid_payload_compare_payload.py +96 -0
  324. rapidata/api_client/models/i_rapid_payload_free_text_payload.py +105 -0
  325. rapidata/api_client/models/i_rapid_payload_line_payload.py +96 -0
  326. rapidata/api_client/models/i_rapid_payload_locate_payload.py +96 -0
  327. rapidata/api_client/models/i_rapid_payload_named_entity_payload.py +98 -0
  328. rapidata/api_client/models/i_rapid_payload_polygon_payload.py +96 -0
  329. rapidata/api_client/models/i_rapid_payload_scrub_payload.py +96 -0
  330. rapidata/api_client/models/i_rapid_payload_transcription_payload.py +106 -0
  331. rapidata/api_client/models/i_rapid_result.py +266 -0
  332. rapidata/api_client/models/i_rapid_result_attach_category_result.py +98 -0
  333. rapidata/api_client/models/i_rapid_result_bounding_box_result.py +106 -0
  334. rapidata/api_client/models/i_rapid_result_compare_result.py +98 -0
  335. rapidata/api_client/models/i_rapid_result_free_text_result.py +98 -0
  336. rapidata/api_client/models/i_rapid_result_line_result.py +106 -0
  337. rapidata/api_client/models/i_rapid_result_locate_result.py +106 -0
  338. rapidata/api_client/models/i_rapid_result_named_entity_result.py +106 -0
  339. rapidata/api_client/models/i_rapid_result_polygon_result.py +106 -0
  340. rapidata/api_client/models/i_rapid_result_scrub_result.py +98 -0
  341. rapidata/api_client/models/i_rapid_result_skip_result.py +96 -0
  342. rapidata/api_client/models/i_rapid_result_transcription_result.py +106 -0
  343. rapidata/api_client/models/i_referee_config.py +154 -0
  344. rapidata/api_client/models/i_referee_config_naive_referee_config.py +96 -0
  345. rapidata/api_client/models/i_referee_config_never_ending_referee_config.py +94 -0
  346. rapidata/api_client/models/i_referee_config_probabilistic_attach_category_referee_config.py +98 -0
  347. rapidata/api_client/models/i_referee_info.py +154 -0
  348. rapidata/api_client/models/i_referee_info_naive_referee_info.py +96 -0
  349. rapidata/api_client/models/i_referee_info_never_ending_referee_info.py +94 -0
  350. rapidata/api_client/models/i_referee_info_probabilistic_attach_category_referee_info.py +98 -0
  351. rapidata/api_client/models/i_referee_model.py +140 -0
  352. rapidata/api_client/models/i_referee_model_early_stopping_referee_model.py +98 -0
  353. rapidata/api_client/models/i_referee_model_naive_referee_model.py +96 -0
  354. rapidata/api_client/models/i_selection.py +240 -0
  355. rapidata/api_client/models/i_selection_ab_test_selection.py +122 -0
  356. rapidata/api_client/models/i_selection_capped_selection.py +108 -0
  357. rapidata/api_client/models/i_selection_conditional_validation_selection.py +110 -0
  358. rapidata/api_client/models/i_selection_demographic_selection.py +98 -0
  359. rapidata/api_client/models/i_selection_effort_capped_selection.py +101 -0
  360. rapidata/api_client/models/i_selection_labeling_selection.py +103 -0
  361. rapidata/api_client/models/i_selection_shuffling_selection.py +106 -0
  362. rapidata/api_client/models/i_selection_static_selection.py +96 -0
  363. rapidata/api_client/models/i_selection_validation_selection.py +98 -0
  364. rapidata/api_client/models/i_user_filter_model.py +296 -0
  365. rapidata/api_client/models/i_user_filter_model_age_user_filter_model.py +104 -0
  366. rapidata/api_client/models/i_user_filter_model_and_user_filter_model.py +106 -0
  367. rapidata/api_client/models/i_user_filter_model_campaign_user_filter_model.py +96 -0
  368. rapidata/api_client/models/i_user_filter_model_country_user_filter_model.py +96 -0
  369. rapidata/api_client/models/i_user_filter_model_custom_user_filter_model.py +98 -0
  370. rapidata/api_client/models/i_user_filter_model_device_user_filter_model.py +104 -0
  371. rapidata/api_client/models/i_user_filter_model_gender_user_filter_model.py +104 -0
  372. rapidata/api_client/models/i_user_filter_model_language_user_filter_model.py +96 -0
  373. rapidata/api_client/models/i_user_filter_model_new_user_filter_model.py +94 -0
  374. rapidata/api_client/models/i_user_filter_model_not_user_filter_model.py +102 -0
  375. rapidata/api_client/models/i_user_filter_model_or_user_filter_model.py +106 -0
  376. rapidata/api_client/models/i_user_filter_model_response_count_user_filter_model.py +101 -0
  377. rapidata/api_client/models/i_user_filter_model_user_score_user_filter_model.py +105 -0
  378. rapidata/api_client/models/i_validation_metadata_input.py +140 -0
  379. rapidata/api_client/models/i_validation_metadata_input_prompt_asset_metadata_input.py +100 -0
  380. rapidata/api_client/models/i_validation_metadata_input_prompt_metadata_input.py +96 -0
  381. rapidata/api_client/models/i_validation_truth.py +280 -0
  382. rapidata/api_client/models/i_validation_truth_attach_category_truth.py +96 -0
  383. rapidata/api_client/models/i_validation_truth_bounding_box_truth.py +102 -0
  384. rapidata/api_client/models/i_validation_truth_compare_truth.py +96 -0
  385. rapidata/api_client/models/i_validation_truth_empty_validation_truth.py +94 -0
  386. rapidata/api_client/models/i_validation_truth_line_truth.py +94 -0
  387. rapidata/api_client/models/i_validation_truth_locate_box_truth.py +108 -0
  388. rapidata/api_client/models/i_validation_truth_model.py +294 -0
  389. rapidata/api_client/models/i_validation_truth_model_attach_category_truth_model.py +96 -0
  390. rapidata/api_client/models/i_validation_truth_model_bounding_box_truth_model.py +102 -0
  391. rapidata/api_client/models/i_validation_truth_model_classify_truth_model.py +96 -0
  392. rapidata/api_client/models/i_validation_truth_model_compare_truth_model.py +96 -0
  393. rapidata/api_client/models/i_validation_truth_model_empty_validation_truth_model.py +94 -0
  394. rapidata/api_client/models/i_validation_truth_model_line_truth_model.py +94 -0
  395. rapidata/api_client/models/i_validation_truth_model_locate_box_truth_model.py +108 -0
  396. rapidata/api_client/models/i_validation_truth_model_multi_compare_truth_model.py +96 -0
  397. rapidata/api_client/models/i_validation_truth_model_named_entity_truth_model.py +104 -0
  398. rapidata/api_client/models/i_validation_truth_model_polygon_truth_model.py +94 -0
  399. rapidata/api_client/models/i_validation_truth_model_scrub_truth_model.py +104 -0
  400. rapidata/api_client/models/i_validation_truth_model_skip_truth_model.py +94 -0
  401. rapidata/api_client/models/i_validation_truth_model_transcription_truth_model.py +115 -0
  402. rapidata/api_client/models/i_validation_truth_multi_compare_truth.py +96 -0
  403. rapidata/api_client/models/i_validation_truth_named_entity_truth.py +104 -0
  404. rapidata/api_client/models/i_validation_truth_polygon_truth.py +94 -0
  405. rapidata/api_client/models/i_validation_truth_scrub_truth.py +104 -0
  406. rapidata/api_client/models/i_validation_truth_skip_truth.py +94 -0
  407. rapidata/api_client/models/i_validation_truth_transcription_truth.py +115 -0
  408. rapidata/api_client/models/i_workflow_config.py +168 -0
  409. rapidata/api_client/models/i_workflow_config_compare_workflow_config.py +142 -0
  410. rapidata/api_client/models/i_workflow_config_evaluation_workflow_config.py +114 -0
  411. rapidata/api_client/models/i_workflow_config_grouped_ranking_workflow_config.py +155 -0
  412. rapidata/api_client/models/i_workflow_config_simple_workflow_config.py +116 -0
  413. rapidata/api_client/models/i_workflow_model.py +168 -0
  414. rapidata/api_client/models/i_workflow_model_compare_workflow_model.py +145 -0
  415. rapidata/api_client/models/i_workflow_model_evaluation_workflow_model.py +115 -0
  416. rapidata/api_client/models/i_workflow_model_grouped_ranking_workflow_model.py +121 -0
  417. rapidata/api_client/models/i_workflow_model_simple_workflow_model.py +119 -0
  418. rapidata/api_client/models/inquire_file_metadata_result.py +100 -0
  419. rapidata/api_client/models/inspect_report_result.py +2 -2
  420. rapidata/api_client/models/job_definition_revision_state.py +38 -0
  421. rapidata/api_client/models/json_web_key.py +2 -36
  422. rapidata/api_client/models/json_web_key_set.py +2 -22
  423. rapidata/api_client/models/labeling_selection.py +9 -2
  424. rapidata/api_client/models/leaderboards_query_result.py +135 -0
  425. rapidata/api_client/models/line_result.py +3 -3
  426. rapidata/api_client/models/line_result_line.py +97 -0
  427. rapidata/api_client/models/line_result_line_point.py +89 -0
  428. rapidata/api_client/models/locate_coordinate.py +4 -13
  429. rapidata/api_client/models/logic_operator.py +2 -2
  430. rapidata/api_client/models/metadata_i_order_metadata_input.py +154 -0
  431. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_asset_metadata_input.py +100 -0
  432. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_metadata_input.py +96 -0
  433. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_transcription_metadata_input.py +96 -0
  434. rapidata/api_client/models/metadata_prompt_asset_metadata_input.py +100 -0
  435. rapidata/api_client/models/metadata_prompt_metadata_input.py +96 -0
  436. rapidata/api_client/models/metadata_transcription_metadata_input.py +96 -0
  437. rapidata/api_client/models/multi_asset.py +6 -6
  438. rapidata/api_client/models/multi_asset_assets_inner.py +170 -0
  439. rapidata/api_client/models/multi_asset_input.py +21 -1
  440. rapidata/api_client/models/multi_asset_input1_assets_inner.py +40 -12
  441. rapidata/api_client/models/multi_asset_input3_assets_inner.py +40 -12
  442. rapidata/api_client/models/multi_asset_input_assets_inner.py +16 -30
  443. rapidata/api_client/models/multi_asset_model.py +3 -3
  444. rapidata/api_client/models/naive_referee_model.py +2 -2
  445. rapidata/api_client/models/named_classification.py +4 -13
  446. rapidata/api_client/models/newsletter_model.py +6 -6
  447. rapidata/api_client/models/not_available_yet_result.py +4 -13
  448. rapidata/api_client/models/null_asset.py +3 -5
  449. rapidata/api_client/models/online_pair_maker_config_model.py +3 -3
  450. rapidata/api_client/models/option_of_aggregator_type.py +49 -0
  451. rapidata/api_client/models/order_model.py +12 -5
  452. rapidata/api_client/models/order_state.py +2 -2
  453. rapidata/api_client/models/page_info.py +2 -7
  454. rapidata/api_client/models/paged_result_aggregated_orders_model.py +105 -0
  455. rapidata/api_client/models/paged_result_benchmark_query_result.py +105 -0
  456. rapidata/api_client/models/paged_result_campaign_query_result.py +105 -0
  457. rapidata/api_client/models/paged_result_clients_query_result.py +105 -0
  458. rapidata/api_client/models/paged_result_datapoint_model.py +105 -0
  459. rapidata/api_client/models/paged_result_get_compare_workflow_results_result.py +105 -0
  460. rapidata/api_client/models/paged_result_get_grouped_ranking_workflow_results_result.py +105 -0
  461. rapidata/api_client/models/paged_result_get_validation_rapids_result.py +105 -0
  462. rapidata/api_client/models/paged_result_get_workflow_results_result.py +105 -0
  463. rapidata/api_client/models/paged_result_i_workflow_model.py +105 -0
  464. rapidata/api_client/models/paged_result_leaderboard_query_result.py +105 -0
  465. rapidata/api_client/models/paged_result_leaderboards_query_result.py +105 -0
  466. rapidata/api_client/models/paged_result_of_aggregated_orders_model.py +103 -0
  467. rapidata/api_client/models/paged_result_of_benchmark_query_result.py +103 -0
  468. rapidata/api_client/models/paged_result_of_campaign_query_result.py +103 -0
  469. rapidata/api_client/models/paged_result_of_clients_query_result.py +103 -0
  470. rapidata/api_client/models/paged_result_of_get_compare_workflow_results_result.py +103 -0
  471. rapidata/api_client/models/paged_result_of_get_grouped_ranking_workflow_results_result.py +103 -0
  472. rapidata/api_client/models/paged_result_of_get_validation_rapids_result.py +103 -0
  473. rapidata/api_client/models/paged_result_of_get_workflow_results_result.py +103 -0
  474. rapidata/api_client/models/paged_result_of_i_workflow_model.py +103 -0
  475. rapidata/api_client/models/paged_result_of_leaderboards_query_result.py +103 -0
  476. rapidata/api_client/models/paged_result_of_order_model.py +103 -0
  477. rapidata/api_client/models/paged_result_of_participant_by_benchmark.py +103 -0
  478. rapidata/api_client/models/paged_result_of_prompt_by_benchmark_result.py +103 -0
  479. rapidata/api_client/models/paged_result_of_query_audiences_result.py +103 -0
  480. rapidata/api_client/models/paged_result_of_query_datapoints_by_dataset_id_result.py +103 -0
  481. rapidata/api_client/models/paged_result_of_query_job_definitions_result.py +103 -0
  482. rapidata/api_client/models/paged_result_of_query_job_revisions_result.py +103 -0
  483. rapidata/api_client/models/paged_result_of_query_jobs_result.py +103 -0
  484. rapidata/api_client/models/paged_result_of_query_rapids_for_audience_result.py +103 -0
  485. rapidata/api_client/models/paged_result_of_query_validation_rapid_eligibility_result.py +103 -0
  486. rapidata/api_client/models/paged_result_of_rapid_model.py +103 -0
  487. rapidata/api_client/models/paged_result_of_runs_by_leaderboard_result.py +103 -0
  488. rapidata/api_client/models/paged_result_of_sample_by_identifier.py +103 -0
  489. rapidata/api_client/models/paged_result_of_sample_by_participant.py +103 -0
  490. rapidata/api_client/models/paged_result_of_standing_by_leaderboard.py +103 -0
  491. rapidata/api_client/models/paged_result_of_validation_set_model.py +103 -0
  492. rapidata/api_client/models/paged_result_order_model.py +105 -0
  493. rapidata/api_client/models/paged_result_participant_by_benchmark.py +105 -0
  494. rapidata/api_client/models/paged_result_potential_validation_rapid.py +105 -0
  495. rapidata/api_client/models/paged_result_prompt_by_benchmark_result.py +105 -0
  496. rapidata/api_client/models/paged_result_query_audiences_result.py +105 -0
  497. rapidata/api_client/models/paged_result_query_datapoints_by_dataset_id_result.py +105 -0
  498. rapidata/api_client/models/paged_result_query_validation_rapid_eligibility_result.py +105 -0
  499. rapidata/api_client/models/paged_result_rapid_model.py +105 -0
  500. rapidata/api_client/models/paged_result_runs_by_leaderboard_result.py +105 -0
  501. rapidata/api_client/models/paged_result_sample_by_identifier.py +105 -0
  502. rapidata/api_client/models/paged_result_sample_by_participant.py +105 -0
  503. rapidata/api_client/models/paged_result_standing_by_leaderboard.py +105 -0
  504. rapidata/api_client/models/paged_result_validation_set_model.py +105 -0
  505. rapidata/api_client/models/participant_by_benchmark.py +3 -5
  506. rapidata/api_client/models/participant_status.py +2 -2
  507. rapidata/api_client/models/polygon_result.py +3 -3
  508. rapidata/api_client/models/polygon_result_coordinate.py +89 -0
  509. rapidata/api_client/models/polygon_result_shape.py +95 -0
  510. rapidata/api_client/models/preliminary_download_model.py +5 -5
  511. rapidata/api_client/models/preview_order_model.py +5 -5
  512. rapidata/api_client/models/problem_details.py +2 -20
  513. rapidata/api_client/models/prompt_asset_metadata_input.py +4 -6
  514. rapidata/api_client/models/prompt_asset_metadata_input_asset.py +25 -41
  515. rapidata/api_client/models/prompt_by_benchmark_result.py +5 -5
  516. rapidata/api_client/models/prompt_metadata_input.py +5 -7
  517. rapidata/api_client/models/proxy_file_wrapper.py +17 -2
  518. rapidata/api_client/models/public_order_model.py +2 -2
  519. rapidata/api_client/models/query_audiences_result.py +118 -0
  520. rapidata/api_client/models/query_datapoints_by_dataset_id_result.py +95 -0
  521. rapidata/api_client/models/query_job_definitions_result.py +97 -0
  522. rapidata/api_client/models/query_job_revisions_result.py +95 -0
  523. rapidata/api_client/models/query_jobs_result.py +103 -0
  524. rapidata/api_client/models/query_model.py +10 -5
  525. rapidata/api_client/models/query_rapids_for_audience_result.py +150 -0
  526. rapidata/api_client/models/query_validation_rapid_eligibility_model_query_validation_model.py +107 -0
  527. rapidata/api_client/models/query_validation_rapid_eligibility_result.py +103 -0
  528. rapidata/api_client/models/query_validation_rapid_eligibility_result_truth.py +280 -0
  529. rapidata/api_client/models/rapid_issue.py +2 -2
  530. rapidata/api_client/models/rapid_model.py +30 -40
  531. rapidata/api_client/models/rapid_result_model.py +7 -7
  532. rapidata/api_client/models/rapid_skipped_model.py +5 -5
  533. rapidata/api_client/models/rapid_state.py +2 -2
  534. rapidata/api_client/models/read_bridge_token_keys_result.py +10 -24
  535. rapidata/api_client/models/reference_asset_input.py +100 -0
  536. rapidata/api_client/models/report_model.py +7 -7
  537. rapidata/api_client/models/retrieval_mode.py +2 -2
  538. rapidata/api_client/models/root_filter.py +2 -2
  539. rapidata/api_client/models/run_status.py +2 -2
  540. rapidata/api_client/models/runs_by_leaderboard_result.py +3 -3
  541. rapidata/api_client/models/sample_by_identifier.py +7 -8
  542. rapidata/api_client/models/sample_by_participant.py +7 -8
  543. rapidata/api_client/models/scrub_range.py +2 -2
  544. rapidata/api_client/models/send_survey_model.py +87 -0
  545. rapidata/api_client/models/simple_workflow_config.py +3 -3
  546. rapidata/api_client/models/simple_workflow_model.py +2 -2
  547. rapidata/api_client/models/simple_workflow_model1.py +4 -11
  548. rapidata/api_client/models/simple_workflow_model_blueprint.py +1 -1
  549. rapidata/api_client/models/sort_criterion.py +2 -2
  550. rapidata/api_client/models/sort_direction.py +2 -2
  551. rapidata/api_client/models/standing_by_benchmark.py +113 -0
  552. rapidata/api_client/models/standing_by_leaderboard.py +16 -12
  553. rapidata/api_client/models/standing_status.py +2 -2
  554. rapidata/api_client/models/standings_by_benchmark_result.py +95 -0
  555. rapidata/api_client/models/standings_by_leaderboard_result.py +2 -2
  556. rapidata/api_client/models/start_preliminary_download_result.py +87 -0
  557. rapidata/api_client/models/sticky_state.py +3 -2
  558. rapidata/api_client/models/stream_file_wrapper.py +25 -3
  559. rapidata/api_client/models/string_segment.py +105 -0
  560. rapidata/api_client/models/submit_order_model.py +5 -5
  561. rapidata/api_client/models/submit_participant_result.py +2 -2
  562. rapidata/api_client/models/submit_prompt_model.py +9 -14
  563. rapidata/api_client/models/submit_prompt_model_prompt_asset.py +40 -12
  564. rapidata/api_client/models/tags_by_benchmark_result.py +2 -2
  565. rapidata/api_client/models/text_asset.py +3 -5
  566. rapidata/api_client/models/text_asset_input.py +21 -1
  567. rapidata/api_client/models/text_metadata.py +6 -1
  568. rapidata/api_client/models/text_metadata_input.py +111 -0
  569. rapidata/api_client/models/text_metadata_model.py +7 -2
  570. rapidata/api_client/models/transcription_metadata_input.py +5 -7
  571. rapidata/api_client/models/transcription_word.py +2 -2
  572. rapidata/api_client/models/translated_string.py +2 -2
  573. rapidata/api_client/models/unlock_order_result.py +2 -2
  574. rapidata/api_client/models/update_audience_request.py +113 -0
  575. rapidata/api_client/models/update_benchmark_model.py +99 -0
  576. rapidata/api_client/models/update_benchmark_name_model.py +5 -5
  577. rapidata/api_client/models/update_campaign_model.py +11 -11
  578. rapidata/api_client/models/update_dataset_name_model.py +5 -5
  579. rapidata/api_client/models/update_dimensions_model.py +3 -3
  580. rapidata/api_client/models/update_job_definition_endpoint_input.py +92 -0
  581. rapidata/api_client/models/update_leaderboard_model.py +18 -3
  582. rapidata/api_client/models/update_leaderboard_name_model.py +5 -5
  583. rapidata/api_client/models/update_leaderboard_response_config_model.py +5 -5
  584. rapidata/api_client/models/update_order_name_model.py +5 -5
  585. rapidata/api_client/models/update_participant_model.py +92 -0
  586. rapidata/api_client/models/update_participant_name_model.py +5 -5
  587. rapidata/api_client/models/update_priority_model.py +87 -0
  588. rapidata/api_client/models/update_prompt_tags_model.py +5 -5
  589. rapidata/api_client/models/update_should_alert_model.py +4 -4
  590. rapidata/api_client/models/update_validation_rapid_model.py +35 -14
  591. rapidata/api_client/models/update_validation_rapid_model_context_asset.py +160 -0
  592. rapidata/api_client/models/update_validation_set_model.py +120 -0
  593. rapidata/api_client/models/upload_asset_result.py +102 -0
  594. rapidata/api_client/models/upload_file_from_url_result.py +87 -0
  595. rapidata/api_client/models/upload_file_result.py +87 -0
  596. rapidata/api_client/models/user_action_restriction.py +37 -0
  597. rapidata/api_client/models/user_action_restriction_filter.py +101 -0
  598. rapidata/api_client/models/validation_chance.py +20 -3
  599. rapidata/api_client/models/validation_problem_details.py +117 -0
  600. rapidata/api_client/models/validation_set_model.py +11 -16
  601. rapidata/api_client/models/validation_set_overview_model.py +2 -2
  602. rapidata/api_client/models/workflow_config_artifact_model_workflow_config.py +23 -9
  603. rapidata/api_client/models/workflow_state.py +2 -2
  604. rapidata/api_client/models/zip_entry_file_wrapper.py +33 -2
  605. rapidata/api_client/rest.py +2 -2
  606. rapidata/api_client_README.md +371 -326
  607. rapidata/rapidata_client/__init__.py +14 -11
  608. rapidata/rapidata_client/api/{rapidata_exception.py → rapidata_api_client.py} +119 -2
  609. rapidata/rapidata_client/audience/__init__.py +2 -0
  610. rapidata/rapidata_client/audience/audience_example_handler.py +168 -0
  611. rapidata/rapidata_client/audience/rapidata_audience.py +287 -0
  612. rapidata/rapidata_client/audience/rapidata_audience_manager.py +162 -0
  613. rapidata/rapidata_client/benchmark/_detail_mapper.py +11 -9
  614. rapidata/rapidata_client/benchmark/leaderboard/rapidata_leaderboard.py +98 -54
  615. rapidata/rapidata_client/benchmark/participant/_participant.py +57 -32
  616. rapidata/rapidata_client/benchmark/rapidata_benchmark.py +384 -246
  617. rapidata/rapidata_client/benchmark/rapidata_benchmark_manager.py +137 -81
  618. rapidata/rapidata_client/config/__init__.py +3 -0
  619. rapidata/rapidata_client/config/logger.py +135 -0
  620. rapidata/rapidata_client/config/logging_config.py +55 -0
  621. rapidata/rapidata_client/config/managed_print.py +6 -0
  622. rapidata/rapidata_client/config/order_config.py +14 -0
  623. rapidata/rapidata_client/config/rapidata_config.py +15 -10
  624. rapidata/rapidata_client/config/tracer.py +184 -0
  625. rapidata/rapidata_client/config/upload_config.py +64 -0
  626. rapidata/rapidata_client/datapoints/__init__.py +0 -3
  627. rapidata/rapidata_client/datapoints/_asset_uploader.py +184 -0
  628. rapidata/rapidata_client/datapoints/_datapoint.py +72 -176
  629. rapidata/rapidata_client/datapoints/_datapoint_uploader.py +47 -0
  630. rapidata/rapidata_client/datapoints/_datapoints_validator.py +70 -0
  631. rapidata/rapidata_client/datapoints/assets/__init__.py +0 -10
  632. rapidata/rapidata_client/datapoints/metadata/__init__.py +0 -2
  633. rapidata/rapidata_client/datapoints/metadata/_private_text_metadata.py +5 -6
  634. rapidata/rapidata_client/datapoints/metadata/_prompt_identifier_metadata.py +4 -5
  635. rapidata/rapidata_client/datapoints/metadata/_public_text_metadata.py +5 -6
  636. rapidata/rapidata_client/datapoints/metadata/_select_words_metadata.py +3 -4
  637. rapidata/rapidata_client/dataset/__init__.py +1 -0
  638. rapidata/rapidata_client/dataset/_rapidata_dataset.py +55 -0
  639. rapidata/rapidata_client/demographic/demographic_manager.py +44 -19
  640. rapidata/rapidata_client/exceptions/failed_upload_exception.py +10 -65
  641. rapidata/rapidata_client/filter/_backend_filter_mapper.py +134 -0
  642. rapidata/rapidata_client/filter/_base_filter.py +13 -8
  643. rapidata/rapidata_client/filter/age_filter.py +26 -10
  644. rapidata/rapidata_client/filter/and_filter.py +36 -11
  645. rapidata/rapidata_client/filter/campaign_filter.py +21 -10
  646. rapidata/rapidata_client/filter/country_filter.py +46 -12
  647. rapidata/rapidata_client/filter/custom_filter.py +25 -12
  648. rapidata/rapidata_client/filter/gender_filter.py +25 -10
  649. rapidata/rapidata_client/filter/language_filter.py +51 -21
  650. rapidata/rapidata_client/filter/models/age_group.py +14 -12
  651. rapidata/rapidata_client/filter/models/gender.py +12 -8
  652. rapidata/rapidata_client/filter/new_user_filter.py +14 -4
  653. rapidata/rapidata_client/filter/not_filter.py +35 -11
  654. rapidata/rapidata_client/filter/or_filter.py +36 -11
  655. rapidata/rapidata_client/filter/rapidata_filters.py +17 -23
  656. rapidata/rapidata_client/filter/response_count_filter.py +40 -14
  657. rapidata/rapidata_client/filter/user_score_filter.py +62 -24
  658. rapidata/rapidata_client/job/__init__.py +3 -0
  659. rapidata/rapidata_client/job/job_definition.py +110 -0
  660. rapidata/rapidata_client/job/job_manager.py +758 -0
  661. rapidata/rapidata_client/job/rapidata_job.py +326 -0
  662. rapidata/rapidata_client/order/__init__.py +2 -0
  663. rapidata/rapidata_client/order/_rapidata_order_builder.py +236 -196
  664. rapidata/rapidata_client/order/rapidata_order.py +271 -176
  665. rapidata/rapidata_client/order/rapidata_order_manager.py +520 -364
  666. rapidata/rapidata_client/rapidata_client.py +96 -29
  667. rapidata/rapidata_client/referee/__init__.py +1 -1
  668. rapidata/rapidata_client/referee/_base_referee.py +14 -3
  669. rapidata/rapidata_client/referee/_early_stopping_referee.py +32 -17
  670. rapidata/rapidata_client/referee/_naive_referee.py +24 -3
  671. rapidata/rapidata_client/results/__init__.py +3 -0
  672. rapidata/rapidata_client/{order → results}/rapidata_results.py +86 -63
  673. rapidata/rapidata_client/selection/_base_selection.py +9 -2
  674. rapidata/rapidata_client/selection/ab_test_selection.py +28 -20
  675. rapidata/rapidata_client/selection/capped_selection.py +23 -16
  676. rapidata/rapidata_client/selection/conditional_validation_selection.py +43 -24
  677. rapidata/rapidata_client/selection/demographic_selection.py +21 -6
  678. rapidata/rapidata_client/selection/effort_selection.py +20 -8
  679. rapidata/rapidata_client/selection/labeling_selection.py +21 -10
  680. rapidata/rapidata_client/selection/rapidata_selections.py +23 -14
  681. rapidata/rapidata_client/selection/shuffling_selection.py +21 -13
  682. rapidata/rapidata_client/selection/static_selection.py +19 -8
  683. rapidata/rapidata_client/selection/validation_selection.py +20 -4
  684. rapidata/rapidata_client/settings/__init__.py +2 -0
  685. rapidata/rapidata_client/settings/_rapidata_setting.py +22 -3
  686. rapidata/rapidata_client/settings/alert_on_fast_response.py +8 -5
  687. rapidata/rapidata_client/settings/allow_neither_both.py +3 -0
  688. rapidata/rapidata_client/settings/custom_setting.py +3 -2
  689. rapidata/rapidata_client/settings/free_text_minimum_characters.py +9 -4
  690. rapidata/rapidata_client/settings/models/translation_behaviour_options.py +3 -2
  691. rapidata/rapidata_client/settings/mute_video.py +15 -0
  692. rapidata/rapidata_client/settings/no_shuffle.py +4 -2
  693. rapidata/rapidata_client/settings/play_video_until_the_end.py +7 -4
  694. rapidata/rapidata_client/settings/rapidata_settings.py +22 -9
  695. rapidata/rapidata_client/settings/swap_context_instruction.py +20 -0
  696. rapidata/rapidata_client/settings/translation_behaviour.py +7 -5
  697. rapidata/rapidata_client/utils/__init__.py +3 -0
  698. rapidata/rapidata_client/utils/threaded_uploader.py +153 -0
  699. rapidata/rapidata_client/validation/__init__.py +2 -0
  700. rapidata/rapidata_client/validation/rapidata_validation_set.py +68 -21
  701. rapidata/rapidata_client/validation/rapids/__init__.py +2 -0
  702. rapidata/rapidata_client/validation/rapids/_validation_rapid_uploader.py +48 -0
  703. rapidata/rapidata_client/validation/rapids/box.py +37 -12
  704. rapidata/rapidata_client/validation/rapids/rapids.py +28 -109
  705. rapidata/rapidata_client/validation/rapids/rapids_manager.py +369 -211
  706. rapidata/rapidata_client/validation/validation_set_manager.py +417 -294
  707. rapidata/rapidata_client/workflow/__init__.py +2 -2
  708. rapidata/rapidata_client/workflow/_base_workflow.py +17 -26
  709. rapidata/rapidata_client/workflow/_classify_workflow.py +44 -17
  710. rapidata/rapidata_client/workflow/_compare_workflow.py +33 -14
  711. rapidata/rapidata_client/workflow/_draw_workflow.py +35 -13
  712. rapidata/rapidata_client/workflow/_evaluation_workflow.py +20 -6
  713. rapidata/rapidata_client/workflow/_free_text_workflow.py +34 -15
  714. rapidata/rapidata_client/workflow/_locate_workflow.py +35 -13
  715. rapidata/rapidata_client/workflow/_multi_ranking_workflow.py +90 -0
  716. rapidata/rapidata_client/workflow/_select_words_workflow.py +38 -32
  717. rapidata/rapidata_client/workflow/_timestamp_workflow.py +35 -13
  718. rapidata/service/__init__.py +0 -1
  719. rapidata/service/credential_manager.py +1 -1
  720. rapidata/service/openapi_service.py +99 -23
  721. rapidata/types/__init__.py +149 -0
  722. rapidata-3.0.0a8.dist-info/METADATA +32 -0
  723. rapidata-3.0.0a8.dist-info/RECORD +1083 -0
  724. {rapidata-2.37.0.dist-info → rapidata-3.0.0a8.dist-info}/WHEEL +1 -1
  725. rapidata/rapidata_client/country_codes/__init__.py +0 -1
  726. rapidata/rapidata_client/country_codes/country_codes.py +0 -19
  727. rapidata/rapidata_client/datapoints/assets/_base_asset.py +0 -11
  728. rapidata/rapidata_client/datapoints/assets/_media_asset.py +0 -318
  729. rapidata/rapidata_client/datapoints/assets/_multi_asset.py +0 -61
  730. rapidata/rapidata_client/datapoints/assets/_sessions.py +0 -40
  731. rapidata/rapidata_client/datapoints/assets/_text_asset.py +0 -34
  732. rapidata/rapidata_client/datapoints/assets/data_type_enum.py +0 -8
  733. rapidata/rapidata_client/datapoints/metadata/_media_asset_metadata.py +0 -22
  734. rapidata/rapidata_client/datapoints/metadata/_prompt_metadata.py +0 -18
  735. rapidata/rapidata_client/logging/__init__.py +0 -2
  736. rapidata/rapidata_client/logging/logger.py +0 -122
  737. rapidata/rapidata_client/logging/output_manager.py +0 -20
  738. rapidata/rapidata_client/order/_rapidata_dataset.py +0 -447
  739. rapidata/rapidata_client/workflow/_ranking_workflow.py +0 -71
  740. rapidata/service/local_file_service.py +0 -25
  741. rapidata-2.37.0.dist-info/METADATA +0 -35
  742. rapidata-2.37.0.dist-info/RECORD +0 -687
  743. {rapidata-2.37.0.dist-info → rapidata-3.0.0a8.dist-info/licenses}/LICENSE +0 -0
@@ -1,4 +1,10 @@
1
- from typing import Literal
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.logging import (
27
+ from rapidata.rapidata_client.config import (
27
28
  logger,
28
29
  managed_print,
29
- RapidataOutputManager,
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
- from rapidata.rapidata_client.settings._rapidata_setting import RapidataSetting
36
- from typing import Sequence
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.__openapi_service = openapi_service
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 _create_order_validation_set(
53
- self,
54
- workflow: Workflow,
55
- order_name: str,
56
- datapoints: list[Datapoint],
57
- settings: Sequence[RapidataSetting] | None = None,
58
- ) -> RapidataValidationSet:
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
- if not datapoints:
115
- raise ValueError("Datapoints cannot be empty")
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
- if len(datapoints) != len(truths):
118
- raise ValueError("The number of datapoints and truths must be equal")
113
+ if len(datapoints) != len(truths):
114
+ raise ValueError("The number of datapoints and truths must be equal")
119
115
 
120
- if not all([isinstance(truth, (list, tuple)) for truth in truths]):
121
- raise ValueError("Truths must be a list of lists or tuples")
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
- if contexts and len(contexts) != len(datapoints):
124
- raise ValueError("The number of contexts and datapoints must be equal")
119
+ if contexts and len(contexts) != len(datapoints):
120
+ raise ValueError("The number of contexts and datapoints must be equal")
125
121
 
126
- if media_contexts and len(media_contexts) != len(datapoints):
127
- raise ValueError(
128
- "The number of media contexts and datapoints must be equal"
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
- if explanations and len(explanations) != len(datapoints):
132
- raise ValueError(
133
- "The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
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
- logger.debug("Creating classification rapids")
137
- rapids: list[Rapid] = []
138
- for i in range(len(datapoints)):
139
- rapid_metadata = []
140
- if contexts:
141
- rapid_metadata.append(PromptMetadata(contexts[i]))
142
- if media_contexts:
143
- rapid_metadata.append(MediaAssetMetadata(media_contexts[i]))
144
- rapids.append(
145
- self.rapid.classification_rapid(
146
- instruction=instruction,
147
- answer_options=answer_options,
148
- datapoint=datapoints[i],
149
- truths=truths[i],
150
- data_type=data_type,
151
- metadata=rapid_metadata,
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
- logger.debug("Submitting classification rapids")
157
- return self._submit(name=name, rapids=rapids, dimensions=dimensions)
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
- if not datapoints:
202
- raise ValueError("Datapoints cannot be empty")
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
- if len(datapoints) != len(truths):
205
- raise ValueError("The number of datapoints and truths must be equal")
199
+ if len(datapoints) != len(truths):
200
+ raise ValueError("The number of datapoints and truths must be equal")
206
201
 
207
- if not all([isinstance(truth, str) for truth in truths]):
208
- raise ValueError("Truths must be a list of strings")
202
+ if not all([isinstance(truth, str) for truth in truths]):
203
+ raise ValueError("Truths must be a list of strings")
209
204
 
210
- if contexts and len(contexts) != len(datapoints):
211
- raise ValueError("The number of contexts and datapoints must be equal")
205
+ if contexts and len(contexts) != len(datapoints):
206
+ raise ValueError("The number of contexts and datapoints must be equal")
212
207
 
213
- if media_contexts and len(media_contexts) != len(datapoints):
214
- raise ValueError(
215
- "The number of media contexts and datapoints must be equal"
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
- if explanation and len(explanation) != len(datapoints):
219
- raise ValueError(
220
- "The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
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
- logger.debug("Creating comparison rapids")
224
- rapids: list[Rapid] = []
225
- for i in range(len(datapoints)):
226
- rapid_metadata = []
227
- if contexts:
228
- rapid_metadata.append(PromptMetadata(contexts[i]))
229
- if media_contexts:
230
- rapid_metadata.append(MediaAssetMetadata(media_contexts[i]))
231
- rapids.append(
232
- self.rapid.compare_rapid(
233
- instruction=instruction,
234
- truth=truths[i],
235
- datapoint=datapoints[i],
236
- data_type=data_type,
237
- metadata=rapid_metadata,
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
- logger.debug("Submitting comparison rapids")
243
- return self._submit(name=name, rapids=rapids, dimensions=dimensions)
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
- if not datapoints:
284
- raise ValueError("Datapoints cannot be empty")
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
- if not all([isinstance(truth, (list, tuple)) for truth in truths]):
287
- raise ValueError("Truths must be a list of lists or tuples")
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
- if len(datapoints) != len(truths) or len(datapoints) != len(sentences):
290
- raise ValueError(
291
- "The number of datapoints, truths, and sentences must be equal"
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
- if explanation and len(explanation) != len(datapoints):
295
- raise ValueError(
296
- "The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
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
- logger.debug("Creating select words rapids")
300
- rapids: list[Rapid] = []
301
- for i in range(len(datapoints)):
302
- rapids.append(
303
- self.rapid.select_words_rapid(
304
- instruction=instruction,
305
- truths=truths[i],
306
- datapoint=datapoints[i],
307
- sentence=sentences[i],
308
- required_precision=required_precision,
309
- required_completeness=required_completeness,
310
- explanation=explanation[i] if explanation != None else None,
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
- logger.debug("Submitting select words rapids")
315
- return self._submit(name=name, rapids=rapids, dimensions=dimensions)
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
- if not datapoints:
353
- raise ValueError("Datapoints cannot be empty")
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
- if len(datapoints) != len(truths):
356
- raise ValueError("The number of datapoints and truths must be equal")
352
+ if len(datapoints) != len(truths):
353
+ raise ValueError("The number of datapoints and truths must be equal")
357
354
 
358
- if not all([isinstance(truth, (list, tuple)) for truth in truths]):
359
- raise ValueError("Truths must be a list of lists or tuples")
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
- if contexts and len(contexts) != len(datapoints):
362
- raise ValueError("The number of contexts and datapoints must be equal")
358
+ if contexts and len(contexts) != len(datapoints):
359
+ raise ValueError("The number of contexts and datapoints must be equal")
363
360
 
364
- if media_contexts and len(media_contexts) != len(datapoints):
365
- raise ValueError(
366
- "The number of media contexts and datapoints must be equal"
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
- if explanation and len(explanation) != len(datapoints):
370
- raise ValueError(
371
- "The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
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
- logger.debug("Creating locate rapids")
375
- rapids = []
376
- rapids: list[Rapid] = []
377
- for i in range(len(datapoints)):
378
- rapid_metadata = []
379
- if contexts:
380
- rapid_metadata.append(PromptMetadata(contexts[i]))
381
- if media_contexts:
382
- rapid_metadata.append(MediaAssetMetadata(media_contexts[i]))
383
- rapids.append(
384
- self.rapid.locate_rapid(
385
- instruction=instruction,
386
- truths=truths[i],
387
- datapoint=datapoints[i],
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
- logger.debug("Submitting locate rapids")
394
- return self._submit(name=name, rapids=rapids, dimensions=dimensions)
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
- if not datapoints:
432
- raise ValueError("Datapoints cannot be empty")
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
- if len(datapoints) != len(truths):
435
- raise ValueError("The number of datapoints and truths must be equal")
429
+ if len(datapoints) != len(truths):
430
+ raise ValueError("The number of datapoints and truths must be equal")
436
431
 
437
- if not all([isinstance(truth, (list, tuple)) for truth in truths]):
438
- raise ValueError("Truths must be a list of lists or tuples")
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
- if contexts and len(contexts) != len(datapoints):
441
- raise ValueError("The number of contexts and datapoints must be equal")
435
+ if contexts and len(contexts) != len(datapoints):
436
+ raise ValueError("The number of contexts and datapoints must be equal")
442
437
 
443
- if media_contexts and len(media_contexts) != len(datapoints):
444
- raise ValueError(
445
- "The number of media contexts and datapoints must be equal"
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
- if explanation and len(explanation) != len(datapoints):
449
- raise ValueError(
450
- "The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
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
- logger.debug("Creating draw rapids")
454
- rapids: list[Rapid] = []
455
- for i in range(len(datapoints)):
456
- rapid_metadata = []
457
- if contexts:
458
- rapid_metadata.append(PromptMetadata(contexts[i]))
459
- if media_contexts:
460
- rapid_metadata.append(MediaAssetMetadata(media_contexts[i]))
461
- rapids.append(
462
- self.rapid.draw_rapid(
463
- instruction=instruction,
464
- truths=truths[i],
465
- datapoint=datapoints[i],
466
- metadata=rapid_metadata,
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
- logger.debug("Submitting draw rapids")
472
- return self._submit(name=name, rapids=rapids, dimensions=dimensions)
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
- if not datapoints:
511
- raise ValueError("Datapoints cannot be empty")
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
- if len(datapoints) != len(truths):
514
- raise ValueError("The number of datapoints and truths must be equal")
507
+ if len(datapoints) != len(truths):
508
+ raise ValueError("The number of datapoints and truths must be equal")
515
509
 
516
- if not all([isinstance(truth, (list, tuple)) for truth in truths]):
517
- raise ValueError("Truths must be a list of lists or tuples")
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
- if contexts and len(contexts) != len(datapoints):
520
- raise ValueError("The number of contexts and datapoints must be equal")
513
+ if contexts and len(contexts) != len(datapoints):
514
+ raise ValueError("The number of contexts and datapoints must be equal")
521
515
 
522
- if media_contexts and len(media_contexts) != len(datapoints):
523
- raise ValueError(
524
- "The number of media contexts and datapoints must be equal"
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
- if explanation and len(explanation) != len(datapoints):
528
- raise ValueError(
529
- "The number of explanations and datapoints must be equal, the index must align, but can be padded with None"
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
- logger.debug("Creating timestamp rapids")
533
- rapids: list[Rapid] = []
534
- for i in range(len(datapoints)):
535
- rapid_metadata = []
536
- if contexts:
537
- rapid_metadata.append(PromptMetadata(contexts[i]))
538
- if media_contexts:
539
- rapid_metadata.append(MediaAssetMetadata(media_contexts[i]))
540
- rapids.append(
541
- self.rapid.timestamp_rapid(
542
- instruction=instruction,
543
- truths=truths[i],
544
- datapoint=datapoints[i],
545
- metadata=rapid_metadata,
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
- logger.debug("Submitting timestamp rapids")
551
- return self._submit(name=name, rapids=rapids, dimensions=dimensions)
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
- if not rapids:
567
- raise ValueError("Rapids cannot be empty")
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
- return self._submit(name=name, rapids=rapids, dimensions=dimensions)
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.__openapi_service.validation_api.validation_set_post(
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
- openapi_service=self.__openapi_service,
584
+ dimensions=dimensions,
585
+ openapi_service=self._openapi_service,
595
586
  )
596
-
597
- logger.debug("Adding rapids to validation set")
598
- failed_rapids = []
599
- for rapid in tqdm(
600
- rapids,
601
- desc="Uploading validation tasks",
602
- disable=RapidataOutputManager.silent_mode,
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
- validation_set = (
642
- self.__openapi_service.validation_api.validation_set_validation_set_id_get(
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
- return RapidataValidationSet(
648
- validation_set_id, str(validation_set.name), self.__openapi_service
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 = 1
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 1.
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
- validation_page_result = (
665
- self.__openapi_service.validation_api.validation_sets_get(
666
- QueryModel(
667
- page=PageInfo(index=1, size=amount),
668
- filter=RootFilter(
669
- filters=[
670
- Filter(
671
- field="Name",
672
- operator=FilterOperator.CONTAINS,
673
- value=name,
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
- validation_sets = [
687
- self.get_validation_set_by_id(str(validation_set.id))
688
- for validation_set in validation_page_result.items
689
- ]
690
- return validation_sets
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__()