rapidata 2.35.1__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 (790) hide show
  1. rapidata/__init__.py +25 -16
  2. rapidata/api_client/__init__.py +84 -408
  3. rapidata/api_client/api/__init__.py +6 -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 +904 -245
  7. rapidata/api_client/api/campaign_api.py +582 -24
  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 +364 -123
  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 +140 -2067
  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 -1480
  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 +300 -0
  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 +377 -1835
  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 -382
  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 +49 -26
  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_model_truth.py +7 -1
  45. rapidata/api_client/models/add_validation_rapid_new_model.py +137 -0
  46. rapidata/api_client/models/add_validation_rapid_new_model_asset.py +182 -0
  47. rapidata/api_client/models/add_validation_rapid_new_model_truth.py +286 -0
  48. rapidata/api_client/models/age_user_filter_model.py +2 -2
  49. rapidata/api_client/models/age_user_filter_model_age_group.py +41 -0
  50. rapidata/api_client/models/aggregated_orders_model.py +98 -0
  51. rapidata/api_client/models/aggregator_type.py +4 -2
  52. rapidata/api_client/models/and_filter.py +121 -0
  53. rapidata/api_client/models/and_filter_filters_inner.py +282 -0
  54. rapidata/api_client/models/are_rapids_active_result.py +2 -2
  55. rapidata/api_client/models/asset_metadata.py +11 -9
  56. rapidata/api_client/models/asset_type.py +40 -0
  57. rapidata/api_client/models/attach_category_rapid_blueprint.py +13 -3
  58. rapidata/api_client/models/attach_category_rapid_blueprint_category.py +89 -0
  59. rapidata/api_client/models/audience_job_state.py +38 -0
  60. rapidata/api_client/models/audience_status.py +39 -0
  61. rapidata/api_client/models/benchmark_query_result.py +5 -3
  62. rapidata/api_client/models/boost_leaderboard_model.py +5 -5
  63. rapidata/api_client/models/boost_mode.py +37 -0
  64. rapidata/api_client/models/boost_query_result.py +7 -10
  65. rapidata/api_client/models/boost_query_result_boost_mode.py +37 -0
  66. rapidata/api_client/models/boost_query_result_boost_status.py +39 -0
  67. rapidata/api_client/models/boosting_profile.py +91 -0
  68. rapidata/api_client/models/box_shape.py +4 -33
  69. rapidata/api_client/models/campaign_filter.py +98 -0
  70. rapidata/api_client/models/campaign_query_result.py +15 -13
  71. rapidata/api_client/models/campaign_status.py +2 -2
  72. rapidata/api_client/models/change_boost_model.py +89 -0
  73. rapidata/api_client/models/classification_metadata.py +12 -1
  74. rapidata/api_client/models/classify_payload.py +14 -15
  75. rapidata/api_client/models/classify_payload_category.py +89 -0
  76. rapidata/api_client/models/client_model.py +25 -35
  77. rapidata/api_client/models/clients_query_result.py +5 -5
  78. rapidata/api_client/models/clone_order_model.py +4 -4
  79. rapidata/api_client/models/clone_order_result.py +9 -4
  80. rapidata/api_client/models/compare_rapid_blueprint.py +5 -3
  81. rapidata/api_client/models/compare_rapid_blueprint1.py +96 -0
  82. rapidata/api_client/models/compare_workflow_config.py +34 -23
  83. rapidata/api_client/models/compare_workflow_config_context_asset.py +174 -0
  84. rapidata/api_client/models/compare_workflow_config_model.py +15 -5
  85. rapidata/api_client/models/compare_workflow_model.py +34 -6
  86. rapidata/api_client/models/compare_workflow_model1.py +20 -9
  87. rapidata/api_client/models/compare_workflow_model_context_asset.py +160 -0
  88. rapidata/api_client/models/compare_workflow_model_metadata_inner.py +154 -0
  89. rapidata/api_client/models/compare_workflow_model_pair_maker_config.py +1 -1
  90. rapidata/api_client/models/comparison_operator.py +2 -2
  91. rapidata/api_client/models/conditional_validation_selection.py +6 -11
  92. rapidata/api_client/models/conditional_validation_selection_validation_chance.py +103 -0
  93. rapidata/api_client/models/confidence_interval.py +89 -0
  94. rapidata/api_client/models/count_metadata.py +12 -1
  95. rapidata/api_client/models/country_filter.py +98 -0
  96. rapidata/api_client/models/create_audience_request.py +122 -0
  97. rapidata/api_client/models/create_audience_result.py +87 -0
  98. rapidata/api_client/models/create_benchmark_model.py +5 -5
  99. rapidata/api_client/models/create_benchmark_participant_model.py +5 -5
  100. rapidata/api_client/models/create_benchmark_participant_result.py +4 -4
  101. rapidata/api_client/models/create_benchmark_prompt_result.py +87 -0
  102. rapidata/api_client/models/create_benchmark_result.py +2 -2
  103. rapidata/api_client/models/create_bridge_token_result.py +2 -2
  104. rapidata/api_client/models/create_client_model.py +6 -13
  105. rapidata/api_client/models/create_complex_order_model.py +9 -9
  106. rapidata/api_client/models/create_complex_order_result.py +2 -2
  107. rapidata/api_client/models/create_customer_client_result.py +2 -2
  108. rapidata/api_client/models/create_datapoint_from_files_model.py +3 -3
  109. rapidata/api_client/models/create_datapoint_from_text_sources_model.py +3 -3
  110. rapidata/api_client/models/create_datapoint_from_urls_model.py +3 -3
  111. rapidata/api_client/models/create_datapoint_model.py +124 -0
  112. rapidata/api_client/models/create_datapoint_model_asset.py +154 -0
  113. rapidata/api_client/models/create_datapoint_model_context_asset.py +160 -0
  114. rapidata/api_client/models/create_datapoint_model_metadata_inner.py +154 -0
  115. rapidata/api_client/models/create_datapoint_result.py +2 -2
  116. rapidata/api_client/models/create_dataset_endpoint_input.py +87 -0
  117. rapidata/api_client/models/create_dataset_endpoint_output.py +87 -0
  118. rapidata/api_client/models/create_demographic_rapid_model.py +45 -7
  119. rapidata/api_client/models/create_demographic_rapid_model_asset.py +160 -0
  120. rapidata/api_client/models/create_demographic_rapid_model_context_asset.py +160 -0
  121. rapidata/api_client/models/create_demographic_rapid_model_new.py +119 -0
  122. rapidata/api_client/models/create_empty_validation_set_result.py +2 -2
  123. rapidata/api_client/models/create_job_definition_endpoint_input.py +119 -0
  124. rapidata/api_client/models/create_job_definition_endpoint_output.py +89 -0
  125. rapidata/api_client/models/create_job_endpoint_input.py +100 -0
  126. rapidata/api_client/models/create_job_endpoint_output.py +89 -0
  127. rapidata/api_client/models/create_job_revision_endpoint_input.py +127 -0
  128. rapidata/api_client/models/create_job_revision_endpoint_output.py +89 -0
  129. rapidata/api_client/models/create_leaderboard_model.py +42 -15
  130. rapidata/api_client/models/create_leaderboard_result.py +2 -2
  131. rapidata/api_client/models/create_order_definition_model.py +119 -0
  132. rapidata/api_client/models/create_order_definition_result.py +87 -0
  133. rapidata/api_client/models/create_order_definition_revision_model.py +117 -0
  134. rapidata/api_client/models/create_order_definition_revision_result.py +87 -0
  135. rapidata/api_client/models/create_order_model.py +30 -101
  136. rapidata/api_client/models/create_order_model_referee.py +12 -12
  137. rapidata/api_client/models/create_order_model_workflow.py +35 -21
  138. rapidata/api_client/models/create_order_result.py +2 -2
  139. rapidata/api_client/models/create_rapid_result.py +2 -2
  140. rapidata/api_client/models/create_sample_model.py +13 -7
  141. rapidata/api_client/models/create_sample_model_asset.py +154 -0
  142. rapidata/api_client/models/create_sample_model_obsolete.py +87 -0
  143. rapidata/api_client/models/create_simple_pipeline_model_pipeline_steps_inner.py +8 -22
  144. rapidata/api_client/models/create_unsupported_order_model.py +6 -6
  145. rapidata/api_client/models/create_validation_set_model.py +5 -5
  146. rapidata/api_client/models/datapoint_model.py +3 -3
  147. rapidata/api_client/models/datapoint_state.py +2 -2
  148. rapidata/api_client/models/definition_type.py +49 -0
  149. rapidata/api_client/models/demographic_filter.py +100 -0
  150. rapidata/api_client/models/dynamic_client_registration_request.py +21 -36
  151. rapidata/api_client/models/early_stopping_referee_model.py +3 -3
  152. rapidata/api_client/models/effort_capped_selection.py +2 -11
  153. rapidata/api_client/models/elo_config.py +2 -2
  154. rapidata/api_client/models/elo_config_model.py +6 -6
  155. rapidata/api_client/models/entity_tag_header_value.py +93 -0
  156. rapidata/api_client/models/evaluation_workflow_config.py +13 -3
  157. rapidata/api_client/models/evaluation_workflow_model.py +16 -6
  158. rapidata/api_client/models/existing_asset_input.py +109 -0
  159. rapidata/api_client/models/existing_asset_input_metadata_value.py +126 -0
  160. rapidata/api_client/models/feature_flag.py +2 -2
  161. rapidata/api_client/models/feature_flag_model.py +6 -6
  162. rapidata/api_client/models/feedback_model.py +7 -7
  163. rapidata/api_client/models/file_asset.py +3 -5
  164. rapidata/api_client/models/file_asset_input_file.py +8 -22
  165. rapidata/api_client/models/file_asset_metadata_value.py +252 -0
  166. rapidata/api_client/models/file_asset_model_metadata_value.py +18 -88
  167. rapidata/api_client/models/file_stream_result.py +122 -0
  168. rapidata/api_client/models/file_type.py +2 -2
  169. rapidata/api_client/models/file_type_metadata.py +11 -6
  170. rapidata/api_client/models/file_type_metadata_model.py +2 -8
  171. rapidata/api_client/models/filter.py +7 -25
  172. rapidata/api_client/models/filter_operator.py +2 -2
  173. rapidata/api_client/models/fork_benchmark_result.py +87 -0
  174. rapidata/api_client/models/form_file_wrapper.py +17 -2
  175. rapidata/api_client/models/free_text_payload.py +10 -3
  176. rapidata/api_client/models/free_text_rapid_blueprint.py +10 -3
  177. rapidata/api_client/models/gender_user_filter_model.py +2 -2
  178. rapidata/api_client/models/gender_user_filter_model_gender.py +38 -0
  179. rapidata/api_client/models/get_asset_metadata_result.py +100 -0
  180. rapidata/api_client/models/get_audience_by_id_result.py +118 -0
  181. rapidata/api_client/models/get_available_validation_sets_result.py +2 -2
  182. rapidata/api_client/models/get_benchmark_by_id_result.py +8 -4
  183. rapidata/api_client/models/get_boost_result.py +97 -0
  184. rapidata/api_client/models/get_boost_result_boost_mode.py +37 -0
  185. rapidata/api_client/models/get_boost_result_boost_status.py +39 -0
  186. rapidata/api_client/models/get_compare_ab_summary_result.py +5 -5
  187. rapidata/api_client/models/get_compare_workflow_results_model.py +7 -7
  188. rapidata/api_client/models/get_compare_workflow_results_result.py +5 -5
  189. rapidata/api_client/models/get_datapoint_by_id_result.py +10 -21
  190. rapidata/api_client/models/get_datapoint_by_id_result_asset.py +170 -0
  191. rapidata/api_client/models/get_dataset_by_id_result.py +2 -2
  192. rapidata/api_client/models/get_dataset_progress_result.py +2 -2
  193. rapidata/api_client/models/get_evaluation_workflow_results_model.py +119 -0
  194. rapidata/api_client/models/get_failed_datapoints_result.py +5 -5
  195. rapidata/api_client/models/get_failed_datapoints_result_datapoint.py +100 -0
  196. rapidata/api_client/models/get_file_metadata_result.py +100 -0
  197. rapidata/api_client/models/get_grouped_ranking_workflow_results_model.py +106 -0
  198. rapidata/api_client/models/get_grouped_ranking_workflow_results_result.py +97 -0
  199. rapidata/api_client/models/get_grouped_ranking_workflow_results_result_paged_result.py +105 -0
  200. rapidata/api_client/models/get_job_by_id_endpoint_output.py +130 -0
  201. rapidata/api_client/models/get_job_definition_by_id_endpoint_output.py +95 -0
  202. rapidata/api_client/models/get_job_revision_endpoint_output.py +133 -0
  203. rapidata/api_client/models/get_leaderboard_by_id_result.py +31 -4
  204. rapidata/api_client/models/get_order_by_id_result.py +12 -5
  205. rapidata/api_client/models/get_participant_by_id_result.py +4 -6
  206. rapidata/api_client/models/get_pipeline_by_id_result.py +5 -5
  207. rapidata/api_client/models/get_public_orders_result.py +2 -2
  208. rapidata/api_client/models/get_public_responses_result.py +95 -0
  209. rapidata/api_client/models/get_public_responses_result_response.py +112 -0
  210. rapidata/api_client/models/get_rapid_responses_result.py +6 -12
  211. rapidata/api_client/models/get_recommended_validation_set_result.py +95 -0
  212. rapidata/api_client/models/get_responses_for_rapid_result.py +106 -0
  213. rapidata/api_client/models/get_responses_for_rapid_result_response.py +103 -0
  214. rapidata/api_client/models/get_responses_for_rapid_result_response_result.py +266 -0
  215. rapidata/api_client/models/get_responses_result.py +5 -5
  216. rapidata/api_client/models/get_responses_result_response.py +103 -0
  217. rapidata/api_client/models/get_sample_by_id_result.py +125 -0
  218. rapidata/api_client/models/get_simple_workflow_results_model.py +20 -15
  219. rapidata/api_client/models/get_standing_by_id_result.py +6 -14
  220. rapidata/api_client/models/get_validation_rapids_result.py +32 -41
  221. rapidata/api_client/models/get_validation_set_by_id_result.py +10 -4
  222. rapidata/api_client/models/get_workflow_by_id_result.py +5 -5
  223. rapidata/api_client/models/get_workflow_by_id_result_workflow.py +23 -9
  224. rapidata/api_client/models/get_workflow_progress_result.py +5 -11
  225. rapidata/api_client/models/get_workflow_results_result.py +34 -23
  226. rapidata/api_client/models/get_workflow_results_result_response.py +103 -0
  227. rapidata/api_client/models/google_one_tap_login_model.py +4 -4
  228. rapidata/api_client/models/grouped_ranking_workflow_config.py +155 -0
  229. rapidata/api_client/models/grouped_ranking_workflow_config_context_assets_value.py +170 -0
  230. rapidata/api_client/models/grouped_ranking_workflow_model.py +147 -0
  231. rapidata/api_client/models/grouped_ranking_workflow_model1.py +121 -0
  232. rapidata/api_client/models/i_artifact_model.py +182 -0
  233. rapidata/api_client/models/i_artifact_model_campaign_artifact_model.py +98 -0
  234. rapidata/api_client/models/i_artifact_model_dataset_artifact_model.py +98 -0
  235. rapidata/api_client/models/i_artifact_model_file_artifact_model.py +98 -0
  236. rapidata/api_client/models/i_artifact_model_workflow_artifact_model.py +98 -0
  237. rapidata/api_client/models/i_artifact_model_workflow_config_artifact_model.py +102 -0
  238. rapidata/api_client/models/i_asset.py +170 -0
  239. rapidata/api_client/models/i_asset_file_asset.py +111 -0
  240. rapidata/api_client/models/i_asset_input.py +156 -0
  241. rapidata/api_client/models/i_asset_input_existing_asset_input.py +118 -0
  242. rapidata/api_client/models/i_asset_input_multi_asset_input.py +128 -0
  243. rapidata/api_client/models/i_asset_input_text_asset_input.py +118 -0
  244. rapidata/api_client/models/i_asset_model.py +170 -0
  245. rapidata/api_client/models/i_asset_model_file_asset_model.py +113 -0
  246. rapidata/api_client/models/i_asset_model_multi_asset_model.py +123 -0
  247. rapidata/api_client/models/i_asset_model_null_asset_model.py +111 -0
  248. rapidata/api_client/models/i_asset_model_text_asset_model.py +113 -0
  249. rapidata/api_client/models/i_asset_multi_asset.py +121 -0
  250. rapidata/api_client/models/i_asset_null_asset.py +109 -0
  251. rapidata/api_client/models/i_asset_text_asset.py +111 -0
  252. rapidata/api_client/models/i_audience_filter.py +184 -0
  253. rapidata/api_client/models/i_audience_filter_and_audience_filter.py +106 -0
  254. rapidata/api_client/models/i_audience_filter_country_audience_filter.py +96 -0
  255. rapidata/api_client/models/i_audience_filter_country_filter.py +96 -0
  256. rapidata/api_client/models/i_audience_filter_language_audience_filter.py +96 -0
  257. rapidata/api_client/models/i_audience_filter_language_filter.py +96 -0
  258. rapidata/api_client/models/i_audience_filter_not_audience_filter.py +102 -0
  259. rapidata/api_client/models/i_audience_filter_or_audience_filter.py +106 -0
  260. rapidata/api_client/models/i_campaign_filter.py +296 -0
  261. rapidata/api_client/models/i_campaign_filter_and_filter.py +117 -0
  262. rapidata/api_client/models/i_campaign_filter_campaign_filter.py +98 -0
  263. rapidata/api_client/models/i_campaign_filter_campaign_session_count_filter.py +101 -0
  264. rapidata/api_client/models/i_campaign_filter_country_filter.py +98 -0
  265. rapidata/api_client/models/i_campaign_filter_demographic_filter.py +100 -0
  266. rapidata/api_client/models/i_campaign_filter_device_filter.py +106 -0
  267. rapidata/api_client/models/i_campaign_filter_language_filter.py +98 -0
  268. rapidata/api_client/models/i_campaign_filter_new_user_filter.py +96 -0
  269. rapidata/api_client/models/i_campaign_filter_not_filter.py +113 -0
  270. rapidata/api_client/models/i_campaign_filter_or_filter.py +117 -0
  271. rapidata/api_client/models/i_campaign_filter_response_count_filter.py +103 -0
  272. rapidata/api_client/models/i_campaign_filter_user_action_restriction_filter.py +106 -0
  273. rapidata/api_client/models/i_campaign_filter_user_score_filter.py +102 -0
  274. rapidata/api_client/models/i_campaign_filter_user_state_filter.py +106 -0
  275. rapidata/api_client/models/i_dataset_metadata_input.py +154 -0
  276. rapidata/api_client/models/i_dataset_metadata_input_prompt_asset_metadata_input.py +100 -0
  277. rapidata/api_client/models/i_dataset_metadata_input_prompt_metadata_input.py +96 -0
  278. rapidata/api_client/models/i_dataset_metadata_input_transcription_metadata_input.py +96 -0
  279. rapidata/api_client/models/i_dataset_model.py +126 -0
  280. rapidata/api_client/models/i_dataset_model_clone_dataset_model.py +98 -0
  281. rapidata/api_client/models/i_metadata.py +252 -0
  282. rapidata/api_client/models/i_metadata_classification_metadata.py +109 -0
  283. rapidata/api_client/models/i_metadata_count_metadata.py +109 -0
  284. rapidata/api_client/models/i_metadata_duration_metadata.py +110 -0
  285. rapidata/api_client/models/i_metadata_file_type_metadata.py +110 -0
  286. rapidata/api_client/models/i_metadata_image_dimension_metadata.py +111 -0
  287. rapidata/api_client/models/i_metadata_input.py +126 -0
  288. rapidata/api_client/models/i_metadata_input_text_metadata_input.py +111 -0
  289. rapidata/api_client/models/i_metadata_location_metadata.py +111 -0
  290. rapidata/api_client/models/i_metadata_model.py +252 -0
  291. rapidata/api_client/models/i_metadata_model_classification_metadata_model.py +96 -0
  292. rapidata/api_client/models/i_metadata_model_count_metadata_model.py +96 -0
  293. rapidata/api_client/models/i_metadata_model_file_type_metadata_model.py +97 -0
  294. rapidata/api_client/models/i_metadata_model_image_dimension_metadata_model.py +98 -0
  295. rapidata/api_client/models/i_metadata_model_location_metadata_model.py +98 -0
  296. rapidata/api_client/models/i_metadata_model_original_filename_metadata_model.py +96 -0
  297. rapidata/api_client/models/i_metadata_model_source_url_metadata_model.py +96 -0
  298. rapidata/api_client/models/i_metadata_model_streams_metadata_model.py +100 -0
  299. rapidata/api_client/models/i_metadata_model_text_metadata_model.py +101 -0
  300. rapidata/api_client/models/i_metadata_model_video_duration_metadata_model.py +97 -0
  301. rapidata/api_client/models/i_metadata_original_filename_metadata.py +109 -0
  302. rapidata/api_client/models/i_metadata_source_url_metadata.py +109 -0
  303. rapidata/api_client/models/i_metadata_streams_metadata.py +113 -0
  304. rapidata/api_client/models/i_metadata_text_metadata.py +114 -0
  305. rapidata/api_client/models/i_metadata_video_duration_metadata.py +110 -0
  306. rapidata/api_client/models/i_order_workflow_model.py +168 -0
  307. rapidata/api_client/models/i_order_workflow_model_compare_workflow_model.py +146 -0
  308. rapidata/api_client/models/i_order_workflow_model_evaluation_workflow_model.py +108 -0
  309. rapidata/api_client/models/i_order_workflow_model_grouped_ranking_workflow_model.py +147 -0
  310. rapidata/api_client/models/i_order_workflow_model_simple_workflow_model.py +110 -0
  311. rapidata/api_client/models/i_pair_maker_config.py +126 -0
  312. rapidata/api_client/models/i_pair_maker_config_model.py +126 -0
  313. rapidata/api_client/models/i_pair_maker_config_model_online_pair_maker_config_model.py +98 -0
  314. rapidata/api_client/models/i_pair_maker_config_online_pair_maker_config.py +98 -0
  315. rapidata/api_client/models/i_pair_maker_information.py +126 -0
  316. rapidata/api_client/models/i_pair_maker_information_online_pair_maker_information.py +100 -0
  317. rapidata/api_client/models/i_pipeline_artifact_model.py +126 -0
  318. rapidata/api_client/models/i_pipeline_artifact_model_create_dataset_artifact_model.py +102 -0
  319. rapidata/api_client/models/i_pipeline_model.py +126 -0
  320. rapidata/api_client/models/i_pipeline_model_create_simple_pipeline_model.py +116 -0
  321. rapidata/api_client/models/i_pipeline_step_model.py +168 -0
  322. rapidata/api_client/models/i_pipeline_step_model_dataset_evaluation_step_model.py +102 -0
  323. rapidata/api_client/models/i_pipeline_step_model_send_completion_mail_step_model.py +98 -0
  324. rapidata/api_client/models/i_pipeline_step_model_workflow_aggregation_step_model.py +103 -0
  325. rapidata/api_client/models/i_pipeline_step_model_workflow_labeling_step_model.py +96 -0
  326. rapidata/api_client/models/i_rapid_blueprint.py +252 -0
  327. rapidata/api_client/models/i_rapid_blueprint_attach_category_rapid_blueprint.py +108 -0
  328. rapidata/api_client/models/i_rapid_blueprint_bounding_box_rapid_blueprint.py +96 -0
  329. rapidata/api_client/models/i_rapid_blueprint_compare_rapid_blueprint.py +98 -0
  330. rapidata/api_client/models/i_rapid_blueprint_free_text_rapid_blueprint.py +105 -0
  331. rapidata/api_client/models/i_rapid_blueprint_line_rapid_blueprint.py +96 -0
  332. rapidata/api_client/models/i_rapid_blueprint_locate_rapid_blueprint.py +96 -0
  333. rapidata/api_client/models/i_rapid_blueprint_named_entity_rapid_blueprint.py +98 -0
  334. rapidata/api_client/models/i_rapid_blueprint_polygon_rapid_blueprint.py +96 -0
  335. rapidata/api_client/models/i_rapid_blueprint_scrub_rapid_blueprint.py +96 -0
  336. rapidata/api_client/models/i_rapid_blueprint_transcription_rapid_blueprint.py +96 -0
  337. rapidata/api_client/models/i_rapid_payload.py +252 -0
  338. rapidata/api_client/models/i_rapid_payload_bounding_box_payload.py +96 -0
  339. rapidata/api_client/models/i_rapid_payload_classify_payload.py +106 -0
  340. rapidata/api_client/models/i_rapid_payload_compare_payload.py +96 -0
  341. rapidata/api_client/models/i_rapid_payload_free_text_payload.py +105 -0
  342. rapidata/api_client/models/i_rapid_payload_line_payload.py +96 -0
  343. rapidata/api_client/models/i_rapid_payload_locate_payload.py +96 -0
  344. rapidata/api_client/models/i_rapid_payload_named_entity_payload.py +98 -0
  345. rapidata/api_client/models/i_rapid_payload_polygon_payload.py +96 -0
  346. rapidata/api_client/models/i_rapid_payload_scrub_payload.py +96 -0
  347. rapidata/api_client/models/i_rapid_payload_transcription_payload.py +106 -0
  348. rapidata/api_client/models/i_rapid_result.py +266 -0
  349. rapidata/api_client/models/i_rapid_result_attach_category_result.py +98 -0
  350. rapidata/api_client/models/i_rapid_result_bounding_box_result.py +106 -0
  351. rapidata/api_client/models/i_rapid_result_compare_result.py +98 -0
  352. rapidata/api_client/models/i_rapid_result_free_text_result.py +98 -0
  353. rapidata/api_client/models/i_rapid_result_line_result.py +106 -0
  354. rapidata/api_client/models/i_rapid_result_locate_result.py +106 -0
  355. rapidata/api_client/models/i_rapid_result_named_entity_result.py +106 -0
  356. rapidata/api_client/models/i_rapid_result_polygon_result.py +106 -0
  357. rapidata/api_client/models/i_rapid_result_scrub_result.py +98 -0
  358. rapidata/api_client/models/i_rapid_result_skip_result.py +96 -0
  359. rapidata/api_client/models/i_rapid_result_transcription_result.py +106 -0
  360. rapidata/api_client/models/i_referee_config.py +154 -0
  361. rapidata/api_client/models/i_referee_config_naive_referee_config.py +96 -0
  362. rapidata/api_client/models/i_referee_config_never_ending_referee_config.py +94 -0
  363. rapidata/api_client/models/i_referee_config_probabilistic_attach_category_referee_config.py +98 -0
  364. rapidata/api_client/models/i_referee_info.py +154 -0
  365. rapidata/api_client/models/i_referee_info_naive_referee_info.py +96 -0
  366. rapidata/api_client/models/i_referee_info_never_ending_referee_info.py +94 -0
  367. rapidata/api_client/models/i_referee_info_probabilistic_attach_category_referee_info.py +98 -0
  368. rapidata/api_client/models/i_referee_model.py +140 -0
  369. rapidata/api_client/models/i_referee_model_early_stopping_referee_model.py +98 -0
  370. rapidata/api_client/models/i_referee_model_naive_referee_model.py +96 -0
  371. rapidata/api_client/models/i_selection.py +240 -0
  372. rapidata/api_client/models/i_selection_ab_test_selection.py +122 -0
  373. rapidata/api_client/models/i_selection_capped_selection.py +108 -0
  374. rapidata/api_client/models/i_selection_conditional_validation_selection.py +110 -0
  375. rapidata/api_client/models/i_selection_demographic_selection.py +98 -0
  376. rapidata/api_client/models/i_selection_effort_capped_selection.py +101 -0
  377. rapidata/api_client/models/i_selection_labeling_selection.py +103 -0
  378. rapidata/api_client/models/i_selection_shuffling_selection.py +106 -0
  379. rapidata/api_client/models/i_selection_static_selection.py +96 -0
  380. rapidata/api_client/models/i_selection_validation_selection.py +98 -0
  381. rapidata/api_client/models/i_user_filter_model.py +296 -0
  382. rapidata/api_client/models/i_user_filter_model_age_user_filter_model.py +104 -0
  383. rapidata/api_client/models/i_user_filter_model_and_user_filter_model.py +106 -0
  384. rapidata/api_client/models/i_user_filter_model_campaign_user_filter_model.py +96 -0
  385. rapidata/api_client/models/i_user_filter_model_country_user_filter_model.py +96 -0
  386. rapidata/api_client/models/i_user_filter_model_custom_user_filter_model.py +98 -0
  387. rapidata/api_client/models/i_user_filter_model_device_user_filter_model.py +104 -0
  388. rapidata/api_client/models/i_user_filter_model_gender_user_filter_model.py +104 -0
  389. rapidata/api_client/models/i_user_filter_model_language_user_filter_model.py +96 -0
  390. rapidata/api_client/models/i_user_filter_model_new_user_filter_model.py +94 -0
  391. rapidata/api_client/models/i_user_filter_model_not_user_filter_model.py +102 -0
  392. rapidata/api_client/models/i_user_filter_model_or_user_filter_model.py +106 -0
  393. rapidata/api_client/models/i_user_filter_model_response_count_user_filter_model.py +101 -0
  394. rapidata/api_client/models/i_user_filter_model_user_score_user_filter_model.py +105 -0
  395. rapidata/api_client/models/i_validation_metadata_input.py +140 -0
  396. rapidata/api_client/models/i_validation_metadata_input_prompt_asset_metadata_input.py +100 -0
  397. rapidata/api_client/models/i_validation_metadata_input_prompt_metadata_input.py +96 -0
  398. rapidata/api_client/models/i_validation_truth.py +280 -0
  399. rapidata/api_client/models/i_validation_truth_attach_category_truth.py +96 -0
  400. rapidata/api_client/models/i_validation_truth_bounding_box_truth.py +102 -0
  401. rapidata/api_client/models/i_validation_truth_compare_truth.py +96 -0
  402. rapidata/api_client/models/i_validation_truth_empty_validation_truth.py +94 -0
  403. rapidata/api_client/models/i_validation_truth_line_truth.py +94 -0
  404. rapidata/api_client/models/i_validation_truth_locate_box_truth.py +108 -0
  405. rapidata/api_client/models/i_validation_truth_model.py +294 -0
  406. rapidata/api_client/models/i_validation_truth_model_attach_category_truth_model.py +96 -0
  407. rapidata/api_client/models/i_validation_truth_model_bounding_box_truth_model.py +102 -0
  408. rapidata/api_client/models/i_validation_truth_model_classify_truth_model.py +96 -0
  409. rapidata/api_client/models/i_validation_truth_model_compare_truth_model.py +96 -0
  410. rapidata/api_client/models/i_validation_truth_model_empty_validation_truth_model.py +94 -0
  411. rapidata/api_client/models/i_validation_truth_model_line_truth_model.py +94 -0
  412. rapidata/api_client/models/i_validation_truth_model_locate_box_truth_model.py +108 -0
  413. rapidata/api_client/models/i_validation_truth_model_multi_compare_truth_model.py +96 -0
  414. rapidata/api_client/models/i_validation_truth_model_named_entity_truth_model.py +104 -0
  415. rapidata/api_client/models/i_validation_truth_model_polygon_truth_model.py +94 -0
  416. rapidata/api_client/models/i_validation_truth_model_scrub_truth_model.py +104 -0
  417. rapidata/api_client/models/i_validation_truth_model_skip_truth_model.py +94 -0
  418. rapidata/api_client/models/i_validation_truth_model_transcription_truth_model.py +115 -0
  419. rapidata/api_client/models/i_validation_truth_multi_compare_truth.py +96 -0
  420. rapidata/api_client/models/i_validation_truth_named_entity_truth.py +104 -0
  421. rapidata/api_client/models/i_validation_truth_polygon_truth.py +94 -0
  422. rapidata/api_client/models/i_validation_truth_scrub_truth.py +104 -0
  423. rapidata/api_client/models/i_validation_truth_skip_truth.py +94 -0
  424. rapidata/api_client/models/i_validation_truth_transcription_truth.py +115 -0
  425. rapidata/api_client/models/i_workflow_config.py +168 -0
  426. rapidata/api_client/models/i_workflow_config_compare_workflow_config.py +142 -0
  427. rapidata/api_client/models/i_workflow_config_evaluation_workflow_config.py +114 -0
  428. rapidata/api_client/models/i_workflow_config_grouped_ranking_workflow_config.py +155 -0
  429. rapidata/api_client/models/i_workflow_config_simple_workflow_config.py +116 -0
  430. rapidata/api_client/models/i_workflow_model.py +168 -0
  431. rapidata/api_client/models/i_workflow_model_compare_workflow_model.py +145 -0
  432. rapidata/api_client/models/i_workflow_model_evaluation_workflow_model.py +115 -0
  433. rapidata/api_client/models/i_workflow_model_grouped_ranking_workflow_model.py +121 -0
  434. rapidata/api_client/models/i_workflow_model_simple_workflow_model.py +119 -0
  435. rapidata/api_client/models/image_dimension_metadata.py +12 -1
  436. rapidata/api_client/models/inquire_file_metadata_result.py +100 -0
  437. rapidata/api_client/models/inspect_report_result.py +2 -2
  438. rapidata/api_client/models/job_definition_revision_state.py +38 -0
  439. rapidata/api_client/models/json_web_key.py +2 -36
  440. rapidata/api_client/models/json_web_key_set.py +2 -22
  441. rapidata/api_client/models/labeling_selection.py +11 -13
  442. rapidata/api_client/models/language_filter.py +98 -0
  443. rapidata/api_client/models/leaderboard_query_result.py +29 -2
  444. rapidata/api_client/models/leaderboards_query_result.py +135 -0
  445. rapidata/api_client/models/line_result.py +3 -3
  446. rapidata/api_client/models/line_result_line.py +97 -0
  447. rapidata/api_client/models/line_result_line_point.py +89 -0
  448. rapidata/api_client/models/locate_coordinate.py +4 -13
  449. rapidata/api_client/models/location_metadata.py +12 -1
  450. rapidata/api_client/models/logic_operator.py +2 -2
  451. rapidata/api_client/models/metadata_i_order_metadata_input.py +154 -0
  452. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_asset_metadata_input.py +100 -0
  453. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_metadata_input.py +96 -0
  454. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_transcription_metadata_input.py +96 -0
  455. rapidata/api_client/models/metadata_prompt_asset_metadata_input.py +100 -0
  456. rapidata/api_client/models/metadata_prompt_metadata_input.py +96 -0
  457. rapidata/api_client/models/metadata_transcription_metadata_input.py +96 -0
  458. rapidata/api_client/models/multi_asset.py +6 -6
  459. rapidata/api_client/models/multi_asset_assets_inner.py +170 -0
  460. rapidata/api_client/models/multi_asset_input.py +21 -1
  461. rapidata/api_client/models/multi_asset_input1_assets_inner.py +40 -12
  462. rapidata/api_client/models/multi_asset_input3_assets_inner.py +40 -12
  463. rapidata/api_client/models/multi_asset_input_assets_inner.py +16 -30
  464. rapidata/api_client/models/multi_asset_model.py +3 -3
  465. rapidata/api_client/models/naive_referee_model.py +2 -2
  466. rapidata/api_client/models/named_classification.py +4 -13
  467. rapidata/api_client/models/new_user_filter.py +96 -0
  468. rapidata/api_client/models/newsletter_model.py +6 -6
  469. rapidata/api_client/models/not_available_yet_result.py +4 -13
  470. rapidata/api_client/models/not_filter.py +117 -0
  471. rapidata/api_client/models/null_asset.py +3 -5
  472. rapidata/api_client/models/online_pair_maker_config_model.py +3 -3
  473. rapidata/api_client/models/option_of_aggregator_type.py +49 -0
  474. rapidata/api_client/models/or_filter.py +121 -0
  475. rapidata/api_client/models/order_model.py +15 -14
  476. rapidata/api_client/models/order_state.py +2 -2
  477. rapidata/api_client/models/original_filename_metadata.py +12 -1
  478. rapidata/api_client/models/page_info.py +2 -7
  479. rapidata/api_client/models/paged_result_aggregated_orders_model.py +105 -0
  480. rapidata/api_client/models/paged_result_benchmark_query_result.py +105 -0
  481. rapidata/api_client/models/paged_result_campaign_query_result.py +105 -0
  482. rapidata/api_client/models/paged_result_clients_query_result.py +105 -0
  483. rapidata/api_client/models/paged_result_datapoint_model.py +105 -0
  484. rapidata/api_client/models/paged_result_get_compare_workflow_results_result.py +105 -0
  485. rapidata/api_client/models/paged_result_get_grouped_ranking_workflow_results_result.py +105 -0
  486. rapidata/api_client/models/paged_result_get_validation_rapids_result.py +105 -0
  487. rapidata/api_client/models/paged_result_get_workflow_results_result.py +105 -0
  488. rapidata/api_client/models/paged_result_i_workflow_model.py +105 -0
  489. rapidata/api_client/models/paged_result_leaderboard_query_result.py +105 -0
  490. rapidata/api_client/models/paged_result_leaderboards_query_result.py +105 -0
  491. rapidata/api_client/models/paged_result_of_aggregated_orders_model.py +103 -0
  492. rapidata/api_client/models/paged_result_of_benchmark_query_result.py +103 -0
  493. rapidata/api_client/models/paged_result_of_campaign_query_result.py +103 -0
  494. rapidata/api_client/models/paged_result_of_clients_query_result.py +103 -0
  495. rapidata/api_client/models/paged_result_of_get_compare_workflow_results_result.py +103 -0
  496. rapidata/api_client/models/paged_result_of_get_grouped_ranking_workflow_results_result.py +103 -0
  497. rapidata/api_client/models/paged_result_of_get_validation_rapids_result.py +103 -0
  498. rapidata/api_client/models/paged_result_of_get_workflow_results_result.py +103 -0
  499. rapidata/api_client/models/paged_result_of_i_workflow_model.py +103 -0
  500. rapidata/api_client/models/paged_result_of_leaderboards_query_result.py +103 -0
  501. rapidata/api_client/models/paged_result_of_order_model.py +103 -0
  502. rapidata/api_client/models/paged_result_of_participant_by_benchmark.py +103 -0
  503. rapidata/api_client/models/paged_result_of_prompt_by_benchmark_result.py +103 -0
  504. rapidata/api_client/models/paged_result_of_query_audiences_result.py +103 -0
  505. rapidata/api_client/models/paged_result_of_query_datapoints_by_dataset_id_result.py +103 -0
  506. rapidata/api_client/models/paged_result_of_query_job_definitions_result.py +103 -0
  507. rapidata/api_client/models/paged_result_of_query_job_revisions_result.py +103 -0
  508. rapidata/api_client/models/paged_result_of_query_jobs_result.py +103 -0
  509. rapidata/api_client/models/paged_result_of_query_rapids_for_audience_result.py +103 -0
  510. rapidata/api_client/models/paged_result_of_query_validation_rapid_eligibility_result.py +103 -0
  511. rapidata/api_client/models/paged_result_of_rapid_model.py +103 -0
  512. rapidata/api_client/models/paged_result_of_runs_by_leaderboard_result.py +103 -0
  513. rapidata/api_client/models/paged_result_of_sample_by_identifier.py +103 -0
  514. rapidata/api_client/models/paged_result_of_sample_by_participant.py +103 -0
  515. rapidata/api_client/models/paged_result_of_standing_by_leaderboard.py +103 -0
  516. rapidata/api_client/models/paged_result_of_validation_set_model.py +103 -0
  517. rapidata/api_client/models/paged_result_order_model.py +105 -0
  518. rapidata/api_client/models/paged_result_participant_by_benchmark.py +105 -0
  519. rapidata/api_client/models/paged_result_potential_validation_rapid.py +105 -0
  520. rapidata/api_client/models/paged_result_prompt_by_benchmark_result.py +105 -0
  521. rapidata/api_client/models/paged_result_query_audiences_result.py +105 -0
  522. rapidata/api_client/models/paged_result_query_datapoints_by_dataset_id_result.py +105 -0
  523. rapidata/api_client/models/paged_result_query_validation_rapid_eligibility_result.py +105 -0
  524. rapidata/api_client/models/paged_result_rapid_model.py +105 -0
  525. rapidata/api_client/models/paged_result_runs_by_leaderboard_result.py +105 -0
  526. rapidata/api_client/models/paged_result_sample_by_identifier.py +105 -0
  527. rapidata/api_client/models/paged_result_sample_by_participant.py +105 -0
  528. rapidata/api_client/models/paged_result_standing_by_leaderboard.py +105 -0
  529. rapidata/api_client/models/paged_result_validation_set_model.py +105 -0
  530. rapidata/api_client/models/participant_by_benchmark.py +6 -14
  531. rapidata/api_client/models/participant_status.py +2 -2
  532. rapidata/api_client/models/polygon_result.py +3 -3
  533. rapidata/api_client/models/polygon_result_coordinate.py +89 -0
  534. rapidata/api_client/models/polygon_result_shape.py +95 -0
  535. rapidata/api_client/models/preliminary_download_model.py +5 -5
  536. rapidata/api_client/models/preview_order_model.py +5 -5
  537. rapidata/api_client/models/problem_details.py +2 -20
  538. rapidata/api_client/models/prompt_asset_metadata_input.py +4 -6
  539. rapidata/api_client/models/prompt_asset_metadata_input_asset.py +25 -41
  540. rapidata/api_client/models/prompt_by_benchmark_result.py +5 -5
  541. rapidata/api_client/models/prompt_metadata.py +12 -1
  542. rapidata/api_client/models/prompt_metadata_input.py +5 -7
  543. rapidata/api_client/models/prompt_type.py +38 -0
  544. rapidata/api_client/models/proxy_file_wrapper.py +17 -2
  545. rapidata/api_client/models/public_order_model.py +2 -2
  546. rapidata/api_client/models/public_rapid_response.py +112 -0
  547. rapidata/api_client/models/query_audiences_result.py +118 -0
  548. rapidata/api_client/models/query_datapoints_by_dataset_id_result.py +95 -0
  549. rapidata/api_client/models/query_job_definitions_result.py +97 -0
  550. rapidata/api_client/models/query_job_revisions_result.py +95 -0
  551. rapidata/api_client/models/query_jobs_result.py +103 -0
  552. rapidata/api_client/models/query_model.py +10 -5
  553. rapidata/api_client/models/query_rapids_for_audience_result.py +150 -0
  554. rapidata/api_client/models/query_validation_rapid_eligibility_model_query_validation_model.py +107 -0
  555. rapidata/api_client/models/query_validation_rapid_eligibility_result.py +103 -0
  556. rapidata/api_client/models/query_validation_rapid_eligibility_result_truth.py +280 -0
  557. rapidata/api_client/models/rapid_issue.py +2 -2
  558. rapidata/api_client/models/rapid_modality.py +46 -0
  559. rapidata/api_client/models/rapid_model.py +33 -49
  560. rapidata/api_client/models/rapid_result_model.py +7 -7
  561. rapidata/api_client/models/rapid_skipped_model.py +5 -5
  562. rapidata/api_client/models/rapid_state.py +2 -2
  563. rapidata/api_client/models/read_bridge_token_keys_result.py +10 -24
  564. rapidata/api_client/models/reference_asset_input.py +100 -0
  565. rapidata/api_client/models/report_model.py +9 -15
  566. rapidata/api_client/models/response_count_filter.py +103 -0
  567. rapidata/api_client/models/response_count_user_filter_model.py +2 -8
  568. rapidata/api_client/models/retrieval_mode.py +2 -2
  569. rapidata/api_client/models/root_filter.py +5 -14
  570. rapidata/api_client/models/run_status.py +2 -2
  571. rapidata/api_client/models/runs_by_leaderboard_result.py +6 -12
  572. rapidata/api_client/models/sample_by_identifier.py +125 -0
  573. rapidata/api_client/models/sample_by_identifier_paged_result.py +105 -0
  574. rapidata/api_client/models/sample_by_participant.py +7 -8
  575. rapidata/api_client/models/scrub_range.py +2 -2
  576. rapidata/api_client/models/send_survey_model.py +87 -0
  577. rapidata/api_client/models/simple_workflow_config.py +15 -5
  578. rapidata/api_client/models/simple_workflow_config_blueprint.py +37 -23
  579. rapidata/api_client/models/simple_workflow_config_model.py +11 -3
  580. rapidata/api_client/models/simple_workflow_model.py +14 -4
  581. rapidata/api_client/models/simple_workflow_model1.py +4 -11
  582. rapidata/api_client/models/simple_workflow_model_blueprint.py +1 -1
  583. rapidata/api_client/models/sort_criterion.py +5 -11
  584. rapidata/api_client/models/sort_direction.py +2 -2
  585. rapidata/api_client/models/source_url_metadata.py +12 -1
  586. rapidata/api_client/models/standing_by_benchmark.py +113 -0
  587. rapidata/api_client/models/standing_by_leaderboard.py +19 -21
  588. rapidata/api_client/models/standing_status.py +2 -2
  589. rapidata/api_client/models/standings_by_benchmark_result.py +95 -0
  590. rapidata/api_client/models/standings_by_leaderboard_result.py +2 -2
  591. rapidata/api_client/models/start_preliminary_download_result.py +87 -0
  592. rapidata/api_client/models/sticky_state.py +3 -2
  593. rapidata/api_client/models/stream_file_wrapper.py +25 -3
  594. rapidata/api_client/models/streams_metadata.py +12 -1
  595. rapidata/api_client/models/string_segment.py +105 -0
  596. rapidata/api_client/models/submit_order_model.py +5 -5
  597. rapidata/api_client/models/submit_participant_result.py +2 -2
  598. rapidata/api_client/models/submit_prompt_model.py +9 -14
  599. rapidata/api_client/models/submit_prompt_model_prompt_asset.py +40 -12
  600. rapidata/api_client/models/tags_by_benchmark_result.py +2 -2
  601. rapidata/api_client/models/text_asset.py +3 -5
  602. rapidata/api_client/models/text_asset_input.py +21 -1
  603. rapidata/api_client/models/text_metadata.py +18 -2
  604. rapidata/api_client/models/text_metadata_input.py +111 -0
  605. rapidata/api_client/models/text_metadata_model.py +7 -2
  606. rapidata/api_client/models/transcription_metadata.py +9 -1
  607. rapidata/api_client/models/transcription_metadata_input.py +5 -7
  608. rapidata/api_client/models/transcription_word.py +2 -2
  609. rapidata/api_client/models/translated_string.py +2 -2
  610. rapidata/api_client/models/unlock_order_result.py +2 -2
  611. rapidata/api_client/models/update_audience_request.py +113 -0
  612. rapidata/api_client/models/update_benchmark_model.py +99 -0
  613. rapidata/api_client/models/update_benchmark_name_model.py +5 -5
  614. rapidata/api_client/models/update_campaign_model.py +11 -11
  615. rapidata/api_client/models/update_dataset_name_model.py +5 -5
  616. rapidata/api_client/models/update_dimensions_model.py +3 -3
  617. rapidata/api_client/models/update_job_definition_endpoint_input.py +92 -0
  618. rapidata/api_client/models/update_leaderboard_model.py +106 -0
  619. rapidata/api_client/models/update_leaderboard_name_model.py +5 -5
  620. rapidata/api_client/models/update_leaderboard_response_config_model.py +5 -5
  621. rapidata/api_client/models/update_order_name_model.py +5 -5
  622. rapidata/api_client/models/update_participant_model.py +92 -0
  623. rapidata/api_client/models/update_participant_name_model.py +5 -5
  624. rapidata/api_client/models/update_priority_model.py +87 -0
  625. rapidata/api_client/models/update_prompt_tags_model.py +5 -5
  626. rapidata/api_client/models/update_should_alert_model.py +4 -4
  627. rapidata/api_client/models/update_validation_rapid_model.py +35 -14
  628. rapidata/api_client/models/update_validation_rapid_model_context_asset.py +160 -0
  629. rapidata/api_client/models/update_validation_set_model.py +120 -0
  630. rapidata/api_client/models/upload_asset_result.py +102 -0
  631. rapidata/api_client/models/upload_file_from_url_result.py +87 -0
  632. rapidata/api_client/models/upload_file_result.py +87 -0
  633. rapidata/api_client/models/user_action_restriction.py +37 -0
  634. rapidata/api_client/models/user_action_restriction_filter.py +101 -0
  635. rapidata/api_client/models/user_score_filter.py +102 -0
  636. rapidata/api_client/models/user_state.py +38 -0
  637. rapidata/api_client/models/user_state_filter.py +101 -0
  638. rapidata/api_client/models/validation_chance.py +20 -3
  639. rapidata/api_client/models/validation_problem_details.py +117 -0
  640. rapidata/api_client/models/validation_set_model.py +39 -5
  641. rapidata/api_client/models/validation_set_overview_model.py +2 -2
  642. rapidata/api_client/models/video_duration_metadata.py +12 -1
  643. rapidata/api_client/models/workflow_aggregation_step_model.py +3 -12
  644. rapidata/api_client/models/workflow_config_artifact_model_workflow_config.py +23 -9
  645. rapidata/api_client/models/workflow_state.py +2 -2
  646. rapidata/api_client/models/zip_entry_file_wrapper.py +33 -2
  647. rapidata/api_client/rest.py +2 -2
  648. rapidata/api_client_README.md +384 -318
  649. rapidata/rapidata_client/__init__.py +17 -22
  650. rapidata/rapidata_client/api/rapidata_api_client.py +253 -0
  651. rapidata/rapidata_client/audience/__init__.py +2 -0
  652. rapidata/rapidata_client/audience/audience_example_handler.py +168 -0
  653. rapidata/rapidata_client/audience/rapidata_audience.py +287 -0
  654. rapidata/rapidata_client/audience/rapidata_audience_manager.py +162 -0
  655. rapidata/rapidata_client/benchmark/_detail_mapper.py +11 -9
  656. rapidata/rapidata_client/benchmark/leaderboard/rapidata_leaderboard.py +98 -54
  657. rapidata/rapidata_client/benchmark/participant/_participant.py +90 -46
  658. rapidata/rapidata_client/benchmark/rapidata_benchmark.py +388 -225
  659. rapidata/rapidata_client/benchmark/rapidata_benchmark_manager.py +172 -65
  660. rapidata/rapidata_client/config/__init__.py +4 -0
  661. rapidata/rapidata_client/config/logger.py +135 -0
  662. rapidata/rapidata_client/config/logging_config.py +55 -0
  663. rapidata/rapidata_client/config/managed_print.py +6 -0
  664. rapidata/rapidata_client/config/order_config.py +14 -0
  665. rapidata/rapidata_client/config/rapidata_config.py +36 -0
  666. rapidata/rapidata_client/config/tracer.py +184 -0
  667. rapidata/rapidata_client/config/upload_config.py +64 -0
  668. rapidata/rapidata_client/datapoints/__init__.py +8 -3
  669. rapidata/rapidata_client/datapoints/_asset_uploader.py +184 -0
  670. rapidata/rapidata_client/datapoints/_datapoint.py +92 -0
  671. rapidata/rapidata_client/datapoints/_datapoint_uploader.py +47 -0
  672. rapidata/rapidata_client/datapoints/_datapoints_validator.py +70 -0
  673. rapidata/rapidata_client/datapoints/assets/__init__.py +0 -10
  674. rapidata/rapidata_client/datapoints/assets/constants.py +7 -0
  675. rapidata/rapidata_client/datapoints/metadata/__init__.py +0 -2
  676. rapidata/rapidata_client/datapoints/metadata/_private_text_metadata.py +5 -6
  677. rapidata/rapidata_client/datapoints/metadata/_prompt_identifier_metadata.py +4 -5
  678. rapidata/rapidata_client/datapoints/metadata/_public_text_metadata.py +5 -6
  679. rapidata/rapidata_client/datapoints/metadata/_select_words_metadata.py +3 -4
  680. rapidata/rapidata_client/dataset/__init__.py +1 -0
  681. rapidata/rapidata_client/dataset/_rapidata_dataset.py +55 -0
  682. rapidata/rapidata_client/demographic/demographic_manager.py +44 -19
  683. rapidata/rapidata_client/exceptions/failed_upload_exception.py +15 -41
  684. rapidata/rapidata_client/filter/_backend_filter_mapper.py +134 -0
  685. rapidata/rapidata_client/filter/_base_filter.py +13 -8
  686. rapidata/rapidata_client/filter/age_filter.py +26 -10
  687. rapidata/rapidata_client/filter/and_filter.py +36 -11
  688. rapidata/rapidata_client/filter/campaign_filter.py +21 -10
  689. rapidata/rapidata_client/filter/country_filter.py +46 -12
  690. rapidata/rapidata_client/filter/custom_filter.py +25 -12
  691. rapidata/rapidata_client/filter/gender_filter.py +25 -10
  692. rapidata/rapidata_client/filter/language_filter.py +51 -21
  693. rapidata/rapidata_client/filter/models/age_group.py +14 -12
  694. rapidata/rapidata_client/filter/models/gender.py +12 -8
  695. rapidata/rapidata_client/filter/new_user_filter.py +14 -4
  696. rapidata/rapidata_client/filter/not_filter.py +35 -11
  697. rapidata/rapidata_client/filter/or_filter.py +36 -11
  698. rapidata/rapidata_client/filter/rapidata_filters.py +17 -23
  699. rapidata/rapidata_client/filter/response_count_filter.py +51 -20
  700. rapidata/rapidata_client/filter/user_score_filter.py +62 -24
  701. rapidata/rapidata_client/job/__init__.py +3 -0
  702. rapidata/rapidata_client/job/job_definition.py +110 -0
  703. rapidata/rapidata_client/job/job_manager.py +758 -0
  704. rapidata/rapidata_client/job/rapidata_job.py +326 -0
  705. rapidata/rapidata_client/order/__init__.py +2 -0
  706. rapidata/rapidata_client/order/_rapidata_order_builder.py +273 -122
  707. rapidata/rapidata_client/order/rapidata_order.py +316 -160
  708. rapidata/rapidata_client/order/rapidata_order_manager.py +680 -421
  709. rapidata/rapidata_client/rapidata_client.py +115 -37
  710. rapidata/rapidata_client/referee/__init__.py +1 -1
  711. rapidata/rapidata_client/referee/_base_referee.py +14 -3
  712. rapidata/rapidata_client/referee/_early_stopping_referee.py +32 -17
  713. rapidata/rapidata_client/referee/_naive_referee.py +24 -3
  714. rapidata/rapidata_client/results/__init__.py +3 -0
  715. rapidata/rapidata_client/{order → results}/rapidata_results.py +86 -63
  716. rapidata/rapidata_client/selection/__init__.py +1 -1
  717. rapidata/rapidata_client/selection/_base_selection.py +9 -2
  718. rapidata/rapidata_client/selection/ab_test_selection.py +28 -20
  719. rapidata/rapidata_client/selection/capped_selection.py +23 -16
  720. rapidata/rapidata_client/selection/conditional_validation_selection.py +43 -24
  721. rapidata/rapidata_client/selection/demographic_selection.py +21 -6
  722. rapidata/rapidata_client/selection/effort_selection.py +31 -8
  723. rapidata/rapidata_client/selection/labeling_selection.py +34 -11
  724. rapidata/rapidata_client/selection/{retrieval_modes.py → rapidata_retrieval_modes.py} +7 -4
  725. rapidata/rapidata_client/selection/rapidata_selections.py +23 -14
  726. rapidata/rapidata_client/selection/shuffling_selection.py +21 -13
  727. rapidata/rapidata_client/selection/static_selection.py +19 -8
  728. rapidata/rapidata_client/selection/validation_selection.py +20 -4
  729. rapidata/rapidata_client/settings/__init__.py +2 -0
  730. rapidata/rapidata_client/settings/_rapidata_setting.py +22 -3
  731. rapidata/rapidata_client/settings/alert_on_fast_response.py +8 -5
  732. rapidata/rapidata_client/settings/allow_neither_both.py +3 -0
  733. rapidata/rapidata_client/settings/custom_setting.py +3 -2
  734. rapidata/rapidata_client/settings/free_text_minimum_characters.py +9 -4
  735. rapidata/rapidata_client/settings/models/translation_behaviour_options.py +3 -2
  736. rapidata/rapidata_client/settings/mute_video.py +15 -0
  737. rapidata/rapidata_client/settings/no_shuffle.py +4 -2
  738. rapidata/rapidata_client/settings/play_video_until_the_end.py +7 -4
  739. rapidata/rapidata_client/settings/rapidata_settings.py +22 -9
  740. rapidata/rapidata_client/settings/swap_context_instruction.py +20 -0
  741. rapidata/rapidata_client/settings/translation_behaviour.py +7 -5
  742. rapidata/rapidata_client/utils/__init__.py +3 -0
  743. rapidata/rapidata_client/utils/threaded_uploader.py +153 -0
  744. rapidata/rapidata_client/validation/__init__.py +2 -0
  745. rapidata/rapidata_client/validation/rapidata_validation_set.py +96 -18
  746. rapidata/rapidata_client/validation/rapids/__init__.py +2 -0
  747. rapidata/rapidata_client/validation/rapids/_validation_rapid_uploader.py +48 -0
  748. rapidata/rapidata_client/validation/rapids/box.py +37 -12
  749. rapidata/rapidata_client/validation/rapids/rapids.py +29 -83
  750. rapidata/rapidata_client/validation/rapids/rapids_manager.py +369 -211
  751. rapidata/rapidata_client/validation/validation_set_manager.py +505 -276
  752. rapidata/rapidata_client/workflow/__init__.py +2 -2
  753. rapidata/rapidata_client/workflow/_base_workflow.py +25 -7
  754. rapidata/rapidata_client/workflow/_classify_workflow.py +58 -15
  755. rapidata/rapidata_client/workflow/_compare_workflow.py +44 -9
  756. rapidata/rapidata_client/workflow/_draw_workflow.py +40 -10
  757. rapidata/rapidata_client/workflow/_evaluation_workflow.py +28 -7
  758. rapidata/rapidata_client/workflow/_free_text_workflow.py +46 -9
  759. rapidata/rapidata_client/workflow/_locate_workflow.py +40 -10
  760. rapidata/rapidata_client/workflow/_multi_ranking_workflow.py +90 -0
  761. rapidata/rapidata_client/workflow/_select_words_workflow.py +51 -11
  762. rapidata/rapidata_client/workflow/_timestamp_workflow.py +42 -11
  763. rapidata/service/__init__.py +0 -1
  764. rapidata/service/credential_manager.py +14 -14
  765. rapidata/service/openapi_service.py +119 -34
  766. rapidata/types/__init__.py +149 -0
  767. rapidata-3.0.0a8.dist-info/METADATA +32 -0
  768. rapidata-3.0.0a8.dist-info/RECORD +1083 -0
  769. {rapidata-2.35.1.dist-info → rapidata-3.0.0a8.dist-info}/WHEEL +1 -1
  770. rapidata/rapidata_client/api/rapidata_exception.py +0 -107
  771. rapidata/rapidata_client/country_codes/__init__.py +0 -1
  772. rapidata/rapidata_client/country_codes/country_codes.py +0 -19
  773. rapidata/rapidata_client/datapoints/assets/_base_asset.py +0 -11
  774. rapidata/rapidata_client/datapoints/assets/_media_asset.py +0 -306
  775. rapidata/rapidata_client/datapoints/assets/_multi_asset.py +0 -61
  776. rapidata/rapidata_client/datapoints/assets/_sessions.py +0 -35
  777. rapidata/rapidata_client/datapoints/assets/_text_asset.py +0 -34
  778. rapidata/rapidata_client/datapoints/assets/data_type_enum.py +0 -8
  779. rapidata/rapidata_client/datapoints/datapoint.py +0 -108
  780. rapidata/rapidata_client/datapoints/metadata/_media_asset_metadata.py +0 -22
  781. rapidata/rapidata_client/datapoints/metadata/_prompt_metadata.py +0 -18
  782. rapidata/rapidata_client/logging/__init__.py +0 -2
  783. rapidata/rapidata_client/logging/logger.py +0 -122
  784. rapidata/rapidata_client/logging/output_manager.py +0 -20
  785. rapidata/rapidata_client/order/_rapidata_dataset.py +0 -396
  786. rapidata/rapidata_client/workflow/_ranking_workflow.py +0 -47
  787. rapidata/service/local_file_service.py +0 -25
  788. rapidata-2.35.1.dist-info/METADATA +0 -35
  789. rapidata-2.35.1.dist-info/RECORD +0 -657
  790. {rapidata-2.35.1.dist-info → rapidata-3.0.0a8.dist-info/licenses}/LICENSE +0 -0
@@ -1,45 +1,35 @@
1
- from typing import Sequence, Optional, Literal
2
- from itertools import zip_longest
1
+ from __future__ import annotations
3
2
 
4
- from rapidata.service.openapi_service import OpenAPIService
5
- from rapidata.rapidata_client.order.rapidata_order import RapidataOrder
6
- from rapidata.rapidata_client.order._rapidata_order_builder import RapidataOrderBuilder
7
- from rapidata.rapidata_client.datapoints.metadata import PromptMetadata, SelectWordsMetadata, PrivateTextMetadata, MediaAssetMetadata, Metadata
8
- from rapidata.rapidata_client.referee._naive_referee import NaiveReferee
9
- from rapidata.rapidata_client.referee._early_stopping_referee import EarlyStoppingReferee
10
- from rapidata.rapidata_client.selection._base_selection import RapidataSelection
11
- from rapidata.rapidata_client.workflow import (
12
- Workflow,
13
- ClassifyWorkflow,
14
- CompareWorkflow,
15
- FreeTextWorkflow,
16
- SelectWordsWorkflow,
17
- LocateWorkflow,
18
- DrawWorkflow,
19
- TimestampWorkflow,
20
- RankingWorkflow
3
+ from typing import Literal, Optional, Sequence, get_args, TYPE_CHECKING
4
+
5
+ from rapidata.rapidata_client.config import logger
6
+ from rapidata.rapidata_client.config.tracer import tracer
7
+ from rapidata.rapidata_client.datapoints._asset_uploader import AssetUploader
8
+ from rapidata.rapidata_client.datapoints._datapoint import Datapoint
9
+ from rapidata.rapidata_client.datapoints._datapoints_validator import (
10
+ DatapointsValidator,
21
11
  )
22
- from rapidata.rapidata_client.datapoints.assets import MediaAsset, TextAsset, MultiAsset
23
- from rapidata.rapidata_client.datapoints.datapoint import Datapoint
24
12
  from rapidata.rapidata_client.filter import RapidataFilter
25
13
  from rapidata.rapidata_client.filter.rapidata_filters import RapidataFilters
26
- from rapidata.rapidata_client.settings import RapidataSettings, RapidataSetting
14
+ from rapidata.rapidata_client.settings import RapidataSetting, RapidataSettings
27
15
  from rapidata.rapidata_client.selection.rapidata_selections import RapidataSelections
28
- from rapidata.rapidata_client.logging import logger, RapidataOutputManager
29
-
30
- from rapidata.api_client.models.query_model import QueryModel
31
- from rapidata.api_client.models.page_info import PageInfo
32
- from rapidata.api_client.models.root_filter import RootFilter
33
- from rapidata.api_client.models.filter import Filter
34
- from rapidata.api_client.models.sort_criterion import SortCriterion
16
+ from rapidata.service.openapi_service import OpenAPIService
35
17
 
36
- from tqdm import tqdm
18
+ if TYPE_CHECKING:
19
+ from rapidata.rapidata_client.order._rapidata_order_builder import (
20
+ StickyStateLiteral,
21
+ )
22
+ from rapidata.rapidata_client.order.rapidata_order import RapidataOrder
23
+ from rapidata.rapidata_client.selection._base_selection import RapidataSelection
24
+ from rapidata.rapidata_client.workflow import (
25
+ Workflow,
26
+ )
37
27
 
38
28
 
39
29
  class RapidataOrderManager:
40
30
  """
41
31
  Handels everything regarding the orders from creation to retrieval.
42
-
32
+
43
33
  Attributes:
44
34
  filters (RapidataFilters): The RapidataFilters instance.
45
35
  settings (RapidataSettings): The RapidataSettings instance.
@@ -50,117 +40,129 @@ class RapidataOrderManager:
50
40
  self.filters = RapidataFilters
51
41
  self.settings = RapidataSettings
52
42
  self.selections = RapidataSelections
43
+ from rapidata.rapidata_client.order._rapidata_order_builder import (
44
+ StickyStateLiteral,
45
+ )
46
+
53
47
  self.__priority: int | None = None
54
- self.__sticky_state: Literal["None", "Temporary", "Permanent"] | None = None
48
+ self.__sticky_state: StickyStateLiteral | None = None
49
+ self._asset_uploader = AssetUploader(openapi_service)
55
50
  logger.debug("RapidataOrderManager initialized")
56
-
57
- def _create_general_order(self,
58
- name: str,
59
- workflow: Workflow,
60
- assets: list[MediaAsset] | list[TextAsset] | list[MultiAsset],
61
- responses_per_datapoint: int = 10,
62
- contexts: list[str] | None = None,
63
- media_contexts: list[str] | None = None,
64
- validation_set_id: str | None = None,
65
- confidence_threshold: float | None = None,
66
- filters: Sequence[RapidataFilter] = [],
67
- settings: Sequence[RapidataSetting] = [],
68
- sentences: list[str] | None = None,
69
- selections: Sequence[RapidataSelection] = [],
70
- private_notes: list[str] | None = None,
71
- ) -> RapidataOrder:
72
-
73
- if not assets:
74
- raise ValueError("No datapoints provided")
75
-
76
- if contexts and len(contexts) != len(assets):
77
- raise ValueError("Number of contexts must match number of datapoints")
78
-
79
- if media_contexts and len(media_contexts) != len(assets):
80
- raise ValueError("Number of media contexts must match number of datapoints")
81
-
82
- if sentences and len(sentences) != len(assets):
83
- raise ValueError("Number of sentences must match number of datapoints")
84
-
85
- if private_notes and len(private_notes) != len(assets):
86
- raise ValueError("Number of private notes must match number of datapoints")
87
-
88
- if sentences and contexts:
89
- raise ValueError("You can only use contexts or sentences, not both")
51
+
52
+ def _create_general_order(
53
+ self,
54
+ name: str,
55
+ workflow: Workflow,
56
+ datapoints: list[Datapoint],
57
+ responses_per_datapoint: int = 10,
58
+ validation_set_id: str | None = None,
59
+ confidence_threshold: float | None = None,
60
+ filters: Sequence[RapidataFilter] | None = None,
61
+ settings: Sequence[RapidataSetting] | None = None,
62
+ selections: Sequence[RapidataSelection] | None = None,
63
+ ) -> RapidataOrder:
64
+ if filters is None:
65
+ filters = []
66
+ if settings is None:
67
+ settings = []
68
+ if selections is None:
69
+ selections = []
90
70
 
91
71
  if not confidence_threshold:
72
+ from rapidata.rapidata_client.referee._naive_referee import NaiveReferee
73
+
92
74
  referee = NaiveReferee(responses=responses_per_datapoint)
93
75
  else:
76
+ from rapidata.rapidata_client.referee._early_stopping_referee import (
77
+ EarlyStoppingReferee,
78
+ )
79
+
94
80
  referee = EarlyStoppingReferee(
95
81
  threshold=confidence_threshold,
96
- max_vote_count=responses_per_datapoint,
82
+ max_responses=responses_per_datapoint,
97
83
  )
98
84
 
99
- order_builder = RapidataOrderBuilder(name=name, openapi_service=self.__openapi_service)
85
+ logger.debug(
86
+ "Creating order with parameters: name %s, workflow %s, datapoints %s, responses_per_datapoint %s, validation_set_id %s, confidence_threshold %s, filters %s, settings %s, selections %s",
87
+ name,
88
+ workflow,
89
+ datapoints,
90
+ responses_per_datapoint,
91
+ validation_set_id,
92
+ confidence_threshold,
93
+ filters,
94
+ settings,
95
+ selections,
96
+ )
97
+
98
+ from rapidata.rapidata_client.order._rapidata_order_builder import (
99
+ RapidataOrderBuilder,
100
+ )
101
+
102
+ order_builder = RapidataOrderBuilder(
103
+ name=name, openapi_service=self.__openapi_service
104
+ )
100
105
 
101
106
  if selections and validation_set_id:
102
- logger.warning("Warning: Both selections and validation_set_id provided. Ignoring validation_set_id.")
103
-
104
- prompts_metadata = [PromptMetadata(prompt=prompt) for prompt in contexts] if contexts else None
105
- sentence_metadata = [SelectWordsMetadata(select_words=sentence) for sentence in sentences] if sentences else None
106
-
107
- if prompts_metadata and sentence_metadata:
108
- raise ValueError("You can only use contexts or sentences, not both")
109
-
110
- asset_metadata: Sequence[Metadata] = [MediaAssetMetadata(url=context) for context in media_contexts] if media_contexts else []
111
- prompt_metadata: Sequence[Metadata] = prompts_metadata or sentence_metadata or []
112
- private_notes_metadata: Sequence[Metadata] = [PrivateTextMetadata(text=text) for text in private_notes] if private_notes else []
113
-
114
- multi_metadata = [[item for item in items if item is not None]
115
- for items in zip_longest(prompt_metadata, asset_metadata, private_notes_metadata)]
116
-
117
- order = (order_builder
118
- ._workflow(workflow)
119
- ._datapoints(
120
- datapoints=[Datapoint(asset=asset, metadata=metadata) for asset, metadata in zip_longest(assets, multi_metadata)]
121
- )
122
- ._referee(referee)
123
- ._filters(filters)
124
- ._selections(selections)
125
- ._settings(settings)
126
- ._validation_set_id(validation_set_id if not selections else None)
127
- ._priority(self.__priority)
128
- ._sticky_state(self.__sticky_state)
129
- ._create()
130
- )
107
+ logger.warning(
108
+ "Warning: Both selections and validation_set_id provided. Ignoring validation_set_id."
109
+ )
110
+
111
+ order = (
112
+ order_builder._set_workflow(workflow)
113
+ ._set_datapoints(datapoints=datapoints)
114
+ ._set_referee(referee)
115
+ ._set_filters(filters)
116
+ ._set_selections(selections)
117
+ ._set_settings(settings)
118
+ ._set_validation_set_id(validation_set_id if not selections else None)
119
+ ._set_priority(self.__priority)
120
+ ._set_sticky_state(self.__sticky_state)
121
+ ._create()
122
+ )
123
+ logger.debug("Order created: %s", order)
131
124
  return order
132
-
133
- def _set_priority(self, priority: int):
134
- if not isinstance(priority, int):
135
- raise TypeError("Priority must be an integer")
136
-
137
- if priority < 0:
138
- raise ValueError("Priority must be greater than 0")
139
-
125
+
126
+ def _set_priority(self, priority: int | None):
127
+ if priority is not None and not isinstance(priority, int):
128
+ raise TypeError("Priority must be an integer or None")
129
+
130
+ if priority is not None and priority < 0:
131
+ raise ValueError("Priority must be greater than 0 or None")
132
+
140
133
  self.__priority = priority
141
-
142
- def _set_sticky_state(self, sticky_state: Literal["None", "Temporary", "Permanent"]):
143
- if sticky_state not in ["None", "Temporary", "Permanent"]:
144
- raise ValueError("Sticky state must be one of 'None', 'Temporary', 'Permanent'")
145
-
134
+
135
+ def _set_sticky_state(self, sticky_state: StickyStateLiteral | None):
136
+ from rapidata.rapidata_client.order._rapidata_order_builder import (
137
+ StickyStateLiteral,
138
+ )
139
+
140
+ sticky_state_valid_values = get_args(StickyStateLiteral)
141
+
142
+ if sticky_state is not None and sticky_state not in sticky_state_valid_values:
143
+ raise ValueError(
144
+ f"Sticky state must be one of {sticky_state_valid_values} or None"
145
+ )
146
+
146
147
  self.__sticky_state = sticky_state
147
-
148
- def create_classification_order(self,
149
- name: str,
150
- instruction: str,
151
- answer_options: list[str],
152
- datapoints: list[str],
153
- data_type: Literal["media", "text"] = "media",
154
- responses_per_datapoint: int = 10,
155
- contexts: list[str] | None = None,
156
- media_contexts: list[str] | None = None,
157
- validation_set_id: str | None = None,
158
- confidence_threshold: float | None = None,
159
- filters: Sequence[RapidataFilter] = [],
160
- settings: Sequence[RapidataSetting] = [],
161
- selections: Sequence[RapidataSelection] = [],
162
- private_notes: list[str] | None = None,
163
- ) -> RapidataOrder:
148
+
149
+ def create_classification_order(
150
+ self,
151
+ name: str,
152
+ instruction: str,
153
+ answer_options: list[str],
154
+ datapoints: list[str],
155
+ data_type: Literal["media", "text"] = "media",
156
+ responses_per_datapoint: int = 10,
157
+ contexts: list[str] | None = None,
158
+ media_contexts: list[str] | None = None,
159
+ validation_set_id: str | None = None,
160
+ confidence_threshold: float | None = None,
161
+ filters: Sequence[RapidataFilter] | None = None,
162
+ settings: Sequence[RapidataSetting] | None = None,
163
+ selections: Sequence[RapidataSelection] | None = None,
164
+ private_notes: list[str] | None = None,
165
+ ) -> RapidataOrder:
164
166
  """Create a classification order.
165
167
 
166
168
  With this order you can have a datapoint (image, text, video, audio) be classified into one of the answer options.
@@ -187,50 +189,74 @@ class RapidataOrderManager:
187
189
  settings (Sequence[RapidataSetting], optional): The list of settings for the classification. Defaults to []. Decides how the tasks should be shown.
188
190
  selections (Sequence[RapidataSelection], optional): The list of selections for the classification. Defaults to []. Decides in what order the tasks should be shown.
189
191
  private_notes (list[str], optional): The list of private notes for the classification. Defaults to None.
190
- If provided has to be the same length as datapoints.\n
192
+ If provided has to be the same length as datapoints.\n
191
193
  This will NOT be shown to the labelers but will be included in the result purely for your own reference.
194
+
195
+ Example:
196
+ ```python
197
+ from rapidata import RapidataClient, NoShuffle
198
+
199
+ rapi = RapidataClient()
200
+ order = rapi.order.create_classification_order(
201
+ name="Image Quality Rating",
202
+ instruction="How would you rate the quality of this image?",
203
+ answer_options=["1: Poor", "2: Fair", "3: Good", "4: Excellent"],
204
+ datapoints=["https://example.com/image1.jpg", "https://example.com/image2.jpg"],
205
+ responses_per_datapoint=15,
206
+ settings=[NoShuffle()], # Keep options in order for Likert scale
207
+ ).run()
208
+
209
+ results = order.get_results()
210
+ ```
192
211
  """
193
-
194
- if data_type == "media":
195
- assets = [MediaAsset(path=path) for path in datapoints]
196
- elif data_type == "text":
197
- assets = [TextAsset(text=text) for text in datapoints]
198
- else:
199
- raise ValueError(f"Unsupported data type: {data_type}, must be one of 'media' or 'text'")
200
-
201
- return self._create_general_order(
202
- name=name,
203
- workflow=ClassifyWorkflow(
204
- instruction=instruction,
205
- answer_options=answer_options
206
- ),
207
- assets=assets,
208
- responses_per_datapoint=responses_per_datapoint,
209
- contexts=contexts,
210
- media_contexts=media_contexts,
211
- validation_set_id=validation_set_id,
212
- confidence_threshold=confidence_threshold,
213
- filters=filters,
214
- selections=selections,
215
- settings=settings,
216
- private_notes=private_notes
217
- )
218
-
219
- def create_compare_order(self,
220
- name: str,
221
- instruction: str,
222
- datapoints: list[list[str]],
223
- data_type: Literal["media", "text"] = "media",
224
- responses_per_datapoint: int = 10,
225
- contexts: list[str] | None = None,
226
- media_contexts: list[str] | None = None,
227
- validation_set_id: str | None = None,
228
- confidence_threshold: float | None = None,
229
- filters: Sequence[RapidataFilter] = [],
230
- settings: Sequence[RapidataSetting] = [],
231
- selections: Sequence[RapidataSelection] = [],
232
- private_notes: list[str] | None = None,
233
- ) -> RapidataOrder:
212
+ with tracer.start_as_current_span(
213
+ "RapidataOrderManager.create_classification_order"
214
+ ):
215
+ if not isinstance(datapoints, list) or not all(
216
+ isinstance(datapoint, str) for datapoint in datapoints
217
+ ):
218
+ raise ValueError("Datapoints must be a list of strings")
219
+
220
+ from rapidata.rapidata_client.workflow import ClassifyWorkflow
221
+
222
+ datapoints_instances = DatapointsValidator.map_datapoints(
223
+ datapoints=datapoints,
224
+ contexts=contexts,
225
+ media_contexts=media_contexts,
226
+ private_notes=private_notes,
227
+ data_type=data_type,
228
+ )
229
+ return self._create_general_order(
230
+ name=name,
231
+ workflow=ClassifyWorkflow(
232
+ instruction=instruction, answer_options=answer_options
233
+ ),
234
+ datapoints=datapoints_instances,
235
+ responses_per_datapoint=responses_per_datapoint,
236
+ validation_set_id=validation_set_id,
237
+ confidence_threshold=confidence_threshold,
238
+ filters=filters,
239
+ selections=selections,
240
+ settings=settings,
241
+ )
242
+
243
+ def create_compare_order(
244
+ self,
245
+ name: str,
246
+ instruction: str,
247
+ datapoints: list[list[str]],
248
+ data_type: Literal["media", "text"] = "media",
249
+ responses_per_datapoint: int = 10,
250
+ contexts: list[str] | None = None,
251
+ media_contexts: list[str] | None = None,
252
+ a_b_names: list[str] | None = None,
253
+ validation_set_id: str | None = None,
254
+ confidence_threshold: float | None = None,
255
+ filters: Sequence[RapidataFilter] | None = None,
256
+ settings: Sequence[RapidataSetting] | None = None,
257
+ selections: Sequence[RapidataSelection] | None = None,
258
+ private_notes: list[str] | None = None,
259
+ ) -> RapidataOrder:
234
260
  """Create a compare order.
235
261
 
236
262
  With this order you compare two datapoints (image, text, video, audio) and the annotators will choose one of the two based on the instruction.
@@ -248,6 +274,15 @@ class RapidataOrderManager:
248
274
  media_contexts (list[str], optional): The list of media contexts i.e. links to the images / videos for the comparison. Defaults to None.\n
249
275
  If provided has to be the same length as datapoints and will be shown in addition to the instruction. (Therefore will be different for each datapoint)
250
276
  Will be matched up with the datapoints using the list index.
277
+ a_b_names (list[str], optional): Custom naming for the two opposing models defined by the index in the datapoints list. Defaults to None.\n
278
+ If provided has to be a list of exactly two strings.
279
+ example:
280
+ ```python
281
+ datapoints = [["path_to_image_A", "path_to_image_B"], ["path_to_text_A", "path_to_text_B"]]
282
+ a_b_naming = ["Model A", "Model B"]
283
+ ```
284
+ The results will then correctly show "Model A" and "Model B".
285
+ If not provided, the results will be shown as "A" and "B".
251
286
  validation_set_id (str, optional): The ID of the validation set. Defaults to None.\n
252
287
  If provided, one validation task will be shown infront of the datapoints that will be labeled.
253
288
  confidence_threshold (float, optional): The probability threshold for the comparison. Defaults to None.\n
@@ -256,113 +291,219 @@ class RapidataOrderManager:
256
291
  settings (Sequence[RapidataSetting], optional): The list of settings for the comparison. Defaults to []. Decides how the tasks should be shown.
257
292
  selections (Sequence[RapidataSelection], optional): The list of selections for the comparison. Defaults to []. Decides in what order the tasks should be shown.
258
293
  private_notes (list[str], optional): The list of private notes for the comparison. Defaults to None.\n
259
- If provided has to be the same length as datapoints.\n
294
+ If provided has to be the same length as datapoints.\n
260
295
  This will NOT be shown to the labelers but will be included in the result purely for your own reference.
261
- """
262
-
263
- if any(type(datapoint) != list for datapoint in datapoints):
264
- raise ValueError("Each datapoint must be a list of 2 paths/texts")
265
296
 
266
- if any(len(datapoint) != 2 for datapoint in datapoints):
267
- raise ValueError("Each datapoint must contain exactly two options")
268
-
269
- if data_type == "media":
270
- assets = [MultiAsset([MediaAsset(path=path) for path in datapoint]) for datapoint in datapoints]
271
- elif data_type == "text":
272
- assets = [MultiAsset([TextAsset(text=text) for text in datapoint]) for datapoint in datapoints]
273
- else:
274
- raise ValueError(f"Unsupported data type: {data_type}, must be one of 'media' or 'text'")
275
-
276
- return self._create_general_order(
277
- name=name,
278
- workflow=CompareWorkflow(
279
- instruction=instruction
280
- ),
281
- assets=assets,
282
- responses_per_datapoint=responses_per_datapoint,
283
- contexts=contexts,
284
- media_contexts=media_contexts,
285
- validation_set_id=validation_set_id,
286
- confidence_threshold=confidence_threshold,
287
- filters=filters,
288
- selections=selections,
289
- settings=settings,
290
- private_notes=private_notes
291
- )
297
+ Example:
298
+ ```python
299
+ from rapidata import RapidataClient
300
+
301
+ rapi = RapidataClient()
302
+ order = rapi.order.create_compare_order(
303
+ name="Image Prompt Alignment",
304
+ instruction="Which image follows the prompt more accurately?",
305
+ datapoints=[
306
+ ["https://example.com/model_a_img1.jpg", "https://example.com/model_b_img1.jpg"],
307
+ ["https://example.com/model_a_img2.jpg", "https://example.com/model_b_img2.jpg"],
308
+ ],
309
+ contexts=["A cat sitting on a red couch", "A blue car in the rain"],
310
+ responses_per_datapoint=25,
311
+ a_b_names=["Flux", "Midjourney"], # Optional: label the models in results
312
+ ).run()
313
+
314
+ results = order.get_results()
315
+ ```
316
+ """
317
+ with tracer.start_as_current_span("RapidataOrderManager.create_compare_order"):
318
+ if any(not isinstance(datapoint, list) for datapoint in datapoints):
319
+ raise ValueError("Each datapoint must be a list of 2 paths/texts")
320
+
321
+ if any(len(set(datapoint)) != 2 for datapoint in datapoints):
322
+ raise ValueError(
323
+ "Each datapoint must contain exactly two unique options"
324
+ )
325
+
326
+ if a_b_names is not None and len(a_b_names) != 2:
327
+ raise ValueError(
328
+ "A_B_naming must be a list of exactly two strings or None"
329
+ )
330
+
331
+ from rapidata.rapidata_client.workflow import CompareWorkflow
332
+
333
+ datapoints_instances = DatapointsValidator.map_datapoints(
334
+ datapoints=datapoints,
335
+ contexts=contexts,
336
+ media_contexts=media_contexts,
337
+ private_notes=private_notes,
338
+ data_type=data_type,
339
+ )
340
+ return self._create_general_order(
341
+ name=name,
342
+ workflow=CompareWorkflow(instruction=instruction, a_b_names=a_b_names),
343
+ datapoints=datapoints_instances,
344
+ responses_per_datapoint=responses_per_datapoint,
345
+ validation_set_id=validation_set_id,
346
+ confidence_threshold=confidence_threshold,
347
+ filters=filters,
348
+ selections=selections,
349
+ settings=settings,
350
+ )
292
351
 
293
- def create_ranking_order(self,
294
- name: str,
295
- instruction: str,
296
- datapoints: list[str],
297
- total_comparison_budget: int,
298
- responses_per_comparison: int = 1,
299
- data_type: Literal["media", "text"] = "media",
300
- random_comparisons_ratio: float = 0.5,
301
- context: Optional[str] = None,
302
- validation_set_id: Optional[str] = None,
303
- filters: Sequence[RapidataFilter] = [],
304
- settings: Sequence[RapidataSetting] = [],
305
- selections: Sequence[RapidataSelection] = []
306
- ) -> RapidataOrder:
352
+ def create_ranking_order(
353
+ self,
354
+ name: str,
355
+ instruction: str,
356
+ datapoints: list[list[str]],
357
+ comparison_budget_per_ranking: int,
358
+ responses_per_comparison: int = 1,
359
+ data_type: Literal["media", "text"] = "media",
360
+ random_comparisons_ratio: float = 0.5,
361
+ contexts: Optional[list[str]] = None,
362
+ media_contexts: Optional[list[str]] = None,
363
+ validation_set_id: Optional[str] = None,
364
+ filters: Sequence[RapidataFilter] | None = None,
365
+ settings: Sequence[RapidataSetting] | None = None,
366
+ selections: Sequence[RapidataSelection] | None = None,
367
+ ) -> RapidataOrder:
307
368
  """
308
369
  Create a ranking order.
309
370
 
310
- With this order you can rank a list of datapoints (image, text, video, audio) based on the instruction.
311
- The annotators will be shown two datapoints at a time. The ranking happens in terms of an elo system based on the matchup results.
371
+ With this order you can have a multiple lists of datapoints (image, text, video, audio) be ranked based on the instruction.
372
+ Each list will be ranked independently, based on comparison matchups.
312
373
 
313
374
  Args:
314
375
  name (str): The name of the order.
315
- instruction (str): The question asked from People when They see two datapoints.
316
- datapoints (list[str]): A list of datapoints that will participate in the ranking.
317
- total_comparison_budget (int): The total number of (pairwise-)comparisons that can be made.
318
- responses_per_comparison (int, optional): The number of responses collected per comparison. Defaults to 1.
376
+ instruction (str): The instruction for the ranking. Will be shown with each matchup.
377
+ datapoints (list[list[str]]): The outer list is determines the independent rankings, the inner list is the datapoints for each ranking.
378
+ comparison_budget_per_ranking (int): The number of comparisons that will be collected per ranking (outer list of datapoints).
379
+ responses_per_comparison (int, optional): The number of responses that will be collected per comparison. Defaults to 1.
319
380
  data_type (str, optional): The data type of the datapoints. Defaults to "media" (any form of image, video or audio). \n
320
381
  Other option: "text".
321
- random_comparisons_ratio (float, optional): The fraction of random comparisons in the ranking process.
322
- The rest will focus on pairing similarly ranked datapoints. Defaults to 0.5 and can be left untouched.
323
- context (str, optional): The context for all the comparison. Defaults to None.\n
324
- If provided will be shown in addition to the instruction for all the matchups.
382
+ random_comparisons_ratio (float, optional): The ratio of random comparisons to the total number of comparisons. Defaults to 0.5.
383
+ contexts (list[str], optional): The list of contexts for the ranking. Defaults to None.\n
384
+ If provided has to be the same length as the outer list of datapoints and will be shown in addition to the instruction. (Therefore will be different for each ranking)
385
+ Will be matched up with the datapoints using the list index.
386
+ media_contexts (list[str], optional): The list of media contexts for the ranking i.e links to the images / videos. Defaults to None.\n
387
+ If provided has to be the same length as the outer list of datapoints and will be shown in addition to the instruction. (Therefore will be different for each ranking)
388
+ Will be matched up with the datapoints using the list index.
325
389
  validation_set_id (str, optional): The ID of the validation set. Defaults to None.\n
326
390
  If provided, one validation task will be shown infront of the datapoints that will be labeled.
327
- filters (Sequence[RapidataFilter], optional): The list of filters for the order. Defaults to []. Decides who the tasks should be shown to.
328
- settings (Sequence[RapidataSetting], optional): The list of settings for the order. Defaults to []. Decides how the tasks should be shown.
329
- selections (Sequence[RapidataSelection], optional): The list of selections for the order. Defaults to []. Decides in what order the tasks should be shown.
391
+ filters (Sequence[RapidataFilter], optional): The list of filters for the ranking. Defaults to []. Decides who the tasks should be shown to.
392
+ settings (Sequence[RapidataSetting], optional): The list of settings for the ranking. Defaults to []. Decides how the tasks should be shown.
393
+ selections (Sequence[RapidataSelection], optional): The list of selections for the ranking. Defaults to []. Decides in what order the tasks should be shown.
394
+
395
+ Example:
396
+ ```python
397
+ from rapidata import RapidataClient
398
+
399
+ rapi = RapidataClient()
400
+ # Rank 12 images by preference using 50 pairwise comparisons
401
+ order = rapi.order.create_ranking_order(
402
+ name="Image Quality Ranking",
403
+ instruction="Which image looks better?",
404
+ datapoints=[["img1.jpg", "img2.jpg", "img3.jpg", "img4.jpg", "img5.jpg",
405
+ "img6.jpg", "img7.jpg", "img8.jpg", "img9.jpg", "img10.jpg",
406
+ "img11.jpg", "img12.jpg"]],
407
+ comparison_budget_per_ranking=50,
408
+ random_comparisons_ratio=0.5, # 50% random, 50% close matchups
409
+ ).run()
410
+
411
+ results = order.get_results() # Returns ranked list with scores
412
+ ```
330
413
  """
414
+ with tracer.start_as_current_span("RapidataOrderManager.create_ranking_order"):
415
+ if contexts and len(contexts) != len(datapoints):
416
+ raise ValueError(
417
+ "Number of contexts must match the number of sets that will be ranked"
418
+ )
419
+ if media_contexts and len(media_contexts) != len(datapoints):
420
+ raise ValueError(
421
+ "Number of media contexts must match the number of sets that will be ranked"
422
+ )
423
+ if not isinstance(datapoints, list) or not all(
424
+ isinstance(dp, list) for dp in datapoints
425
+ ):
426
+ raise ValueError(
427
+ "Datapoints must be a list of lists. Outer list is the independent rankings, inner list is the datapoints for each ranking."
428
+ )
429
+ if not all(len(set(dp)) == len(dp) for dp in datapoints):
430
+ raise ValueError("Each inner list must contain unique datapoints.")
431
+
432
+ if not all(len(inner_list) >= 2 for inner_list in datapoints):
433
+ raise ValueError(
434
+ "Each ranking must contain at least two unique datapoints."
435
+ )
436
+
437
+ from rapidata.rapidata_client.workflow import MultiRankingWorkflow
438
+ from rapidata.api_client.models.i_asset_input import IAssetInput
439
+ from rapidata.api_client.models.i_asset_input_existing_asset_input import (
440
+ IAssetInputExistingAssetInput,
441
+ )
331
442
 
332
- if data_type == "media":
333
- assets = [MediaAsset(path=path) for path in datapoints]
334
- elif data_type == "text":
335
- assets = [TextAsset(text=text) for text in datapoints]
336
- else:
337
- raise ValueError(f"Unsupported data type: {data_type}, must be one of 'media' or 'text'")
338
-
339
- return self._create_general_order(
340
- name=name,
341
- workflow=RankingWorkflow(
342
- criteria=instruction,
343
- total_comparison_budget=total_comparison_budget,
344
- random_comparisons_ratio=random_comparisons_ratio,
345
- context=context
346
- ),
347
- assets=assets,
348
- responses_per_datapoint=responses_per_comparison,
349
- validation_set_id=validation_set_id,
350
- filters=filters,
351
- selections=selections,
352
- settings=settings,
353
- )
443
+ datapoints_instances = []
444
+ for i, datapoint in enumerate(datapoints):
445
+ for d in datapoint:
446
+ datapoints_instances.append(
447
+ Datapoint(
448
+ asset=d,
449
+ data_type=data_type,
450
+ context=contexts[i] if contexts else None,
451
+ media_context=media_contexts[i] if media_contexts else None,
452
+ group=str(i),
453
+ )
454
+ )
455
+
456
+ contexts_dict = (
457
+ {str(i): context for i, context in enumerate(contexts)}
458
+ if contexts
459
+ else None
460
+ )
461
+
462
+ media_contexts_dict = (
463
+ {
464
+ str(i): IAssetInput(
465
+ actual_instance=IAssetInputExistingAssetInput(
466
+ _t="ExistingAssetInput",
467
+ name=self._asset_uploader.upload_asset(media_context),
468
+ )
469
+ )
470
+ for i, media_context in enumerate(media_contexts)
471
+ }
472
+ if media_contexts
473
+ else None
474
+ )
354
475
 
355
- def create_free_text_order(self,
356
- name: str,
357
- instruction: str,
358
- datapoints: list[str],
359
- data_type: Literal["media", "text"] = "media",
360
- responses_per_datapoint: int = 10,
361
- filters: Sequence[RapidataFilter] = [],
362
- settings: Sequence[RapidataSetting] = [],
363
- selections: Sequence[RapidataSelection] = [],
364
- private_notes: list[str] | None = None,
365
- ) -> RapidataOrder:
476
+ return self._create_general_order(
477
+ name=name,
478
+ workflow=MultiRankingWorkflow(
479
+ instruction=instruction,
480
+ comparison_budget_per_ranking=comparison_budget_per_ranking,
481
+ random_comparisons_ratio=random_comparisons_ratio,
482
+ contexts=contexts_dict,
483
+ media_contexts=media_contexts_dict,
484
+ ),
485
+ datapoints=datapoints_instances,
486
+ responses_per_datapoint=responses_per_comparison,
487
+ validation_set_id=validation_set_id,
488
+ filters=filters,
489
+ selections=selections,
490
+ settings=settings,
491
+ )
492
+
493
+ def create_free_text_order(
494
+ self,
495
+ name: str,
496
+ instruction: str,
497
+ datapoints: list[str],
498
+ data_type: Literal["media", "text"] = "media",
499
+ responses_per_datapoint: int = 10,
500
+ contexts: list[str] | None = None,
501
+ media_contexts: list[str] | None = None,
502
+ filters: Sequence[RapidataFilter] | None = None,
503
+ settings: Sequence[RapidataSetting] | None = None,
504
+ selections: Sequence[RapidataSelection] | None = None,
505
+ private_notes: list[str] | None = None,
506
+ ) -> RapidataOrder:
366
507
  """Create a free text order.
367
508
 
368
509
  With this order you can have a datapoint (image, text, video, audio) be labeled with free text.
@@ -375,46 +516,70 @@ class RapidataOrderManager:
375
516
  data_type (str, optional): The data type of the datapoints. Defaults to "media" (any form of image, video or audio). \n
376
517
  Other option: "text".
377
518
  responses_per_datapoint (int, optional): The number of responses that will be collected per datapoint. Defaults to 10.
519
+ contexts (list[str], optional): The list of contexts for the free text. Defaults to None.\n
520
+ If provided has to be the same length as datapoints and will be shown in addition to the instruction. (Therefore will be different for each datapoint)
521
+ Will be matched up with the datapoints using the list index.
522
+ media_contexts (list[str], optional): The list of media contexts for the free text i.e links to the images / videos. Defaults to None.\n
523
+ If provided has to be the same length as datapoints and will be shown in addition to the instruction. (Therefore will be different for each datapoint)
524
+ Will be matched up with the datapoints using the list index.
378
525
  filters (Sequence[RapidataFilter], optional): The list of filters for the free text. Defaults to []. Decides who the tasks should be shown to.
379
526
  settings (Sequence[RapidataSetting], optional): The list of settings for the free text. Defaults to []. Decides how the tasks should be shown.
380
527
  selections (Sequence[RapidataSelection], optional): The list of selections for the free text. Defaults to []. Decides in what order the tasks should be shown.
381
528
  private_notes (list[str], optional): The list of private notes for the free text. Defaults to None.\n
382
- If provided has to be the same length as datapoints.\n
529
+ If provided has to be the same length as datapoints.\n
383
530
  This will NOT be shown to the labelers but will be included in the result purely for your own reference.
531
+
532
+ Example:
533
+ ```python
534
+ from rapidata import RapidataClient, FreeTextMinimumCharacters
535
+
536
+ rapi = RapidataClient()
537
+ order = rapi.order.create_free_text_order(
538
+ name="Image Captioning",
539
+ instruction="Describe what you see in this image in detail",
540
+ datapoints=["https://example.com/image1.jpg", "https://example.com/image2.jpg"],
541
+ responses_per_datapoint=5,
542
+ settings=[FreeTextMinimumCharacters(20)], # Require at least 20 characters
543
+ ).run()
544
+
545
+ results = order.get_results()
546
+ ```
384
547
  """
548
+ with tracer.start_as_current_span(
549
+ "RapidataOrderManager.create_free_text_order"
550
+ ):
551
+ from rapidata.rapidata_client.workflow import FreeTextWorkflow
552
+
553
+ datapoints_instances = DatapointsValidator.map_datapoints(
554
+ datapoints=datapoints,
555
+ contexts=contexts,
556
+ media_contexts=media_contexts,
557
+ private_notes=private_notes,
558
+ data_type=data_type,
559
+ )
560
+ return self._create_general_order(
561
+ name=name,
562
+ workflow=FreeTextWorkflow(instruction=instruction),
563
+ datapoints=datapoints_instances,
564
+ responses_per_datapoint=responses_per_datapoint,
565
+ filters=filters,
566
+ selections=selections,
567
+ settings=settings,
568
+ )
385
569
 
386
- if data_type == "media":
387
- assets = [MediaAsset(path=path) for path in datapoints]
388
- elif data_type == "text":
389
- assets = [TextAsset(text=text) for text in datapoints]
390
- else:
391
- raise ValueError(f"Unsupported data type: {data_type}, must be one of 'media' or 'text'")
392
-
393
- return self._create_general_order(
394
- name=name,
395
- workflow=FreeTextWorkflow(
396
- instruction=instruction
397
- ),
398
- assets=assets,
399
- responses_per_datapoint=responses_per_datapoint,
400
- filters=filters,
401
- selections=selections,
402
- settings=settings,
403
- private_notes=private_notes
404
- )
405
-
406
- def create_select_words_order(self,
407
- name: str,
408
- instruction: str,
409
- datapoints: list[str],
410
- sentences: list[str],
411
- responses_per_datapoint: int = 10,
412
- validation_set_id: str | None = None,
413
- filters: Sequence[RapidataFilter] = [],
414
- settings: Sequence[RapidataSetting] = [],
415
- selections: Sequence[RapidataSelection] = [],
416
- private_notes: list[str] | None = None,
417
- ) -> RapidataOrder:
570
+ def create_select_words_order(
571
+ self,
572
+ name: str,
573
+ instruction: str,
574
+ datapoints: list[str],
575
+ sentences: list[str],
576
+ responses_per_datapoint: int = 10,
577
+ validation_set_id: str | None = None,
578
+ filters: Sequence[RapidataFilter] | None = None,
579
+ settings: Sequence[RapidataSetting] | None = None,
580
+ selections: Sequence[RapidataSelection] | None = None,
581
+ private_notes: list[str] | None = None,
582
+ ) -> RapidataOrder:
418
583
  """Create a select words order.
419
584
 
420
585
  With this order you can have a datapoint (image, text, video, audio) be labeled with a list of words.
@@ -434,40 +599,62 @@ class RapidataOrderManager:
434
599
  settings (Sequence[RapidataSetting], optional): The list of settings for the select words. Defaults to []. Decides how the tasks should be shown.
435
600
  selections (Sequence[RapidataSelection], optional): The list of selections for the select words. Defaults to []. Decides in what order the tasks should be shown.
436
601
  private_notes (list[str], optional): The list of private notes for the select words. Defaults to None.\n
437
- If provided has to be the same length as datapoints.\n
602
+ If provided has to be the same length as datapoints.\n
438
603
  This will NOT be shown to the labelers but will be included in the result purely for your own reference.
604
+
605
+ Example:
606
+ ```python
607
+ from rapidata import RapidataClient
608
+
609
+ rapi = RapidataClient()
610
+ order = rapi.order.create_select_words_order(
611
+ name="Find Text-Image Mismatches",
612
+ instruction="Select words that don't match what's shown in the image",
613
+ datapoints=["https://example.com/image1.jpg", "https://example.com/image2.jpg"],
614
+ sentences=["A red car on a blue road", "Two cats playing with yarn"],
615
+ responses_per_datapoint=15,
616
+ ).run()
617
+
618
+ results = order.get_results()
619
+ ```
439
620
  """
621
+ with tracer.start_as_current_span(
622
+ "RapidataOrderManager.create_select_words_order"
623
+ ):
624
+ from rapidata.rapidata_client.workflow import SelectWordsWorkflow
625
+
626
+ datapoints_instances = DatapointsValidator.map_datapoints(
627
+ datapoints=datapoints,
628
+ sentences=sentences,
629
+ private_notes=private_notes,
630
+ )
631
+ return self._create_general_order(
632
+ name=name,
633
+ workflow=SelectWordsWorkflow(
634
+ instruction=instruction,
635
+ ),
636
+ datapoints=datapoints_instances,
637
+ responses_per_datapoint=responses_per_datapoint,
638
+ validation_set_id=validation_set_id,
639
+ filters=filters,
640
+ selections=selections,
641
+ settings=settings,
642
+ )
440
643
 
441
- assets = [MediaAsset(path=path) for path in datapoints]
442
-
443
- return self._create_general_order(
444
- name=name,
445
- workflow=SelectWordsWorkflow(
446
- instruction=instruction
447
- ),
448
- assets=assets,
449
- responses_per_datapoint=responses_per_datapoint,
450
- validation_set_id=validation_set_id,
451
- filters=filters,
452
- selections=selections,
453
- settings=settings,
454
- sentences=sentences,
455
- private_notes=private_notes
456
- )
457
-
458
- def create_locate_order(self,
459
- name: str,
460
- instruction: str,
461
- datapoints: list[str],
462
- responses_per_datapoint: int = 10,
463
- contexts: list[str] | None = None,
464
- media_contexts: list[str] | None = None,
465
- validation_set_id: str | None = None,
466
- filters: Sequence[RapidataFilter] = [],
467
- settings: Sequence[RapidataSetting] = [],
468
- selections: Sequence[RapidataSelection] = [],
469
- private_notes: list[str] | None = None,
470
- ) -> RapidataOrder:
644
+ def create_locate_order(
645
+ self,
646
+ name: str,
647
+ instruction: str,
648
+ datapoints: list[str],
649
+ responses_per_datapoint: int = 10,
650
+ contexts: list[str] | None = None,
651
+ media_contexts: list[str] | None = None,
652
+ validation_set_id: str | None = None,
653
+ filters: Sequence[RapidataFilter] | None = None,
654
+ settings: Sequence[RapidataSetting] | None = None,
655
+ selections: Sequence[RapidataSelection] | None = None,
656
+ private_notes: list[str] | None = None,
657
+ ) -> RapidataOrder:
471
658
  """Create a locate order.
472
659
 
473
660
  With this order you can have people locate specific objects in a datapoint (image, text, video, audio).
@@ -489,39 +676,58 @@ class RapidataOrderManager:
489
676
  settings (Sequence[RapidataSetting], optional): The list of settings for the locate. Defaults to []. Decides how the tasks should be shown.
490
677
  selections (Sequence[RapidataSelection], optional): The list of selections for the locate. Defaults to []. Decides in what order the tasks should be shown.
491
678
  private_notes (list[str], optional): The list of private notes for the locate. Defaults to None.\n
492
- If provided has to be the same length as datapoints.\n
679
+ If provided has to be the same length as datapoints.\n
493
680
  This will NOT be shown to the labelers but will be included in the result purely for your own reference.
494
- """
495
681
 
496
- assets = [MediaAsset(path=path) for path in datapoints]
497
-
498
- return self._create_general_order(
499
- name=name,
500
- workflow=LocateWorkflow(target=instruction),
501
- assets=assets,
502
- responses_per_datapoint=responses_per_datapoint,
503
- contexts=contexts,
504
- media_contexts=media_contexts,
505
- validation_set_id=validation_set_id,
506
- filters=filters,
507
- selections=selections,
508
- settings=settings,
509
- private_notes=private_notes
510
- )
682
+ Example:
683
+ ```python
684
+ from rapidata import RapidataClient
685
+
686
+ rapi = RapidataClient()
687
+ order = rapi.order.create_locate_order(
688
+ name="Find Artifacts",
689
+ instruction="Tap on any visual glitches or errors in the image",
690
+ datapoints=["https://example.com/ai_generated1.jpg", "https://example.com/ai_generated2.jpg"],
691
+ responses_per_datapoint=35,
692
+ ).run()
693
+
694
+ results = order.get_results()
695
+ ```
696
+ """
697
+ with tracer.start_as_current_span("RapidataOrderManager.create_locate_order"):
698
+ from rapidata.rapidata_client.workflow import LocateWorkflow
699
+
700
+ datapoints_instances = DatapointsValidator.map_datapoints(
701
+ datapoints=datapoints,
702
+ contexts=contexts,
703
+ media_contexts=media_contexts,
704
+ private_notes=private_notes,
705
+ )
706
+ return self._create_general_order(
707
+ name=name,
708
+ workflow=LocateWorkflow(target=instruction),
709
+ datapoints=datapoints_instances,
710
+ responses_per_datapoint=responses_per_datapoint,
711
+ validation_set_id=validation_set_id,
712
+ filters=filters,
713
+ selections=selections,
714
+ settings=settings,
715
+ )
511
716
 
512
- def create_draw_order(self,
513
- name: str,
514
- instruction: str,
515
- datapoints: list[str],
516
- responses_per_datapoint: int = 10,
517
- contexts: list[str] | None = None,
518
- media_contexts: list[str] | None = None,
519
- validation_set_id: str | None = None,
520
- filters: Sequence[RapidataFilter] = [],
521
- settings: Sequence[RapidataSetting] = [],
522
- selections: Sequence[RapidataSelection] = [],
523
- private_notes: list[str] | None = None,
524
- ) -> RapidataOrder:
717
+ def create_draw_order(
718
+ self,
719
+ name: str,
720
+ instruction: str,
721
+ datapoints: list[str],
722
+ responses_per_datapoint: int = 10,
723
+ contexts: list[str] | None = None,
724
+ media_contexts: list[str] | None = None,
725
+ validation_set_id: str | None = None,
726
+ filters: Sequence[RapidataFilter] | None = None,
727
+ settings: Sequence[RapidataSetting] | None = None,
728
+ selections: Sequence[RapidataSelection] | None = None,
729
+ private_notes: list[str] | None = None,
730
+ ) -> RapidataOrder:
525
731
  """Create a draw order.
526
732
 
527
733
  With this order you can have people draw lines on a datapoint (image, text, video, audio).
@@ -543,42 +749,61 @@ class RapidataOrderManager:
543
749
  settings (Sequence[RapidataSetting], optional): The list of settings for the draw lines. Defaults to []. Decides how the tasks should be shown.
544
750
  selections (Sequence[RapidataSelection], optional): The list of selections for the draw lines. Defaults to []. Decides in what order the tasks should be shown.
545
751
  private_notes (list[str], optional): The list of private notes for the draw lines. Defaults to None.\n
546
- If provided has to be the same length as datapoints.\n
752
+ If provided has to be the same length as datapoints.\n
547
753
  This will NOT be shown to the labelers but will be included in the result purely for your own reference.
754
+
755
+ Example:
756
+ ```python
757
+ from rapidata import RapidataClient
758
+
759
+ rapi = RapidataClient()
760
+ order = rapi.order.create_draw_order(
761
+ name="Segment Objects",
762
+ instruction="Color in all the cars in the image",
763
+ datapoints=["https://example.com/street1.jpg", "https://example.com/street2.jpg"],
764
+ responses_per_datapoint=35,
765
+ ).run()
766
+
767
+ results = order.get_results()
768
+ ```
548
769
  """
770
+ with tracer.start_as_current_span("RapidataOrderManager.create_draw_order"):
771
+ from rapidata.rapidata_client.workflow import DrawWorkflow
772
+
773
+ datapoints_instances = DatapointsValidator.map_datapoints(
774
+ datapoints=datapoints,
775
+ contexts=contexts,
776
+ media_contexts=media_contexts,
777
+ private_notes=private_notes,
778
+ )
779
+ return self._create_general_order(
780
+ name=name,
781
+ workflow=DrawWorkflow(target=instruction),
782
+ datapoints=datapoints_instances,
783
+ responses_per_datapoint=responses_per_datapoint,
784
+ validation_set_id=validation_set_id,
785
+ filters=filters,
786
+ selections=selections,
787
+ settings=settings,
788
+ )
549
789
 
550
- assets = [MediaAsset(path=path) for path in datapoints]
551
-
552
- return self._create_general_order(
553
- name=name,
554
- workflow=DrawWorkflow(target=instruction),
555
- assets=assets,
556
- responses_per_datapoint=responses_per_datapoint,
557
- contexts=contexts,
558
- media_contexts=media_contexts,
559
- validation_set_id=validation_set_id,
560
- filters=filters,
561
- selections=selections,
562
- settings=settings,
563
- private_notes=private_notes
564
- )
565
-
566
- def create_timestamp_order(self,
567
- name: str,
568
- instruction: str,
569
- datapoints: list[str],
570
- responses_per_datapoint: int = 10,
571
- contexts: list[str] | None = None,
572
- media_contexts: list[str] | None = None,
573
- validation_set_id: str | None = None,
574
- filters: Sequence[RapidataFilter] = [],
575
- settings: Sequence[RapidataSetting] = [],
576
- selections: Sequence[RapidataSelection] = [],
577
- private_notes: list[str] | None = None,
578
- ) -> RapidataOrder:
790
+ def create_timestamp_order(
791
+ self,
792
+ name: str,
793
+ instruction: str,
794
+ datapoints: list[str],
795
+ responses_per_datapoint: int = 10,
796
+ contexts: list[str] | None = None,
797
+ media_contexts: list[str] | None = None,
798
+ validation_set_id: str | None = None,
799
+ filters: Sequence[RapidataFilter] | None = None,
800
+ settings: Sequence[RapidataSetting] | None = None,
801
+ selections: Sequence[RapidataSelection] | None = None,
802
+ private_notes: list[str] | None = None,
803
+ ) -> RapidataOrder:
579
804
  """Create a timestamp order.
580
805
 
581
- Warning:
806
+ Warning:
582
807
  This order is currently not fully supported and may give unexpected results.
583
808
 
584
809
  With this order you can have people mark specific timestamps in a datapoint (video, audio).
@@ -600,31 +825,31 @@ class RapidataOrderManager:
600
825
  settings (Sequence[RapidataSetting], optional): The list of settings for the timestamp. Defaults to []. Decides how the tasks should be shown.
601
826
  selections (Sequence[RapidataSelection], optional): The list of selections for the timestamp. Defaults to []. Decides in what order the tasks should be shown.
602
827
  private_notes (list[str], optional): The list of private notes for the timestamp. Defaults to None.\n
603
- If provided has to be the same length as datapoints.\n
828
+ If provided has to be the same length as datapoints.\n
604
829
  This will NOT be shown to the labelers but will be included in the result purely for your own reference.
605
830
  """
606
831
 
607
- assets = [MediaAsset(path=path) for path in datapoints]
608
-
609
- for asset in tqdm(assets, desc="Downloading assets and checking duration", disable=RapidataOutputManager.silent_mode):
610
- if not asset.get_duration():
611
- raise ValueError("The datapoints for this order must have a duration. (e.g. video or audio)")
612
-
613
- return self._create_general_order(
614
- name=name,
615
- workflow=TimestampWorkflow(
616
- instruction=instruction
617
- ),
618
- assets=assets,
619
- responses_per_datapoint=responses_per_datapoint,
620
- contexts=contexts,
621
- media_contexts=media_contexts,
622
- validation_set_id=validation_set_id,
623
- filters=filters,
624
- selections=selections,
625
- settings=settings,
626
- private_notes=private_notes
627
- )
832
+ with tracer.start_as_current_span(
833
+ "RapidataOrderManager.create_timestamp_order"
834
+ ):
835
+ from rapidata.rapidata_client.workflow import TimestampWorkflow
836
+
837
+ datapoints_instances = DatapointsValidator.map_datapoints(
838
+ datapoints=datapoints,
839
+ contexts=contexts,
840
+ media_contexts=media_contexts,
841
+ private_notes=private_notes,
842
+ )
843
+ return self._create_general_order(
844
+ name=name,
845
+ workflow=TimestampWorkflow(instruction=instruction),
846
+ datapoints=datapoints_instances,
847
+ responses_per_datapoint=responses_per_datapoint,
848
+ validation_set_id=validation_set_id,
849
+ filters=filters,
850
+ selections=selections,
851
+ settings=settings,
852
+ )
628
853
 
629
854
  def get_order_by_id(self, order_id: str) -> RapidataOrder:
630
855
  """Get an order by ID.
@@ -635,13 +860,16 @@ class RapidataOrderManager:
635
860
  Returns:
636
861
  RapidataOrder: The Order instance.
637
862
  """
638
-
639
- order = self.__openapi_service.order_api.order_order_id_get(order_id)
863
+ with tracer.start_as_current_span("RapidataOrderManager.get_order_by_id"):
864
+ from rapidata.rapidata_client.order.rapidata_order import RapidataOrder
640
865
 
641
- return RapidataOrder(
642
- order_id=order_id,
643
- name=order.order_name,
644
- openapi_service=self.__openapi_service)
866
+ order = self.__openapi_service.order_api.order_order_id_get(order_id)
867
+
868
+ return RapidataOrder(
869
+ order_id=order_id,
870
+ name=order.order_name,
871
+ openapi_service=self.__openapi_service,
872
+ )
645
873
 
646
874
  def find_orders(self, name: str = "", amount: int = 10) -> list[RapidataOrder]:
647
875
  """Find your recent orders given criteria. If nothing is provided, it will return the most recent order.
@@ -653,11 +881,42 @@ class RapidataOrderManager:
653
881
  Returns:
654
882
  list[RapidataOrder]: A list of RapidataOrder instances.
655
883
  """
656
- order_page_result = self.__openapi_service.order_api.orders_get(QueryModel(
657
- page=PageInfo(index=1, size=amount),
658
- filter=RootFilter(filters=[Filter(field="OrderName", operator="Contains", value=name)]),
659
- sortCriteria=[SortCriterion(direction="Desc", propertyName="OrderDate")]
660
- ))
661
-
662
- orders = [self.get_order_by_id(order.id) for order in order_page_result.items]
663
- return orders
884
+ with tracer.start_as_current_span("RapidataOrderManager.find_orders"):
885
+ from rapidata.api_client.models.page_info import PageInfo
886
+ from rapidata.api_client.models.query_model import QueryModel
887
+ from rapidata.api_client.models.root_filter import RootFilter
888
+ from rapidata.api_client.models.filter import Filter
889
+ from rapidata.api_client.models.filter_operator import FilterOperator
890
+ from rapidata.api_client.models.sort_criterion import SortCriterion
891
+ from rapidata.api_client.models.sort_direction import SortDirection
892
+
893
+ order_page_result = self.__openapi_service.order_api.orders_get(
894
+ QueryModel(
895
+ page=PageInfo(index=1, size=amount),
896
+ filter=RootFilter(
897
+ filters=[
898
+ Filter(
899
+ field="OrderName",
900
+ operator=FilterOperator.CONTAINS,
901
+ value=name,
902
+ )
903
+ ]
904
+ ),
905
+ sortCriteria=[
906
+ SortCriterion(
907
+ direction=SortDirection.DESC, propertyName="OrderDate"
908
+ )
909
+ ],
910
+ )
911
+ )
912
+
913
+ orders = [
914
+ self.get_order_by_id(order.id) for order in order_page_result.items
915
+ ]
916
+ return orders
917
+
918
+ def __str__(self) -> str:
919
+ return "RapidataOrderManager"
920
+
921
+ def __repr__(self) -> str:
922
+ return self.__str__()