rapidata 2.27.2__py3-none-any.whl → 2.44.3__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.
Files changed (771) hide show
  1. rapidata/__init__.py +12 -9
  2. rapidata/api_client/__init__.py +83 -329
  3. rapidata/api_client/api/__init__.py +9 -2
  4. rapidata/api_client/api/asset_api.py +853 -0
  5. rapidata/api_client/api/audience_api.py +1133 -0
  6. rapidata/api_client/api/benchmark_api.py +3966 -0
  7. rapidata/api_client/api/campaign_api.py +232 -207
  8. rapidata/api_client/api/client_api.py +349 -71
  9. rapidata/api_client/api/coco_api.py +0 -571
  10. rapidata/api_client/api/compare_workflow_api.py +11 -10
  11. rapidata/api_client/api/customer_rapid_api.py +644 -72
  12. rapidata/api_client/api/datapoint_api.py +8 -797
  13. rapidata/api_client/api/dataset_api.py +229 -3452
  14. rapidata/api_client/api/evaluation_workflow_api.py +29 -82
  15. rapidata/api_client/api/feedback_api.py +11 -281
  16. rapidata/api_client/api/grouped_ranking_workflow_api.py +319 -0
  17. rapidata/api_client/api/identity_api.py +83 -1171
  18. rapidata/api_client/api/leaderboard_api.py +2550 -0
  19. rapidata/api_client/api/newsletter_api.py +20 -19
  20. rapidata/api_client/api/order_api.py +758 -5487
  21. rapidata/api_client/api/participant_api.py +2181 -0
  22. rapidata/api_client/api/pipeline_api.py +24 -1783
  23. rapidata/api_client/api/prompt_api.py +320 -0
  24. rapidata/api_client/api/rapidata_identity_api_api.py +5 -4
  25. rapidata/api_client/api/sample_api.py +300 -0
  26. rapidata/api_client/api/simple_workflow_api.py +11 -10
  27. rapidata/api_client/api/survey_api.py +304 -0
  28. rapidata/api_client/api/user_rapid_api.py +35 -31
  29. rapidata/api_client/api/validation_set_api.py +513 -3233
  30. rapidata/api_client/api/workflow_api.py +32 -825
  31. rapidata/api_client/api_client.py +2 -2
  32. rapidata/api_client/configuration.py +16 -29
  33. rapidata/api_client/exceptions.py +2 -2
  34. rapidata/api_client/models/__init__.py +65 -307
  35. rapidata/api_client/models/ab_test_selection_a_inner.py +27 -13
  36. rapidata/api_client/models/add_campaign_model.py +3 -3
  37. rapidata/api_client/models/add_user_response_result.py +10 -5
  38. rapidata/api_client/models/add_validation_rapid_model.py +55 -24
  39. rapidata/api_client/models/add_validation_rapid_model_asset.py +154 -0
  40. rapidata/api_client/models/add_validation_rapid_model_context_asset.py +160 -0
  41. rapidata/api_client/models/add_validation_rapid_model_metadata_inner.py +140 -0
  42. rapidata/api_client/models/add_validation_rapid_model_truth.py +7 -1
  43. rapidata/api_client/models/add_validation_rapid_new_model.py +137 -0
  44. rapidata/api_client/models/add_validation_rapid_new_model_asset.py +182 -0
  45. rapidata/api_client/models/add_validation_rapid_new_model_truth.py +286 -0
  46. rapidata/api_client/models/add_validation_text_rapid_model.py +1 -3
  47. rapidata/api_client/models/age_user_filter_model.py +2 -2
  48. rapidata/api_client/models/age_user_filter_model_age_group.py +41 -0
  49. rapidata/api_client/models/aggregated_orders_model.py +98 -0
  50. rapidata/api_client/models/aggregator_type.py +4 -2
  51. rapidata/api_client/models/and_filter.py +121 -0
  52. rapidata/api_client/models/and_filter_filters_inner.py +282 -0
  53. rapidata/api_client/models/and_user_filter_model.py +106 -0
  54. rapidata/api_client/models/and_user_filter_model_filters_inner.py +282 -0
  55. rapidata/api_client/models/are_rapids_active_result.py +2 -2
  56. rapidata/api_client/models/asset_metadata.py +11 -9
  57. rapidata/api_client/models/asset_type.py +40 -0
  58. rapidata/api_client/models/attach_category_rapid_blueprint.py +13 -3
  59. rapidata/api_client/models/attach_category_rapid_blueprint_category.py +89 -0
  60. rapidata/api_client/models/audience_status.py +38 -0
  61. rapidata/api_client/models/benchmark_query_result.py +98 -0
  62. rapidata/api_client/models/benchmark_query_result_paged_result.py +105 -0
  63. rapidata/api_client/models/boost_leaderboard_model.py +89 -0
  64. rapidata/api_client/models/boost_mode.py +37 -0
  65. rapidata/api_client/models/boost_query_result.py +97 -0
  66. rapidata/api_client/models/boost_query_result_boost_mode.py +37 -0
  67. rapidata/api_client/models/boost_query_result_boost_status.py +39 -0
  68. rapidata/api_client/models/boost_status.py +39 -0
  69. rapidata/api_client/models/boosting_profile.py +89 -0
  70. rapidata/api_client/models/box_shape.py +4 -33
  71. rapidata/api_client/models/campaign_filter.py +98 -0
  72. rapidata/api_client/models/campaign_query_result.py +15 -13
  73. rapidata/api_client/models/campaign_status.py +2 -2
  74. rapidata/api_client/models/change_boost_model.py +89 -0
  75. rapidata/api_client/models/classification_metadata.py +12 -1
  76. rapidata/api_client/models/classify_payload.py +14 -15
  77. rapidata/api_client/models/classify_payload_category.py +89 -0
  78. rapidata/api_client/models/client_model.py +181 -0
  79. rapidata/api_client/models/clients_query_result.py +5 -5
  80. rapidata/api_client/models/clone_order_model.py +6 -8
  81. rapidata/api_client/models/clone_order_result.py +9 -4
  82. rapidata/api_client/models/compare_rapid_blueprint.py +5 -3
  83. rapidata/api_client/models/compare_rapid_blueprint1.py +96 -0
  84. rapidata/api_client/models/compare_workflow_config.py +34 -23
  85. rapidata/api_client/models/compare_workflow_config_context_asset.py +174 -0
  86. rapidata/api_client/models/compare_workflow_config_metadata_value.py +57 -15
  87. rapidata/api_client/models/compare_workflow_config_model.py +15 -5
  88. rapidata/api_client/models/compare_workflow_model.py +34 -6
  89. rapidata/api_client/models/compare_workflow_model1.py +20 -9
  90. rapidata/api_client/models/compare_workflow_model_context_asset.py +160 -0
  91. rapidata/api_client/models/compare_workflow_model_metadata_inner.py +154 -0
  92. rapidata/api_client/models/compare_workflow_model_pair_maker_config.py +1 -1
  93. rapidata/api_client/models/comparison_operator.py +2 -2
  94. rapidata/api_client/models/conditional_validation_selection.py +8 -11
  95. rapidata/api_client/models/conditional_validation_selection_validation_chance.py +103 -0
  96. rapidata/api_client/models/confidence_interval.py +89 -0
  97. rapidata/api_client/models/count_metadata.py +12 -1
  98. rapidata/api_client/models/country_filter.py +98 -0
  99. rapidata/api_client/models/create_audience_request.py +99 -0
  100. rapidata/api_client/models/create_audience_result.py +87 -0
  101. rapidata/api_client/models/create_benchmark_model.py +87 -0
  102. rapidata/api_client/models/create_benchmark_participant_model.py +87 -0
  103. rapidata/api_client/models/create_benchmark_participant_result.py +89 -0
  104. rapidata/api_client/models/create_benchmark_prompt_result.py +87 -0
  105. rapidata/api_client/models/create_benchmark_result.py +87 -0
  106. rapidata/api_client/models/create_bridge_token_result.py +2 -2
  107. rapidata/api_client/models/create_client_model.py +6 -13
  108. rapidata/api_client/models/create_complex_order_model.py +9 -9
  109. rapidata/api_client/models/create_complex_order_result.py +6 -4
  110. rapidata/api_client/models/create_customer_client_result.py +89 -0
  111. rapidata/api_client/models/create_datapoint_from_files_model.py +3 -3
  112. rapidata/api_client/models/create_datapoint_from_text_sources_model.py +3 -3
  113. rapidata/api_client/models/create_datapoint_from_urls_model.py +3 -3
  114. rapidata/api_client/models/create_datapoint_model.py +134 -0
  115. rapidata/api_client/models/create_datapoint_model_asset.py +154 -0
  116. rapidata/api_client/models/create_datapoint_model_context_asset.py +160 -0
  117. rapidata/api_client/models/create_datapoint_model_metadata_inner.py +154 -0
  118. rapidata/api_client/models/create_datapoint_result.py +6 -18
  119. rapidata/api_client/models/create_demographic_rapid_model.py +45 -7
  120. rapidata/api_client/models/create_demographic_rapid_model_asset.py +160 -0
  121. rapidata/api_client/models/create_demographic_rapid_model_context_asset.py +160 -0
  122. rapidata/api_client/models/create_demographic_rapid_model_new.py +119 -0
  123. rapidata/api_client/models/create_empty_validation_set_result.py +2 -2
  124. rapidata/api_client/models/create_leaderboard_model.py +140 -0
  125. rapidata/api_client/models/create_leaderboard_participant_model.py +87 -0
  126. rapidata/api_client/models/create_leaderboard_participant_result.py +89 -0
  127. rapidata/api_client/models/create_leaderboard_result.py +99 -0
  128. rapidata/api_client/models/create_order_model.py +30 -101
  129. rapidata/api_client/models/create_order_model_referee.py +12 -12
  130. rapidata/api_client/models/create_order_model_workflow.py +35 -21
  131. rapidata/api_client/models/create_order_result.py +6 -4
  132. rapidata/api_client/models/create_rapid_result.py +2 -2
  133. rapidata/api_client/models/create_sample_model.py +93 -0
  134. rapidata/api_client/models/create_sample_model_asset.py +154 -0
  135. rapidata/api_client/models/create_sample_model_obsolete.py +87 -0
  136. rapidata/api_client/models/create_simple_pipeline_model_pipeline_steps_inner.py +8 -22
  137. rapidata/api_client/models/create_unsupported_order_model.py +6 -6
  138. rapidata/api_client/models/create_validation_set_model.py +5 -5
  139. rapidata/api_client/models/datapoint_model.py +3 -3
  140. rapidata/api_client/models/datapoint_model_paged_result.py +105 -0
  141. rapidata/api_client/models/datapoint_state.py +2 -2
  142. rapidata/api_client/models/demographic_filter.py +100 -0
  143. rapidata/api_client/models/dynamic_client_registration_request.py +160 -0
  144. rapidata/api_client/models/early_stopping_referee_model.py +3 -3
  145. rapidata/api_client/models/effort_capped_selection.py +106 -0
  146. rapidata/api_client/models/elo_config.py +2 -2
  147. rapidata/api_client/models/elo_config_model.py +6 -6
  148. rapidata/api_client/models/entity_tag_header_value.py +93 -0
  149. rapidata/api_client/models/evaluation_workflow_config.py +13 -3
  150. rapidata/api_client/models/evaluation_workflow_model.py +16 -6
  151. rapidata/api_client/models/existing_asset_input.py +120 -0
  152. rapidata/api_client/models/existing_asset_input_metadata_value.py +126 -0
  153. rapidata/api_client/models/feature_flag.py +2 -2
  154. rapidata/api_client/models/feature_flag_model.py +6 -6
  155. rapidata/api_client/models/feedback_model.py +7 -7
  156. rapidata/api_client/models/file_asset.py +3 -5
  157. rapidata/api_client/models/file_asset_input.py +104 -0
  158. rapidata/api_client/models/file_asset_input1.py +104 -0
  159. rapidata/api_client/models/file_asset_input1_file.py +168 -0
  160. rapidata/api_client/models/file_asset_input2.py +104 -0
  161. rapidata/api_client/models/file_asset_input3.py +104 -0
  162. rapidata/api_client/models/file_asset_input_file.py +168 -0
  163. rapidata/api_client/models/file_asset_metadata_value.py +252 -0
  164. rapidata/api_client/models/file_asset_model_metadata_value.py +43 -71
  165. rapidata/api_client/models/file_stream_result.py +122 -0
  166. rapidata/api_client/models/file_type.py +39 -0
  167. rapidata/api_client/models/file_type_metadata.py +110 -0
  168. rapidata/api_client/models/file_type_metadata_model.py +97 -0
  169. rapidata/api_client/models/filter.py +7 -25
  170. rapidata/api_client/models/filter_operator.py +3 -2
  171. rapidata/api_client/models/fork_benchmark_result.py +87 -0
  172. rapidata/api_client/models/form_file_wrapper.py +135 -0
  173. rapidata/api_client/models/free_text_payload.py +10 -3
  174. rapidata/api_client/models/free_text_rapid_blueprint.py +10 -3
  175. rapidata/api_client/models/gender_user_filter_model.py +2 -2
  176. rapidata/api_client/models/gender_user_filter_model_gender.py +38 -0
  177. rapidata/api_client/models/get_asset_metadata_result.py +100 -0
  178. rapidata/api_client/models/get_audience_by_id_result.py +111 -0
  179. rapidata/api_client/models/get_available_validation_sets_result.py +2 -2
  180. rapidata/api_client/models/get_benchmark_by_id_query.py +96 -0
  181. rapidata/api_client/models/get_benchmark_by_id_query_result.py +94 -0
  182. rapidata/api_client/models/get_benchmark_by_id_query_result_paged_result.py +105 -0
  183. rapidata/api_client/models/get_benchmark_by_id_result.py +96 -0
  184. rapidata/api_client/models/get_boost_result.py +97 -0
  185. rapidata/api_client/models/get_boost_result_boost_mode.py +37 -0
  186. rapidata/api_client/models/get_boost_result_boost_status.py +39 -0
  187. rapidata/api_client/models/get_compare_ab_summary_result.py +5 -5
  188. rapidata/api_client/models/get_compare_workflow_results_model.py +7 -7
  189. rapidata/api_client/models/get_compare_workflow_results_result.py +5 -5
  190. rapidata/api_client/models/get_datapoint_by_id_result.py +10 -21
  191. rapidata/api_client/models/get_datapoint_by_id_result_asset.py +170 -0
  192. rapidata/api_client/models/get_dataset_by_id_result.py +2 -2
  193. rapidata/api_client/models/get_dataset_progress_result.py +2 -2
  194. rapidata/api_client/models/get_evaluation_workflow_results_model.py +119 -0
  195. rapidata/api_client/models/get_failed_datapoints_result.py +5 -5
  196. rapidata/api_client/models/get_failed_datapoints_result_datapoint.py +100 -0
  197. rapidata/api_client/models/get_file_metadata_result.py +100 -0
  198. rapidata/api_client/models/get_grouped_ranking_workflow_results_model.py +106 -0
  199. rapidata/api_client/models/get_grouped_ranking_workflow_results_result.py +97 -0
  200. rapidata/api_client/models/get_grouped_ranking_workflow_results_result_paged_result.py +105 -0
  201. rapidata/api_client/models/get_leaderboard_by_id_result.py +135 -0
  202. rapidata/api_client/models/get_order_by_id_result.py +12 -5
  203. rapidata/api_client/models/get_participant_by_id_result.py +91 -0
  204. rapidata/api_client/models/get_pipeline_by_id_result.py +5 -5
  205. rapidata/api_client/models/get_public_orders_result.py +2 -2
  206. rapidata/api_client/models/get_public_responses_result.py +95 -0
  207. rapidata/api_client/models/get_public_responses_result_response.py +112 -0
  208. rapidata/api_client/models/get_rapid_responses_result.py +6 -12
  209. rapidata/api_client/models/get_recommended_validation_set_result.py +95 -0
  210. rapidata/api_client/models/get_responses_for_rapid_result.py +106 -0
  211. rapidata/api_client/models/get_responses_for_rapid_result_response.py +103 -0
  212. rapidata/api_client/models/get_responses_for_rapid_result_response_result.py +266 -0
  213. rapidata/api_client/models/get_responses_result.py +5 -5
  214. rapidata/api_client/models/get_responses_result_response.py +103 -0
  215. rapidata/api_client/models/get_sample_by_id_result.py +125 -0
  216. rapidata/api_client/models/get_simple_workflow_results_model.py +20 -15
  217. rapidata/api_client/models/get_standing_by_id_result.py +96 -0
  218. rapidata/api_client/models/get_validation_rapids_result.py +32 -41
  219. rapidata/api_client/models/get_validation_set_by_id_result.py +10 -4
  220. rapidata/api_client/models/get_workflow_by_id_result.py +5 -5
  221. rapidata/api_client/models/get_workflow_by_id_result_workflow.py +23 -9
  222. rapidata/api_client/models/get_workflow_progress_result.py +5 -11
  223. rapidata/api_client/models/get_workflow_results_result.py +34 -23
  224. rapidata/api_client/models/get_workflow_results_result_response.py +103 -0
  225. rapidata/api_client/models/google_one_tap_login_model.py +4 -4
  226. rapidata/api_client/models/grouped_ranking_workflow_config.py +155 -0
  227. rapidata/api_client/models/grouped_ranking_workflow_config_context_assets_value.py +170 -0
  228. rapidata/api_client/models/grouped_ranking_workflow_model.py +147 -0
  229. rapidata/api_client/models/grouped_ranking_workflow_model1.py +121 -0
  230. rapidata/api_client/models/i_artifact_model.py +182 -0
  231. rapidata/api_client/models/i_artifact_model_campaign_artifact_model.py +98 -0
  232. rapidata/api_client/models/i_artifact_model_dataset_artifact_model.py +98 -0
  233. rapidata/api_client/models/i_artifact_model_file_artifact_model.py +98 -0
  234. rapidata/api_client/models/i_artifact_model_workflow_artifact_model.py +98 -0
  235. rapidata/api_client/models/i_artifact_model_workflow_config_artifact_model.py +102 -0
  236. rapidata/api_client/models/i_asset.py +170 -0
  237. rapidata/api_client/models/i_asset_file_asset.py +111 -0
  238. rapidata/api_client/models/i_asset_input.py +156 -0
  239. rapidata/api_client/models/i_asset_input_existing_asset_input.py +118 -0
  240. rapidata/api_client/models/i_asset_input_multi_asset_input.py +128 -0
  241. rapidata/api_client/models/i_asset_input_text_asset_input.py +118 -0
  242. rapidata/api_client/models/i_asset_model.py +170 -0
  243. rapidata/api_client/models/i_asset_model_file_asset_model.py +113 -0
  244. rapidata/api_client/models/i_asset_model_multi_asset_model.py +123 -0
  245. rapidata/api_client/models/i_asset_model_null_asset_model.py +111 -0
  246. rapidata/api_client/models/i_asset_model_text_asset_model.py +113 -0
  247. rapidata/api_client/models/i_asset_multi_asset.py +121 -0
  248. rapidata/api_client/models/i_asset_null_asset.py +109 -0
  249. rapidata/api_client/models/i_asset_text_asset.py +111 -0
  250. rapidata/api_client/models/i_campaign_filter.py +282 -0
  251. rapidata/api_client/models/i_campaign_filter_and_filter.py +117 -0
  252. rapidata/api_client/models/i_campaign_filter_campaign_filter.py +98 -0
  253. rapidata/api_client/models/i_campaign_filter_country_filter.py +98 -0
  254. rapidata/api_client/models/i_campaign_filter_demographic_filter.py +100 -0
  255. rapidata/api_client/models/i_campaign_filter_language_filter.py +98 -0
  256. rapidata/api_client/models/i_campaign_filter_new_user_filter.py +96 -0
  257. rapidata/api_client/models/i_campaign_filter_not_filter.py +113 -0
  258. rapidata/api_client/models/i_campaign_filter_or_filter.py +117 -0
  259. rapidata/api_client/models/i_campaign_filter_response_count_filter.py +103 -0
  260. rapidata/api_client/models/i_campaign_filter_user_action_restriction_filter.py +106 -0
  261. rapidata/api_client/models/i_campaign_filter_user_score_filter.py +102 -0
  262. rapidata/api_client/models/i_campaign_filter_user_state_filter.py +106 -0
  263. rapidata/api_client/models/i_dataset_metadata_input.py +154 -0
  264. rapidata/api_client/models/i_dataset_metadata_input_prompt_asset_metadata_input.py +100 -0
  265. rapidata/api_client/models/i_dataset_metadata_input_prompt_metadata_input.py +96 -0
  266. rapidata/api_client/models/i_dataset_metadata_input_transcription_metadata_input.py +96 -0
  267. rapidata/api_client/models/i_dataset_model.py +126 -0
  268. rapidata/api_client/models/i_dataset_model_clone_dataset_model.py +98 -0
  269. rapidata/api_client/models/i_metadata.py +252 -0
  270. rapidata/api_client/models/i_metadata_classification_metadata.py +109 -0
  271. rapidata/api_client/models/i_metadata_count_metadata.py +109 -0
  272. rapidata/api_client/models/i_metadata_file_type_metadata.py +110 -0
  273. rapidata/api_client/models/i_metadata_image_dimension_metadata.py +111 -0
  274. rapidata/api_client/models/i_metadata_input.py +126 -0
  275. rapidata/api_client/models/i_metadata_input_text_metadata_input.py +111 -0
  276. rapidata/api_client/models/i_metadata_location_metadata.py +111 -0
  277. rapidata/api_client/models/i_metadata_model.py +252 -0
  278. rapidata/api_client/models/i_metadata_model_classification_metadata_model.py +96 -0
  279. rapidata/api_client/models/i_metadata_model_count_metadata_model.py +96 -0
  280. rapidata/api_client/models/i_metadata_model_file_type_metadata_model.py +97 -0
  281. rapidata/api_client/models/i_metadata_model_image_dimension_metadata_model.py +98 -0
  282. rapidata/api_client/models/i_metadata_model_location_metadata_model.py +98 -0
  283. rapidata/api_client/models/i_metadata_model_original_filename_metadata_model.py +96 -0
  284. rapidata/api_client/models/i_metadata_model_source_url_metadata_model.py +96 -0
  285. rapidata/api_client/models/i_metadata_model_streams_metadata_model.py +100 -0
  286. rapidata/api_client/models/i_metadata_model_text_metadata_model.py +101 -0
  287. rapidata/api_client/models/i_metadata_model_video_duration_metadata_model.py +97 -0
  288. rapidata/api_client/models/i_metadata_original_filename_metadata.py +109 -0
  289. rapidata/api_client/models/i_metadata_source_url_metadata.py +109 -0
  290. rapidata/api_client/models/i_metadata_streams_metadata.py +113 -0
  291. rapidata/api_client/models/i_metadata_text_metadata.py +114 -0
  292. rapidata/api_client/models/i_metadata_video_duration_metadata.py +110 -0
  293. rapidata/api_client/models/i_order_workflow_model.py +168 -0
  294. rapidata/api_client/models/i_order_workflow_model_compare_workflow_model.py +146 -0
  295. rapidata/api_client/models/i_order_workflow_model_evaluation_workflow_model.py +108 -0
  296. rapidata/api_client/models/i_order_workflow_model_grouped_ranking_workflow_model.py +147 -0
  297. rapidata/api_client/models/i_order_workflow_model_simple_workflow_model.py +110 -0
  298. rapidata/api_client/models/i_pair_maker_config.py +126 -0
  299. rapidata/api_client/models/i_pair_maker_config_model.py +126 -0
  300. rapidata/api_client/models/i_pair_maker_config_model_online_pair_maker_config_model.py +98 -0
  301. rapidata/api_client/models/i_pair_maker_config_online_pair_maker_config.py +98 -0
  302. rapidata/api_client/models/i_pair_maker_information.py +126 -0
  303. rapidata/api_client/models/i_pair_maker_information_online_pair_maker_information.py +100 -0
  304. rapidata/api_client/models/i_pipeline_artifact_model.py +126 -0
  305. rapidata/api_client/models/i_pipeline_artifact_model_create_dataset_artifact_model.py +102 -0
  306. rapidata/api_client/models/i_pipeline_model.py +126 -0
  307. rapidata/api_client/models/i_pipeline_model_create_simple_pipeline_model.py +116 -0
  308. rapidata/api_client/models/i_pipeline_step_model.py +168 -0
  309. rapidata/api_client/models/i_pipeline_step_model_dataset_evaluation_step_model.py +102 -0
  310. rapidata/api_client/models/i_pipeline_step_model_send_completion_mail_step_model.py +98 -0
  311. rapidata/api_client/models/i_pipeline_step_model_workflow_aggregation_step_model.py +103 -0
  312. rapidata/api_client/models/i_pipeline_step_model_workflow_labeling_step_model.py +96 -0
  313. rapidata/api_client/models/i_rapid_blueprint.py +252 -0
  314. rapidata/api_client/models/i_rapid_blueprint_attach_category_rapid_blueprint.py +108 -0
  315. rapidata/api_client/models/i_rapid_blueprint_bounding_box_rapid_blueprint.py +96 -0
  316. rapidata/api_client/models/i_rapid_blueprint_compare_rapid_blueprint.py +98 -0
  317. rapidata/api_client/models/i_rapid_blueprint_free_text_rapid_blueprint.py +103 -0
  318. rapidata/api_client/models/i_rapid_blueprint_line_rapid_blueprint.py +96 -0
  319. rapidata/api_client/models/i_rapid_blueprint_locate_rapid_blueprint.py +96 -0
  320. rapidata/api_client/models/i_rapid_blueprint_named_entity_rapid_blueprint.py +98 -0
  321. rapidata/api_client/models/i_rapid_blueprint_polygon_rapid_blueprint.py +96 -0
  322. rapidata/api_client/models/i_rapid_blueprint_scrub_rapid_blueprint.py +96 -0
  323. rapidata/api_client/models/i_rapid_blueprint_transcription_rapid_blueprint.py +96 -0
  324. rapidata/api_client/models/i_rapid_payload.py +252 -0
  325. rapidata/api_client/models/i_rapid_payload_bounding_box_payload.py +96 -0
  326. rapidata/api_client/models/i_rapid_payload_classify_payload.py +106 -0
  327. rapidata/api_client/models/i_rapid_payload_compare_payload.py +96 -0
  328. rapidata/api_client/models/i_rapid_payload_free_text_payload.py +103 -0
  329. rapidata/api_client/models/i_rapid_payload_line_payload.py +96 -0
  330. rapidata/api_client/models/i_rapid_payload_locate_payload.py +96 -0
  331. rapidata/api_client/models/i_rapid_payload_named_entity_payload.py +98 -0
  332. rapidata/api_client/models/i_rapid_payload_polygon_payload.py +96 -0
  333. rapidata/api_client/models/i_rapid_payload_scrub_payload.py +96 -0
  334. rapidata/api_client/models/i_rapid_payload_transcription_payload.py +106 -0
  335. rapidata/api_client/models/i_rapid_result.py +266 -0
  336. rapidata/api_client/models/i_rapid_result_attach_category_result.py +98 -0
  337. rapidata/api_client/models/i_rapid_result_bounding_box_result.py +106 -0
  338. rapidata/api_client/models/i_rapid_result_compare_result.py +98 -0
  339. rapidata/api_client/models/i_rapid_result_free_text_result.py +98 -0
  340. rapidata/api_client/models/i_rapid_result_line_result.py +106 -0
  341. rapidata/api_client/models/i_rapid_result_locate_result.py +106 -0
  342. rapidata/api_client/models/i_rapid_result_named_entity_result.py +106 -0
  343. rapidata/api_client/models/i_rapid_result_polygon_result.py +106 -0
  344. rapidata/api_client/models/i_rapid_result_scrub_result.py +98 -0
  345. rapidata/api_client/models/i_rapid_result_skip_result.py +96 -0
  346. rapidata/api_client/models/i_rapid_result_transcription_result.py +106 -0
  347. rapidata/api_client/models/i_referee_config.py +154 -0
  348. rapidata/api_client/models/i_referee_config_naive_referee_config.py +96 -0
  349. rapidata/api_client/models/i_referee_config_never_ending_referee_config.py +94 -0
  350. rapidata/api_client/models/i_referee_config_probabilistic_attach_category_referee_config.py +98 -0
  351. rapidata/api_client/models/i_referee_info.py +154 -0
  352. rapidata/api_client/models/i_referee_info_naive_referee_info.py +96 -0
  353. rapidata/api_client/models/i_referee_info_never_ending_referee_info.py +94 -0
  354. rapidata/api_client/models/i_referee_info_probabilistic_attach_category_referee_info.py +98 -0
  355. rapidata/api_client/models/i_referee_model.py +140 -0
  356. rapidata/api_client/models/i_referee_model_early_stopping_referee_model.py +98 -0
  357. rapidata/api_client/models/i_referee_model_naive_referee_model.py +96 -0
  358. rapidata/api_client/models/i_selection.py +240 -0
  359. rapidata/api_client/models/i_selection_ab_test_selection.py +122 -0
  360. rapidata/api_client/models/i_selection_capped_selection.py +108 -0
  361. rapidata/api_client/models/i_selection_conditional_validation_selection.py +110 -0
  362. rapidata/api_client/models/i_selection_demographic_selection.py +98 -0
  363. rapidata/api_client/models/i_selection_effort_capped_selection.py +101 -0
  364. rapidata/api_client/models/i_selection_labeling_selection.py +103 -0
  365. rapidata/api_client/models/i_selection_shuffling_selection.py +106 -0
  366. rapidata/api_client/models/i_selection_static_selection.py +96 -0
  367. rapidata/api_client/models/i_selection_validation_selection.py +98 -0
  368. rapidata/api_client/models/i_user_filter_model.py +282 -0
  369. rapidata/api_client/models/i_user_filter_model_age_user_filter_model.py +104 -0
  370. rapidata/api_client/models/i_user_filter_model_and_user_filter_model.py +106 -0
  371. rapidata/api_client/models/i_user_filter_model_campaign_user_filter_model.py +96 -0
  372. rapidata/api_client/models/i_user_filter_model_country_user_filter_model.py +96 -0
  373. rapidata/api_client/models/i_user_filter_model_custom_user_filter_model.py +98 -0
  374. rapidata/api_client/models/i_user_filter_model_gender_user_filter_model.py +104 -0
  375. rapidata/api_client/models/i_user_filter_model_language_user_filter_model.py +96 -0
  376. rapidata/api_client/models/i_user_filter_model_new_user_filter_model.py +94 -0
  377. rapidata/api_client/models/i_user_filter_model_not_user_filter_model.py +102 -0
  378. rapidata/api_client/models/i_user_filter_model_or_user_filter_model.py +106 -0
  379. rapidata/api_client/models/i_user_filter_model_response_count_user_filter_model.py +101 -0
  380. rapidata/api_client/models/i_user_filter_model_user_score_user_filter_model.py +105 -0
  381. rapidata/api_client/models/i_validation_metadata_input.py +140 -0
  382. rapidata/api_client/models/i_validation_metadata_input_prompt_asset_metadata_input.py +100 -0
  383. rapidata/api_client/models/i_validation_metadata_input_prompt_metadata_input.py +96 -0
  384. rapidata/api_client/models/i_validation_truth.py +280 -0
  385. rapidata/api_client/models/i_validation_truth_attach_category_truth.py +96 -0
  386. rapidata/api_client/models/i_validation_truth_bounding_box_truth.py +102 -0
  387. rapidata/api_client/models/i_validation_truth_compare_truth.py +96 -0
  388. rapidata/api_client/models/i_validation_truth_empty_validation_truth.py +94 -0
  389. rapidata/api_client/models/i_validation_truth_line_truth.py +94 -0
  390. rapidata/api_client/models/i_validation_truth_locate_box_truth.py +104 -0
  391. rapidata/api_client/models/i_validation_truth_multi_compare_truth.py +96 -0
  392. rapidata/api_client/models/i_validation_truth_named_entity_truth.py +104 -0
  393. rapidata/api_client/models/i_validation_truth_polygon_truth.py +94 -0
  394. rapidata/api_client/models/i_validation_truth_scrub_truth.py +104 -0
  395. rapidata/api_client/models/i_validation_truth_skip_truth.py +94 -0
  396. rapidata/api_client/models/i_validation_truth_transcription_truth.py +115 -0
  397. rapidata/api_client/models/i_workflow_config.py +168 -0
  398. rapidata/api_client/models/i_workflow_config_compare_workflow_config.py +142 -0
  399. rapidata/api_client/models/i_workflow_config_evaluation_workflow_config.py +114 -0
  400. rapidata/api_client/models/i_workflow_config_grouped_ranking_workflow_config.py +155 -0
  401. rapidata/api_client/models/i_workflow_config_simple_workflow_config.py +116 -0
  402. rapidata/api_client/models/i_workflow_model.py +168 -0
  403. rapidata/api_client/models/i_workflow_model_compare_workflow_model.py +145 -0
  404. rapidata/api_client/models/i_workflow_model_evaluation_workflow_model.py +115 -0
  405. rapidata/api_client/models/i_workflow_model_grouped_ranking_workflow_model.py +121 -0
  406. rapidata/api_client/models/i_workflow_model_simple_workflow_model.py +119 -0
  407. rapidata/api_client/models/image_dimension_metadata.py +12 -1
  408. rapidata/api_client/models/inquire_file_metadata_result.py +100 -0
  409. rapidata/api_client/models/inspect_report_result.py +2 -2
  410. rapidata/api_client/models/json_web_key.py +224 -0
  411. rapidata/api_client/models/json_web_key_set.py +95 -0
  412. rapidata/api_client/models/labeling_selection.py +11 -13
  413. rapidata/api_client/models/language_filter.py +98 -0
  414. rapidata/api_client/models/leaderboard_query_result.py +135 -0
  415. rapidata/api_client/models/leaderboard_query_result_paged_result.py +105 -0
  416. rapidata/api_client/models/leaderboards_query_result.py +135 -0
  417. rapidata/api_client/models/line_result.py +3 -3
  418. rapidata/api_client/models/line_result_line.py +97 -0
  419. rapidata/api_client/models/line_result_line_point.py +89 -0
  420. rapidata/api_client/models/local_file_wrapper.py +120 -0
  421. rapidata/api_client/models/locate_coordinate.py +4 -13
  422. rapidata/api_client/models/location_metadata.py +12 -1
  423. rapidata/api_client/models/logic_operator.py +2 -2
  424. rapidata/api_client/models/metadata_i_order_metadata_input.py +154 -0
  425. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_asset_metadata_input.py +100 -0
  426. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_prompt_metadata_input.py +96 -0
  427. rapidata/api_client/models/metadata_i_order_metadata_input_metadata_transcription_metadata_input.py +96 -0
  428. rapidata/api_client/models/metadata_prompt_asset_metadata_input.py +100 -0
  429. rapidata/api_client/models/metadata_prompt_metadata_input.py +96 -0
  430. rapidata/api_client/models/metadata_transcription_metadata_input.py +96 -0
  431. rapidata/api_client/models/multi_asset.py +6 -6
  432. rapidata/api_client/models/multi_asset_assets_inner.py +170 -0
  433. rapidata/api_client/models/multi_asset_input.py +130 -0
  434. rapidata/api_client/models/multi_asset_input1.py +110 -0
  435. rapidata/api_client/models/multi_asset_input1_assets_inner.py +198 -0
  436. rapidata/api_client/models/multi_asset_input2.py +110 -0
  437. rapidata/api_client/models/multi_asset_input3.py +110 -0
  438. rapidata/api_client/models/multi_asset_input3_assets_inner.py +198 -0
  439. rapidata/api_client/models/multi_asset_input_assets_inner.py +156 -0
  440. rapidata/api_client/models/multi_asset_model.py +3 -3
  441. rapidata/api_client/models/naive_referee_model.py +2 -2
  442. rapidata/api_client/models/named_classification.py +4 -13
  443. rapidata/api_client/models/new_user_filter.py +96 -0
  444. rapidata/api_client/models/newsletter_model.py +6 -6
  445. rapidata/api_client/models/not_available_yet_result.py +4 -13
  446. rapidata/api_client/models/not_filter.py +117 -0
  447. rapidata/api_client/models/not_user_filter_model.py +3 -3
  448. rapidata/api_client/models/null_asset.py +3 -5
  449. rapidata/api_client/models/online_pair_maker_config_model.py +3 -3
  450. rapidata/api_client/models/or_filter.py +121 -0
  451. rapidata/api_client/models/or_user_filter_model.py +3 -3
  452. rapidata/api_client/models/order_model.py +15 -14
  453. rapidata/api_client/models/order_state.py +2 -2
  454. rapidata/api_client/models/original_filename_metadata.py +12 -1
  455. rapidata/api_client/models/page_info.py +2 -7
  456. rapidata/api_client/models/paged_result_aggregated_orders_model.py +105 -0
  457. rapidata/api_client/models/paged_result_benchmark_query_result.py +105 -0
  458. rapidata/api_client/models/paged_result_campaign_query_result.py +105 -0
  459. rapidata/api_client/models/paged_result_clients_query_result.py +105 -0
  460. rapidata/api_client/models/paged_result_datapoint_model.py +105 -0
  461. rapidata/api_client/models/paged_result_get_compare_workflow_results_result.py +105 -0
  462. rapidata/api_client/models/paged_result_get_grouped_ranking_workflow_results_result.py +105 -0
  463. rapidata/api_client/models/paged_result_get_validation_rapids_result.py +105 -0
  464. rapidata/api_client/models/paged_result_get_workflow_results_result.py +105 -0
  465. rapidata/api_client/models/paged_result_i_workflow_model.py +105 -0
  466. rapidata/api_client/models/paged_result_leaderboard_query_result.py +105 -0
  467. rapidata/api_client/models/paged_result_leaderboards_query_result.py +105 -0
  468. rapidata/api_client/models/paged_result_of_aggregated_orders_model.py +103 -0
  469. rapidata/api_client/models/paged_result_of_benchmark_query_result.py +103 -0
  470. rapidata/api_client/models/paged_result_of_campaign_query_result.py +103 -0
  471. rapidata/api_client/models/paged_result_of_clients_query_result.py +103 -0
  472. rapidata/api_client/models/paged_result_of_get_compare_workflow_results_result.py +103 -0
  473. rapidata/api_client/models/paged_result_of_get_grouped_ranking_workflow_results_result.py +103 -0
  474. rapidata/api_client/models/paged_result_of_get_validation_rapids_result.py +103 -0
  475. rapidata/api_client/models/paged_result_of_get_workflow_results_result.py +103 -0
  476. rapidata/api_client/models/paged_result_of_i_workflow_model.py +103 -0
  477. rapidata/api_client/models/paged_result_of_leaderboards_query_result.py +103 -0
  478. rapidata/api_client/models/paged_result_of_order_model.py +103 -0
  479. rapidata/api_client/models/paged_result_of_participant_by_benchmark.py +103 -0
  480. rapidata/api_client/models/paged_result_of_prompt_by_benchmark_result.py +103 -0
  481. rapidata/api_client/models/paged_result_of_query_audiences_result.py +103 -0
  482. rapidata/api_client/models/paged_result_of_query_datapoints_by_dataset_id_result.py +103 -0
  483. rapidata/api_client/models/paged_result_of_query_validation_rapid_eligibility_result.py +103 -0
  484. rapidata/api_client/models/paged_result_of_rapid_model.py +103 -0
  485. rapidata/api_client/models/paged_result_of_runs_by_leaderboard_result.py +103 -0
  486. rapidata/api_client/models/paged_result_of_sample_by_identifier.py +103 -0
  487. rapidata/api_client/models/paged_result_of_sample_by_participant.py +103 -0
  488. rapidata/api_client/models/paged_result_of_standing_by_leaderboard.py +103 -0
  489. rapidata/api_client/models/paged_result_of_validation_set_model.py +103 -0
  490. rapidata/api_client/models/paged_result_order_model.py +105 -0
  491. rapidata/api_client/models/paged_result_participant_by_benchmark.py +105 -0
  492. rapidata/api_client/models/paged_result_potential_validation_rapid.py +105 -0
  493. rapidata/api_client/models/paged_result_prompt_by_benchmark_result.py +105 -0
  494. rapidata/api_client/models/paged_result_query_audiences_result.py +105 -0
  495. rapidata/api_client/models/paged_result_query_datapoints_by_dataset_id_result.py +105 -0
  496. rapidata/api_client/models/paged_result_query_validation_rapid_eligibility_result.py +105 -0
  497. rapidata/api_client/models/paged_result_rapid_model.py +105 -0
  498. rapidata/api_client/models/paged_result_runs_by_leaderboard_result.py +105 -0
  499. rapidata/api_client/models/paged_result_sample_by_identifier.py +105 -0
  500. rapidata/api_client/models/paged_result_sample_by_participant.py +105 -0
  501. rapidata/api_client/models/paged_result_standing_by_leaderboard.py +105 -0
  502. rapidata/api_client/models/paged_result_validation_set_model.py +105 -0
  503. rapidata/api_client/models/participant_by_benchmark.py +94 -0
  504. rapidata/api_client/models/participant_by_benchmark_paged_result.py +105 -0
  505. rapidata/api_client/models/participant_by_leaderboard.py +113 -0
  506. rapidata/api_client/models/participant_by_leaderboard_paged_result.py +105 -0
  507. rapidata/api_client/models/participant_status.py +38 -0
  508. rapidata/api_client/models/pipeline_id_workflow_config_put_request.py +140 -0
  509. rapidata/api_client/models/polygon_result.py +3 -3
  510. rapidata/api_client/models/polygon_result_coordinate.py +89 -0
  511. rapidata/api_client/models/polygon_result_shape.py +95 -0
  512. rapidata/api_client/models/potential_validation_rapid.py +103 -0
  513. rapidata/api_client/models/potential_validation_rapid_paged_result.py +105 -0
  514. rapidata/api_client/models/potential_validation_rapid_truth.py +280 -0
  515. rapidata/api_client/models/preliminary_download_model.py +5 -5
  516. rapidata/api_client/models/preview_order_model.py +87 -0
  517. rapidata/api_client/models/problem_details.py +2 -20
  518. rapidata/api_client/models/prompt_asset_metadata_input.py +6 -8
  519. rapidata/api_client/models/prompt_asset_metadata_input_asset.py +154 -0
  520. rapidata/api_client/models/prompt_by_benchmark_result.py +112 -0
  521. rapidata/api_client/models/prompt_by_benchmark_result_paged_result.py +105 -0
  522. rapidata/api_client/models/prompt_by_leaderboard_result.py +90 -0
  523. rapidata/api_client/models/prompt_by_leaderboard_result_paged_result.py +105 -0
  524. rapidata/api_client/models/prompt_metadata.py +12 -1
  525. rapidata/api_client/models/prompt_metadata_input.py +2 -2
  526. rapidata/api_client/models/prompt_type.py +38 -0
  527. rapidata/api_client/models/proxy_file_wrapper.py +129 -0
  528. rapidata/api_client/models/public_order_model.py +2 -2
  529. rapidata/api_client/models/public_rapid_response.py +112 -0
  530. rapidata/api_client/models/query_audiences_result.py +111 -0
  531. rapidata/api_client/models/query_datapoints_by_dataset_id_result.py +95 -0
  532. rapidata/api_client/models/query_model.py +10 -5
  533. rapidata/api_client/models/query_validation_model.py +97 -0
  534. rapidata/api_client/models/query_validation_rapid_eligibility_model_query_validation_model.py +107 -0
  535. rapidata/api_client/models/query_validation_rapid_eligibility_result.py +103 -0
  536. rapidata/api_client/models/query_validation_rapid_eligibility_result_truth.py +280 -0
  537. rapidata/api_client/models/rapid_issue.py +2 -2
  538. rapidata/api_client/models/rapid_modality.py +46 -0
  539. rapidata/api_client/models/rapid_model.py +33 -49
  540. rapidata/api_client/models/rapid_result_model.py +7 -7
  541. rapidata/api_client/models/rapid_skipped_model.py +5 -5
  542. rapidata/api_client/models/rapid_state.py +2 -2
  543. rapidata/api_client/models/read_bridge_token_keys_result.py +10 -24
  544. rapidata/api_client/models/reference_asset_input.py +100 -0
  545. rapidata/api_client/models/report_model.py +9 -15
  546. rapidata/api_client/models/response_count_filter.py +103 -0
  547. rapidata/api_client/models/response_count_user_filter_model.py +2 -8
  548. rapidata/api_client/models/retrieval_mode.py +2 -2
  549. rapidata/api_client/models/root_filter.py +5 -14
  550. rapidata/api_client/models/run_status.py +39 -0
  551. rapidata/api_client/models/runs_by_leaderboard_result.py +104 -0
  552. rapidata/api_client/models/runs_by_leaderboard_result_paged_result.py +105 -0
  553. rapidata/api_client/models/sample_by_identifier.py +125 -0
  554. rapidata/api_client/models/sample_by_identifier_paged_result.py +105 -0
  555. rapidata/api_client/models/sample_by_participant.py +121 -0
  556. rapidata/api_client/models/sample_by_participant_paged_result.py +105 -0
  557. rapidata/api_client/models/scrub_range.py +2 -2
  558. rapidata/api_client/models/send_survey_model.py +87 -0
  559. rapidata/api_client/models/simple_workflow_config.py +15 -7
  560. rapidata/api_client/models/simple_workflow_config_blueprint.py +37 -23
  561. rapidata/api_client/models/simple_workflow_config_model.py +11 -3
  562. rapidata/api_client/models/simple_workflow_model.py +14 -4
  563. rapidata/api_client/models/simple_workflow_model1.py +4 -11
  564. rapidata/api_client/models/simple_workflow_model_blueprint.py +1 -1
  565. rapidata/api_client/models/sort_criterion.py +5 -11
  566. rapidata/api_client/models/sort_direction.py +2 -2
  567. rapidata/api_client/models/source_url_metadata.py +12 -1
  568. rapidata/api_client/models/standing_by_benchmark.py +113 -0
  569. rapidata/api_client/models/standing_by_leaderboard.py +113 -0
  570. rapidata/api_client/models/standing_by_leaderboard_paged_result.py +105 -0
  571. rapidata/api_client/models/standing_status.py +38 -0
  572. rapidata/api_client/models/standings_by_benchmark_result.py +95 -0
  573. rapidata/api_client/models/standings_by_leaderboard_result.py +95 -0
  574. rapidata/api_client/models/start_preliminary_download_result.py +87 -0
  575. rapidata/api_client/models/sticky_state.py +3 -2
  576. rapidata/api_client/models/stream_file_wrapper.py +138 -0
  577. rapidata/api_client/models/streams_metadata.py +113 -0
  578. rapidata/api_client/models/streams_metadata_model.py +100 -0
  579. rapidata/api_client/models/string_segment.py +105 -0
  580. rapidata/api_client/models/submit_coco_model.py +1 -3
  581. rapidata/api_client/models/submit_order_model.py +87 -0
  582. rapidata/api_client/models/submit_participant_result.py +89 -0
  583. rapidata/api_client/models/submit_prompt_model.py +107 -0
  584. rapidata/api_client/models/submit_prompt_model_prompt_asset.py +202 -0
  585. rapidata/api_client/models/tags_by_benchmark_result.py +87 -0
  586. rapidata/api_client/models/text_asset.py +3 -5
  587. rapidata/api_client/models/text_asset_input.py +120 -0
  588. rapidata/api_client/models/text_metadata.py +18 -2
  589. rapidata/api_client/models/text_metadata_input.py +111 -0
  590. rapidata/api_client/models/text_metadata_model.py +7 -2
  591. rapidata/api_client/models/transcription_metadata.py +9 -1
  592. rapidata/api_client/models/transcription_metadata_input.py +2 -2
  593. rapidata/api_client/models/transcription_word.py +2 -2
  594. rapidata/api_client/models/translated_string.py +2 -2
  595. rapidata/api_client/models/unlock_order_result.py +2 -2
  596. rapidata/api_client/models/update_audience_request.py +102 -0
  597. rapidata/api_client/models/update_benchmark_model.py +99 -0
  598. rapidata/api_client/models/update_benchmark_name_model.py +87 -0
  599. rapidata/api_client/models/update_campaign_model.py +11 -11
  600. rapidata/api_client/models/update_dataset_name_model.py +5 -5
  601. rapidata/api_client/models/update_dimensions_model.py +3 -3
  602. rapidata/api_client/models/update_leaderboard_model.py +106 -0
  603. rapidata/api_client/models/update_leaderboard_name_model.py +87 -0
  604. rapidata/api_client/models/update_leaderboard_response_config_model.py +89 -0
  605. rapidata/api_client/models/update_order_name_model.py +5 -5
  606. rapidata/api_client/models/update_participant_model.py +92 -0
  607. rapidata/api_client/models/update_participant_name_model.py +87 -0
  608. rapidata/api_client/models/update_priority_model.py +87 -0
  609. rapidata/api_client/models/update_prompt_tags_model.py +87 -0
  610. rapidata/api_client/models/update_should_alert_model.py +87 -0
  611. rapidata/api_client/models/update_validation_rapid_model.py +28 -10
  612. rapidata/api_client/models/update_validation_rapid_model_context_asset.py +160 -0
  613. rapidata/api_client/models/update_validation_set_model.py +120 -0
  614. rapidata/api_client/models/upload_asset_result.py +102 -0
  615. rapidata/api_client/models/upload_file_from_url_result.py +87 -0
  616. rapidata/api_client/models/upload_file_result.py +87 -0
  617. rapidata/api_client/models/user_action_restriction.py +37 -0
  618. rapidata/api_client/models/user_action_restriction_filter.py +101 -0
  619. rapidata/api_client/models/user_score_filter.py +102 -0
  620. rapidata/api_client/models/user_state.py +38 -0
  621. rapidata/api_client/models/user_state_filter.py +101 -0
  622. rapidata/api_client/models/validation_chance.py +20 -3
  623. rapidata/api_client/models/validation_set_model.py +39 -5
  624. rapidata/api_client/models/validation_set_overview_model.py +2 -2
  625. rapidata/api_client/models/validation_set_validation_set_id_rapid_post_payload_parameter.py +252 -0
  626. rapidata/api_client/models/validation_set_validation_set_id_rapid_post_truth_parameter.py +280 -0
  627. rapidata/api_client/models/validation_set_zip_post_request_blueprint.py +252 -0
  628. rapidata/api_client/models/video_duration_metadata.py +109 -0
  629. rapidata/api_client/models/video_duration_metadata_model.py +96 -0
  630. rapidata/api_client/models/workflow_aggregation_step_model.py +3 -12
  631. rapidata/api_client/models/workflow_config_artifact_model_workflow_config.py +23 -9
  632. rapidata/api_client/models/workflow_state.py +2 -2
  633. rapidata/api_client/models/zip_entry_file_wrapper.py +151 -0
  634. rapidata/api_client/rest.py +16 -9
  635. rapidata/api_client_README.md +389 -315
  636. rapidata/rapidata_client/__init__.py +10 -17
  637. rapidata/rapidata_client/api/rapidata_api_client.py +253 -0
  638. rapidata/rapidata_client/benchmark/__init__.py +0 -0
  639. rapidata/rapidata_client/benchmark/_detail_mapper.py +32 -0
  640. rapidata/rapidata_client/benchmark/leaderboard/__init__.py +0 -0
  641. rapidata/rapidata_client/benchmark/leaderboard/rapidata_leaderboard.py +221 -0
  642. rapidata/rapidata_client/benchmark/participant/__init__.py +0 -0
  643. rapidata/rapidata_client/benchmark/participant/_participant.py +147 -0
  644. rapidata/rapidata_client/benchmark/rapidata_benchmark.py +546 -0
  645. rapidata/rapidata_client/benchmark/rapidata_benchmark_manager.py +219 -0
  646. rapidata/rapidata_client/config/__init__.py +4 -0
  647. rapidata/rapidata_client/config/logger.py +135 -0
  648. rapidata/rapidata_client/config/logging_config.py +55 -0
  649. rapidata/rapidata_client/config/managed_print.py +6 -0
  650. rapidata/rapidata_client/config/order_config.py +14 -0
  651. rapidata/rapidata_client/config/rapidata_config.py +36 -0
  652. rapidata/rapidata_client/config/tracer.py +184 -0
  653. rapidata/rapidata_client/config/upload_config.py +64 -0
  654. rapidata/rapidata_client/datapoints/__init__.py +10 -0
  655. rapidata/rapidata_client/datapoints/_asset_uploader.py +169 -0
  656. rapidata/rapidata_client/datapoints/_datapoint.py +92 -0
  657. rapidata/rapidata_client/datapoints/_datapoint_uploader.py +47 -0
  658. rapidata/rapidata_client/datapoints/_datapoints_validator.py +70 -0
  659. rapidata/rapidata_client/datapoints/assets/__init__.py +0 -0
  660. rapidata/rapidata_client/datapoints/assets/constants.py +7 -0
  661. rapidata/rapidata_client/{metadata → datapoints/metadata}/__init__.py +1 -0
  662. rapidata/rapidata_client/datapoints/metadata/_media_asset_metadata.py +26 -0
  663. rapidata/rapidata_client/datapoints/metadata/_private_text_metadata.py +16 -0
  664. rapidata/rapidata_client/datapoints/metadata/_prompt_identifier_metadata.py +14 -0
  665. rapidata/rapidata_client/datapoints/metadata/_prompt_metadata.py +12 -0
  666. rapidata/rapidata_client/datapoints/metadata/_public_text_metadata.py +16 -0
  667. rapidata/rapidata_client/{metadata → datapoints/metadata}/_select_words_metadata.py +4 -5
  668. rapidata/rapidata_client/demographic/demographic_manager.py +44 -19
  669. rapidata/rapidata_client/exceptions/__init__.py +1 -0
  670. rapidata/rapidata_client/exceptions/failed_upload_exception.py +20 -0
  671. rapidata/rapidata_client/filter/__init__.py +1 -0
  672. rapidata/rapidata_client/filter/_base_filter.py +27 -6
  673. rapidata/rapidata_client/filter/age_filter.py +21 -10
  674. rapidata/rapidata_client/filter/and_filter.py +42 -0
  675. rapidata/rapidata_client/filter/campaign_filter.py +18 -10
  676. rapidata/rapidata_client/filter/country_filter.py +34 -12
  677. rapidata/rapidata_client/filter/custom_filter.py +22 -12
  678. rapidata/rapidata_client/filter/gender_filter.py +22 -10
  679. rapidata/rapidata_client/filter/language_filter.py +39 -21
  680. rapidata/rapidata_client/filter/models/age_group.py +14 -12
  681. rapidata/rapidata_client/filter/models/gender.py +12 -8
  682. rapidata/rapidata_client/filter/new_user_filter.py +11 -4
  683. rapidata/rapidata_client/filter/not_filter.py +23 -11
  684. rapidata/rapidata_client/filter/or_filter.py +23 -11
  685. rapidata/rapidata_client/filter/rapidata_filters.py +19 -13
  686. rapidata/rapidata_client/filter/response_count_filter.py +36 -20
  687. rapidata/rapidata_client/filter/user_score_filter.py +47 -24
  688. rapidata/rapidata_client/order/_rapidata_order_builder.py +286 -193
  689. rapidata/rapidata_client/order/dataset/_rapidata_dataset.py +153 -0
  690. rapidata/rapidata_client/order/rapidata_order.py +317 -160
  691. rapidata/rapidata_client/order/rapidata_order_manager.py +689 -431
  692. rapidata/rapidata_client/order/rapidata_results.py +98 -67
  693. rapidata/rapidata_client/rapidata_client.py +99 -33
  694. rapidata/rapidata_client/referee/__init__.py +1 -1
  695. rapidata/rapidata_client/referee/_base_referee.py +7 -3
  696. rapidata/rapidata_client/referee/_early_stopping_referee.py +20 -11
  697. rapidata/rapidata_client/referee/_naive_referee.py +18 -3
  698. rapidata/rapidata_client/selection/__init__.py +2 -1
  699. rapidata/rapidata_client/selection/_base_selection.py +9 -2
  700. rapidata/rapidata_client/selection/ab_test_selection.py +28 -20
  701. rapidata/rapidata_client/selection/capped_selection.py +23 -16
  702. rapidata/rapidata_client/selection/conditional_validation_selection.py +43 -24
  703. rapidata/rapidata_client/selection/demographic_selection.py +21 -6
  704. rapidata/rapidata_client/selection/effort_selection.py +49 -0
  705. rapidata/rapidata_client/selection/labeling_selection.py +34 -11
  706. rapidata/rapidata_client/selection/{retrieval_modes.py → rapidata_retrieval_modes.py} +7 -4
  707. rapidata/rapidata_client/selection/rapidata_selections.py +17 -8
  708. rapidata/rapidata_client/selection/shuffling_selection.py +21 -13
  709. rapidata/rapidata_client/selection/static_selection.py +19 -8
  710. rapidata/rapidata_client/selection/validation_selection.py +20 -4
  711. rapidata/rapidata_client/settings/__init__.py +4 -1
  712. rapidata/rapidata_client/settings/_rapidata_setting.py +15 -2
  713. rapidata/rapidata_client/settings/alert_on_fast_response.py +8 -5
  714. rapidata/rapidata_client/settings/allow_neither_both.py +17 -0
  715. rapidata/rapidata_client/settings/custom_setting.py +3 -2
  716. rapidata/rapidata_client/settings/free_text_minimum_characters.py +9 -4
  717. rapidata/rapidata_client/settings/models/translation_behaviour_options.py +3 -2
  718. rapidata/rapidata_client/settings/mute_video.py +15 -0
  719. rapidata/rapidata_client/settings/no_shuffle.py +4 -2
  720. rapidata/rapidata_client/settings/play_video_until_the_end.py +7 -4
  721. rapidata/rapidata_client/settings/rapidata_settings.py +18 -3
  722. rapidata/rapidata_client/settings/swap_context_instruction.py +20 -0
  723. rapidata/rapidata_client/settings/translation_behaviour.py +7 -5
  724. rapidata/rapidata_client/validation/rapidata_validation_set.py +106 -12
  725. rapidata/rapidata_client/validation/rapids/_validation_rapid_uploader.py +62 -0
  726. rapidata/rapidata_client/validation/rapids/box.py +37 -12
  727. rapidata/rapidata_client/validation/rapids/rapids.py +28 -103
  728. rapidata/rapidata_client/validation/rapids/rapids_manager.py +315 -208
  729. rapidata/rapidata_client/validation/validation_set_manager.py +511 -260
  730. rapidata/rapidata_client/workflow/__init__.py +2 -1
  731. rapidata/rapidata_client/workflow/_base_workflow.py +25 -7
  732. rapidata/rapidata_client/workflow/_classify_workflow.py +58 -15
  733. rapidata/rapidata_client/workflow/_compare_workflow.py +44 -9
  734. rapidata/rapidata_client/workflow/_draw_workflow.py +40 -10
  735. rapidata/rapidata_client/workflow/_evaluation_workflow.py +28 -7
  736. rapidata/rapidata_client/workflow/_free_text_workflow.py +46 -9
  737. rapidata/rapidata_client/workflow/_locate_workflow.py +40 -10
  738. rapidata/rapidata_client/workflow/_multi_ranking_workflow.py +87 -0
  739. rapidata/rapidata_client/workflow/_ranking_workflow.py +109 -25
  740. rapidata/rapidata_client/workflow/_select_words_workflow.py +51 -11
  741. rapidata/rapidata_client/workflow/_timestamp_workflow.py +42 -11
  742. rapidata/service/__init__.py +0 -1
  743. rapidata/service/credential_manager.py +14 -14
  744. rapidata/service/openapi_service.py +82 -22
  745. rapidata/types/__init__.py +166 -0
  746. rapidata-2.44.3.dist-info/METADATA +32 -0
  747. rapidata-2.44.3.dist-info/RECORD +1014 -0
  748. {rapidata-2.27.2.dist-info → rapidata-2.44.3.dist-info}/WHEEL +1 -1
  749. rapidata/rapidata_client/api/rapidata_exception.py +0 -107
  750. rapidata/rapidata_client/assets/__init__.py +0 -10
  751. rapidata/rapidata_client/assets/_base_asset.py +0 -11
  752. rapidata/rapidata_client/assets/_media_asset.py +0 -306
  753. rapidata/rapidata_client/assets/_multi_asset.py +0 -61
  754. rapidata/rapidata_client/assets/_sessions.py +0 -35
  755. rapidata/rapidata_client/assets/_text_asset.py +0 -34
  756. rapidata/rapidata_client/assets/data_type_enum.py +0 -7
  757. rapidata/rapidata_client/country_codes/__init__.py +0 -1
  758. rapidata/rapidata_client/country_codes/country_codes.py +0 -19
  759. rapidata/rapidata_client/logging/__init__.py +0 -2
  760. rapidata/rapidata_client/logging/logger.py +0 -122
  761. rapidata/rapidata_client/logging/output_manager.py +0 -20
  762. rapidata/rapidata_client/metadata/_media_asset_metadata.py +0 -15
  763. rapidata/rapidata_client/metadata/_private_text_metadata.py +0 -17
  764. rapidata/rapidata_client/metadata/_prompt_metadata.py +0 -18
  765. rapidata/rapidata_client/metadata/_public_text_metadata.py +0 -17
  766. rapidata/rapidata_client/order/_rapidata_dataset.py +0 -411
  767. rapidata/service/local_file_service.py +0 -25
  768. rapidata-2.27.2.dist-info/METADATA +0 -35
  769. rapidata-2.27.2.dist-info/RECORD +0 -540
  770. /rapidata/rapidata_client/{metadata → datapoints/metadata}/_base_metadata.py +0 -0
  771. {rapidata-2.27.2.dist-info → rapidata-2.44.3.dist-info/licenses}/LICENSE +0 -0
@@ -0,0 +1,147 @@
1
+ from __future__ import annotations
2
+
3
+ from concurrent.futures import ThreadPoolExecutor, as_completed
4
+ import time
5
+ from tqdm import tqdm
6
+
7
+ from rapidata.rapidata_client.config import logger
8
+ from rapidata.rapidata_client.config.rapidata_config import rapidata_config
9
+ from rapidata.rapidata_client.api.rapidata_api_client import (
10
+ suppress_rapidata_error_logging,
11
+ )
12
+
13
+ from opentelemetry import context as otel_context
14
+ from rapidata.rapidata_client.datapoints._asset_uploader import AssetUploader
15
+
16
+ from rapidata.service.openapi_service import OpenAPIService
17
+
18
+
19
+ class BenchmarkParticipant:
20
+ def __init__(self, name: str, id: str, openapi_service: OpenAPIService):
21
+ self.name = name
22
+ self.id = id
23
+ self._openapi_service = openapi_service
24
+ self._asset_uploader = AssetUploader(openapi_service)
25
+
26
+ def _process_single_sample_upload(
27
+ self,
28
+ asset: str,
29
+ identifier: str,
30
+ ) -> tuple[str | None, str | None]:
31
+ """
32
+ Process single sample upload with retry logic and error tracking.
33
+
34
+ Args:
35
+ asset: MediaAsset to upload
36
+ identifier: Identifier for the sample
37
+
38
+ Returns:
39
+ tuple[MediaAsset | None, MediaAsset | None]: (successful_asset, failed_asset)
40
+ """
41
+ from rapidata.api_client.models.create_sample_model import CreateSampleModel
42
+ from rapidata.api_client.models.create_sample_model_asset import (
43
+ CreateSampleModelAsset,
44
+ )
45
+ from rapidata.api_client.models.existing_asset_input import ExistingAssetInput
46
+ from rapidata.api_client.models.i_asset_input import IAssetInput
47
+
48
+ last_exception = None
49
+ for attempt in range(rapidata_config.upload.maxRetries):
50
+ try:
51
+ with suppress_rapidata_error_logging():
52
+ self._openapi_service.participant_api.participant_participant_id_sample_post(
53
+ participant_id=self.id,
54
+ create_sample_model=CreateSampleModel(
55
+ identifier=identifier,
56
+ asset=IAssetInput(
57
+ actual_instance=CreateSampleModelAsset(
58
+ actual_instance=ExistingAssetInput(
59
+ _t="ExistingAssetInput",
60
+ name=self._asset_uploader.upload_asset(asset),
61
+ ),
62
+ ),
63
+ ),
64
+ ),
65
+ )
66
+
67
+ return asset, None
68
+
69
+ except Exception as e:
70
+ last_exception = e
71
+ if attempt < rapidata_config.upload.maxRetries - 1:
72
+ # Exponential backoff: wait 1s, then 2s, then 4s
73
+ retry_delay = 2**attempt
74
+ time.sleep(retry_delay)
75
+ logger.debug("Error: %s", str(last_exception))
76
+ logger.debug(
77
+ "Retrying %s of %s...",
78
+ attempt + 1,
79
+ rapidata_config.upload.maxRetries,
80
+ )
81
+
82
+ logger.error(f"Upload failed for {identifier}. Error: {str(last_exception)}")
83
+ return None, asset
84
+
85
+ def upload_media(
86
+ self,
87
+ assets: list[str],
88
+ identifiers: list[str],
89
+ ) -> tuple[list[str], list[str]]:
90
+ """
91
+ Upload samples concurrently with proper error handling and progress tracking.
92
+
93
+ Args:
94
+ assets: List of strings to upload
95
+ identifiers: List of identifiers matching the assets
96
+
97
+ Returns:
98
+ tuple[list[str], list[str]]: Lists of successful and failed identifiers
99
+ """
100
+
101
+ def upload_with_context(
102
+ context: otel_context.Context, asset: str, identifier: str
103
+ ) -> tuple[str | None, str | None]:
104
+ """Wrapper function that runs _process_single_sample_upload with the provided context."""
105
+ token = otel_context.attach(context)
106
+ try:
107
+ return self._process_single_sample_upload(asset, identifier)
108
+ finally:
109
+ otel_context.detach(token)
110
+
111
+ successful_uploads: list[str] = []
112
+ failed_uploads: list[str] = []
113
+ total_uploads = len(assets)
114
+
115
+ # Capture the current OpenTelemetry context before creating threads
116
+ current_context = otel_context.get_current()
117
+
118
+ with ThreadPoolExecutor(
119
+ max_workers=rapidata_config.upload.maxWorkers
120
+ ) as executor:
121
+ futures = [
122
+ executor.submit(
123
+ upload_with_context,
124
+ current_context,
125
+ asset,
126
+ identifier,
127
+ )
128
+ for asset, identifier in zip(assets, identifiers)
129
+ ]
130
+
131
+ with tqdm(
132
+ total=total_uploads,
133
+ desc="Uploading media",
134
+ disable=rapidata_config.logging.silent_mode,
135
+ ) as pbar:
136
+ for future in as_completed(futures):
137
+ try:
138
+ successful_id, failed_id = future.result()
139
+ if successful_id:
140
+ successful_uploads.append(successful_id)
141
+ pbar.update(1)
142
+ if failed_id:
143
+ failed_uploads.append(failed_id)
144
+ except Exception as e:
145
+ logger.error(f"Future execution failed: {str(e)}")
146
+
147
+ return successful_uploads, failed_uploads
@@ -0,0 +1,546 @@
1
+ from __future__ import annotations
2
+ import urllib.parse
3
+ import webbrowser
4
+ from colorama import Fore
5
+ from typing import Literal, Optional, Sequence, TYPE_CHECKING
6
+ from rapidata.rapidata_client.config import logger, managed_print, tracer
7
+
8
+ if TYPE_CHECKING:
9
+ import pandas as pd
10
+ from rapidata.rapidata_client.benchmark.leaderboard.rapidata_leaderboard import (
11
+ RapidataLeaderboard,
12
+ )
13
+ from rapidata.rapidata_client.filter import RapidataFilter
14
+ from rapidata.rapidata_client.settings import RapidataSetting
15
+ from rapidata.service.openapi_service import OpenAPIService
16
+
17
+
18
+ class RapidataBenchmark:
19
+ """
20
+ An instance of a Rapidata benchmark.
21
+
22
+ Used to interact with a specific benchmark in the Rapidata system, such as retrieving prompts and evaluating models.
23
+
24
+ Args:
25
+ name: The name that will be used to identify the benchmark on the overview.
26
+ id: The id of the benchmark.
27
+ openapi_service: The OpenAPI service to use to interact with the Rapidata API.
28
+ """
29
+
30
+ def __init__(self, name: str, id: str, openapi_service: OpenAPIService):
31
+ from rapidata.rapidata_client.datapoints._asset_uploader import AssetUploader
32
+
33
+ self.name = name
34
+ self.id = id
35
+ self._openapi_service = openapi_service
36
+ self.__prompts: list[str | None] = []
37
+ self.__prompt_assets: list[str | None] = []
38
+ self.__leaderboards: list["RapidataLeaderboard"] = []
39
+ self.__identifiers: list[str] = []
40
+ self.__tags: list[list[str]] = []
41
+ self.__benchmark_page: str = (
42
+ f"https://app.{self._openapi_service.environment}/mri/benchmarks/{self.id}"
43
+ )
44
+ self._asset_uploader = AssetUploader(openapi_service)
45
+
46
+ def __instantiate_prompts(self) -> None:
47
+ from rapidata.rapidata_client.config import tracer
48
+ from rapidata.api_client.models.query_model import QueryModel
49
+ from rapidata.api_client.models.page_info import PageInfo
50
+ from rapidata.api_client.models.file_asset_model import FileAssetModel
51
+ from rapidata.api_client.models.source_url_metadata_model import (
52
+ SourceUrlMetadataModel,
53
+ )
54
+
55
+ with tracer.start_as_current_span("RapidataBenchmark.__instantiate_prompts"):
56
+ current_page = 1
57
+ total_pages = None
58
+
59
+ while True:
60
+ prompts_result = self._openapi_service.benchmark_api.benchmark_benchmark_id_prompts_get(
61
+ benchmark_id=self.id,
62
+ request=QueryModel(page=PageInfo(index=current_page, size=100)),
63
+ )
64
+
65
+ if prompts_result.total_pages is None:
66
+ raise ValueError(
67
+ "An error occurred while fetching prompts: total_pages is None"
68
+ )
69
+
70
+ total_pages = prompts_result.total_pages
71
+
72
+ for prompt in prompts_result.items:
73
+ self.__prompts.append(prompt.prompt)
74
+ self.__identifiers.append(prompt.identifier)
75
+ if prompt.prompt_asset is None:
76
+ self.__prompt_assets.append(None)
77
+ else:
78
+ assert isinstance(
79
+ prompt.prompt_asset.actual_instance, FileAssetModel
80
+ )
81
+ source_url = prompt.prompt_asset.actual_instance.metadata[
82
+ "sourceUrl"
83
+ ].actual_instance
84
+ assert isinstance(source_url, SourceUrlMetadataModel)
85
+ self.__prompt_assets.append(source_url.url)
86
+
87
+ self.__tags.append(prompt.tags)
88
+ if current_page >= total_pages:
89
+ break
90
+
91
+ current_page += 1
92
+
93
+ @property
94
+ def identifiers(self) -> list[str]:
95
+ if not self.__identifiers:
96
+ self.__instantiate_prompts()
97
+
98
+ return self.__identifiers
99
+
100
+ @property
101
+ def prompts(self) -> list[str | None]:
102
+ """
103
+ Returns the prompts that are registered for the leaderboard.
104
+ """
105
+ if not self.__prompts:
106
+ self.__instantiate_prompts()
107
+
108
+ return self.__prompts
109
+
110
+ @property
111
+ def prompt_assets(self) -> list[str | None]:
112
+ """
113
+ Returns the prompt assets that are registered for the benchmark.
114
+ """
115
+ if not self.__prompt_assets:
116
+ self.__instantiate_prompts()
117
+
118
+ return self.__prompt_assets
119
+
120
+ @property
121
+ def tags(self) -> list[list[str]]:
122
+ """
123
+ Returns the tags that are registered for the benchmark.
124
+ """
125
+ if not self.__tags:
126
+ self.__instantiate_prompts()
127
+
128
+ return self.__tags
129
+
130
+ @property
131
+ def leaderboards(self) -> list[RapidataLeaderboard]:
132
+ """
133
+ Returns the leaderboards that are registered for the benchmark.
134
+ """
135
+ from rapidata.api_client.models.query_model import QueryModel
136
+ from rapidata.api_client.models.page_info import PageInfo
137
+ from rapidata.rapidata_client.benchmark.leaderboard.rapidata_leaderboard import (
138
+ RapidataLeaderboard,
139
+ )
140
+
141
+ with tracer.start_as_current_span("RapidataBenchmark.leaderboards"):
142
+ if not self.__leaderboards:
143
+ current_page = 1
144
+ total_pages = None
145
+
146
+ while True:
147
+ leaderboards_result = self._openapi_service.benchmark_api.benchmark_benchmark_id_leaderboards_get(
148
+ benchmark_id=self.id,
149
+ request=QueryModel(
150
+ page=PageInfo(index=current_page, size=100),
151
+ ),
152
+ )
153
+
154
+ if leaderboards_result.total_pages is None:
155
+ raise ValueError(
156
+ "An error occurred while fetching leaderboards: total_pages is None"
157
+ )
158
+
159
+ total_pages = leaderboards_result.total_pages
160
+
161
+ self.__leaderboards.extend(
162
+ [
163
+ RapidataLeaderboard(
164
+ leaderboard.name,
165
+ leaderboard.instruction,
166
+ leaderboard.show_prompt,
167
+ leaderboard.show_prompt_asset,
168
+ leaderboard.is_inversed,
169
+ leaderboard.response_budget,
170
+ leaderboard.min_responses,
171
+ self.id,
172
+ leaderboard.id,
173
+ self._openapi_service,
174
+ )
175
+ for leaderboard in leaderboards_result.items
176
+ ]
177
+ )
178
+
179
+ if current_page >= total_pages:
180
+ break
181
+
182
+ current_page += 1
183
+
184
+ return self.__leaderboards
185
+
186
+ def add_prompt(
187
+ self,
188
+ identifier: str | None = None,
189
+ prompt: str | None = None,
190
+ prompt_asset: str | None = None,
191
+ tags: Optional[list[str]] = None,
192
+ ):
193
+ """
194
+ Adds a prompt to the benchmark.
195
+
196
+ Args:
197
+ identifier: The identifier of the prompt/asset/tags that will be used to match up the media. If not provided, it will use the prompt, asset or prompt + asset as the identifier.
198
+ prompt: The prompt that will be used to evaluate the model.
199
+ prompt_asset: The prompt asset that will be used to evaluate the model. Provided as a link to the asset.
200
+ tags: The tags can be used to filter the leaderboard results. They will NOT be shown to the users.
201
+ """
202
+ from rapidata.api_client.models.submit_prompt_model import SubmitPromptModel
203
+ from rapidata.api_client.models.existing_asset_input import ExistingAssetInput
204
+ from rapidata.api_client.models.i_asset_input import IAssetInput
205
+
206
+ with tracer.start_as_current_span("RapidataBenchmark.add_prompt"):
207
+ if tags is None:
208
+ tags = []
209
+
210
+ if prompt is None and prompt_asset is None:
211
+ raise ValueError("Prompt or prompt asset must be provided.")
212
+
213
+ if identifier is None and prompt is None:
214
+ raise ValueError("Identifier or prompt must be provided.")
215
+
216
+ if identifier and not isinstance(identifier, str):
217
+ raise ValueError("Identifier must be a string.")
218
+
219
+ if prompt and not isinstance(prompt, str):
220
+ raise ValueError("Prompt must be a string.")
221
+
222
+ if prompt_asset and not isinstance(prompt_asset, str):
223
+ raise ValueError(
224
+ "Asset must be a string. That is the link to the asset."
225
+ )
226
+
227
+ if identifier is None:
228
+ assert prompt is not None
229
+ if prompt in self.prompts:
230
+ raise ValueError(
231
+ "Prompts must be unique. Otherwise use identifiers."
232
+ )
233
+ identifier = prompt
234
+
235
+ if identifier in self.identifiers:
236
+ raise ValueError("Identifier already exists in the benchmark.")
237
+
238
+ if tags is not None and (
239
+ not isinstance(tags, list)
240
+ or not all(isinstance(tag, str) for tag in tags)
241
+ ):
242
+ raise ValueError("Tags must be a list of strings.")
243
+
244
+ logger.info(
245
+ "Adding identifier %s with prompt %s, prompt asset %s and tags %s to benchmark %s",
246
+ identifier,
247
+ prompt,
248
+ prompt_asset,
249
+ tags,
250
+ self.id,
251
+ )
252
+
253
+ self.__identifiers.append(identifier)
254
+
255
+ self.__tags.append(tags)
256
+ self.__prompts.append(prompt)
257
+ self.__prompt_assets.append(prompt_asset)
258
+
259
+ self._openapi_service.benchmark_api.benchmark_benchmark_id_prompt_post(
260
+ benchmark_id=self.id,
261
+ submit_prompt_model=SubmitPromptModel(
262
+ identifier=identifier,
263
+ prompt=prompt,
264
+ promptAsset=(
265
+ IAssetInput(
266
+ actual_instance=(
267
+ ExistingAssetInput(
268
+ _t="ExistingAssetInput",
269
+ name=self._asset_uploader.upload_asset(
270
+ prompt_asset
271
+ ),
272
+ )
273
+ if prompt_asset is not None
274
+ else None
275
+ )
276
+ )
277
+ if prompt_asset is not None
278
+ else None
279
+ ),
280
+ tags=tags,
281
+ ),
282
+ )
283
+
284
+ def create_leaderboard(
285
+ self,
286
+ name: str,
287
+ instruction: str,
288
+ show_prompt: bool = False,
289
+ show_prompt_asset: bool = False,
290
+ inverse_ranking: bool = False,
291
+ level_of_detail: Literal["low", "medium", "high", "very high"] | None = None,
292
+ min_responses_per_matchup: int | None = None,
293
+ validation_set_id: str | None = None,
294
+ filters: Sequence["RapidataFilter"] | None = None,
295
+ settings: Sequence["RapidataSetting"] | None = None,
296
+ ) -> RapidataLeaderboard:
297
+ """
298
+ Creates a new leaderboard for the benchmark.
299
+
300
+ Args:
301
+ name: The name of the leaderboard. (not shown to the users)
302
+ instruction: The instruction decides how the models will be evaluated.
303
+ show_prompt: Whether to show the prompt to the users. (default: False)
304
+ show_prompt_asset: Whether to show the prompt asset to the users. (only works if the prompt asset is a URL) (default: False)
305
+ inverse_ranking: Whether to inverse the ranking of the leaderboard. (if the question is inversed, e.g. "Which video is worse?")
306
+ level_of_detail: The level of detail of the leaderboard. This will effect how many comparisons are done per model evaluation. (default: "low")
307
+ min_responses_per_matchup: The minimum number of responses required to be considered for the leaderboard. (default: 3)
308
+ validation_set_id: The id of the validation set that should be attached to the leaderboard. (default: None)
309
+ filters: The filters that should be applied to the leaderboard. Will determine who can solve answer in the leaderboard. (default: [])
310
+ settings: The settings that should be applied to the leaderboard. Will determine the behavior of the tasks on the leaderboard. (default: [])
311
+ """
312
+ from rapidata.api_client.models.create_leaderboard_model import (
313
+ CreateLeaderboardModel,
314
+ )
315
+ from rapidata.rapidata_client.benchmark._detail_mapper import DetailMapper
316
+ from rapidata.rapidata_client.benchmark.leaderboard.rapidata_leaderboard import (
317
+ RapidataLeaderboard,
318
+ )
319
+
320
+ with tracer.start_as_current_span("create_leaderboard"):
321
+ if level_of_detail is not None and (
322
+ not isinstance(level_of_detail, str)
323
+ or level_of_detail not in ["low", "medium", "high", "very high"]
324
+ ):
325
+ raise ValueError(
326
+ "Level of detail must be a string and one of: 'low', 'medium', 'high', 'very high'"
327
+ )
328
+
329
+ if min_responses_per_matchup is not None and (
330
+ not isinstance(min_responses_per_matchup, int)
331
+ or min_responses_per_matchup < 3
332
+ ):
333
+ raise ValueError(
334
+ "Min responses per matchup must be an integer and at least 3"
335
+ )
336
+
337
+ logger.info(
338
+ "Creating leaderboard %s with instruction %s, show_prompt %s, show_prompt_asset %s, inverse_ranking %s, level_of_detail %s, min_responses_per_matchup %s, validation_set_id %s, filters %s, settings %s",
339
+ name,
340
+ instruction,
341
+ show_prompt,
342
+ show_prompt_asset,
343
+ inverse_ranking,
344
+ level_of_detail,
345
+ min_responses_per_matchup,
346
+ validation_set_id,
347
+ filters,
348
+ settings,
349
+ )
350
+
351
+ leaderboard_result = self._openapi_service.leaderboard_api.leaderboard_post(
352
+ create_leaderboard_model=CreateLeaderboardModel(
353
+ benchmarkId=self.id,
354
+ name=name,
355
+ instruction=instruction,
356
+ showPrompt=show_prompt,
357
+ showPromptAsset=show_prompt_asset,
358
+ isInversed=inverse_ranking,
359
+ minResponses=min_responses_per_matchup,
360
+ responseBudget=(
361
+ DetailMapper.get_budget(level_of_detail)
362
+ if level_of_detail is not None
363
+ else None
364
+ ),
365
+ validationSetId=validation_set_id,
366
+ filters=(
367
+ [filter._to_model() for filter in filters] if filters else None
368
+ ),
369
+ featureFlags=(
370
+ [setting._to_feature_flag() for setting in settings]
371
+ if settings
372
+ else None
373
+ ),
374
+ )
375
+ )
376
+
377
+ assert (
378
+ leaderboard_result.benchmark_id == self.id
379
+ ), "The leaderboard was not created for the correct benchmark."
380
+
381
+ logger.info("Leaderboard created with id %s", leaderboard_result.id)
382
+
383
+ return RapidataLeaderboard(
384
+ name,
385
+ instruction,
386
+ show_prompt,
387
+ show_prompt_asset,
388
+ inverse_ranking,
389
+ leaderboard_result.response_budget,
390
+ leaderboard_result.min_responses,
391
+ self.id,
392
+ leaderboard_result.id,
393
+ self._openapi_service,
394
+ )
395
+
396
+ def evaluate_model(
397
+ self,
398
+ name: str,
399
+ media: list[str],
400
+ identifiers: list[str] | None = None,
401
+ prompts: list[str] | None = None,
402
+ ) -> None:
403
+ """
404
+ Evaluates a model on the benchmark across all leaderboards.
405
+
406
+ prompts or identifiers must be provided to match the media.
407
+
408
+ Args:
409
+ name: The name of the model.
410
+ media: The generated images/videos that will be used to evaluate the model.
411
+ identifiers: The identifiers that correspond to the media. The order of the identifiers must match the order of the media.\n
412
+ The identifiers that are used must be registered for the benchmark. To see the registered identifiers, use the identifiers property.
413
+ prompts: The prompts that correspond to the media. The order of the prompts must match the order of the media.
414
+ """
415
+ from rapidata.api_client.models.create_benchmark_participant_model import (
416
+ CreateBenchmarkParticipantModel,
417
+ )
418
+ from rapidata.rapidata_client.benchmark.participant._participant import (
419
+ BenchmarkParticipant,
420
+ )
421
+
422
+ with tracer.start_as_current_span("evaluate_model"):
423
+ if not media:
424
+ raise ValueError("Media must be a non-empty list of strings")
425
+
426
+ if not identifiers and not prompts:
427
+ raise ValueError("Identifiers or prompts must be provided.")
428
+
429
+ if identifiers and prompts:
430
+ raise ValueError(
431
+ "Identifiers and prompts cannot be provided at the same time. Use one or the other."
432
+ )
433
+
434
+ if not identifiers:
435
+ assert prompts is not None
436
+ identifiers = prompts
437
+
438
+ if len(media) != len(identifiers):
439
+ raise ValueError(
440
+ "Media and identifiers/prompts must have the same length"
441
+ )
442
+
443
+ if not all(identifier in self.identifiers for identifier in identifiers):
444
+ raise ValueError(
445
+ "All identifiers/prompts must be in the registered identifiers/prompts list. To see the registered identifiers/prompts, use the identifiers/prompts property."
446
+ )
447
+
448
+ participant_result = self._openapi_service.benchmark_api.benchmark_benchmark_id_participants_post(
449
+ benchmark_id=self.id,
450
+ create_benchmark_participant_model=CreateBenchmarkParticipantModel(
451
+ name=name,
452
+ ),
453
+ )
454
+
455
+ logger.info(f"Participant created: {participant_result.participant_id}")
456
+
457
+ participant = BenchmarkParticipant(
458
+ name, participant_result.participant_id, self._openapi_service
459
+ )
460
+
461
+ with tracer.start_as_current_span("upload_media_for_participant"):
462
+ logger.info(
463
+ f"Uploading {len(media)} media assets to participant {participant.id}"
464
+ )
465
+
466
+ successful_uploads, failed_uploads = participant.upload_media(
467
+ media,
468
+ identifiers,
469
+ )
470
+
471
+ total_uploads = len(media)
472
+ success_rate = (
473
+ (len(successful_uploads) / total_uploads * 100)
474
+ if total_uploads > 0
475
+ else 0
476
+ )
477
+ logger.info(
478
+ f"Upload complete: {len(successful_uploads)} successful, {len(failed_uploads)} failed ({success_rate:.1f}% success rate)"
479
+ )
480
+
481
+ if failed_uploads:
482
+ logger.error(f"Failed uploads for media: {failed_uploads}")
483
+ logger.warning(
484
+ "Some uploads failed. The model evaluation may be incomplete."
485
+ )
486
+
487
+ if len(successful_uploads) == 0:
488
+ raise RuntimeError(
489
+ "No uploads were successful. The model evaluation will not be completed."
490
+ )
491
+
492
+ self._openapi_service.participant_api.participants_participant_id_submit_post(
493
+ participant_id=participant_result.participant_id
494
+ )
495
+
496
+ def view(self) -> None:
497
+ """
498
+ Views the benchmark.
499
+ """
500
+
501
+ logger.info("Opening benchmark page in browser...")
502
+ could_open_browser = webbrowser.open(self.__benchmark_page)
503
+ if not could_open_browser:
504
+ encoded_url = urllib.parse.quote(
505
+ self.__benchmark_page, safe="%/:=&?~#+!$,;'@()*[]"
506
+ )
507
+ managed_print(
508
+ Fore.RED
509
+ + f"Please open this URL in your browser: '{encoded_url}'"
510
+ + Fore.RESET
511
+ )
512
+
513
+ def get_overall_standings(self, tags: Optional[list[str]] = None) -> pd.DataFrame:
514
+ """
515
+ Returns an aggregated elo table of all leaderboards in the benchmark.
516
+ """
517
+ import pandas as pd
518
+
519
+ with tracer.start_as_current_span("get_overall_standings"):
520
+ participants = self._openapi_service.benchmark_api.benchmark_benchmark_id_standings_get(
521
+ benchmark_id=self.id,
522
+ tags=tags,
523
+ )
524
+
525
+ standings = []
526
+ for participant in participants.items:
527
+ standings.append(
528
+ {
529
+ "name": participant.name,
530
+ "wins": participant.wins,
531
+ "total_matches": participant.total_matches,
532
+ "score": (
533
+ round(participant.score, 2)
534
+ if participant.score is not None
535
+ else None
536
+ ),
537
+ }
538
+ )
539
+
540
+ return pd.DataFrame(standings)
541
+
542
+ def __str__(self) -> str:
543
+ return f"RapidataBenchmark(name={self.name}, id={self.id})"
544
+
545
+ def __repr__(self) -> str:
546
+ return self.__str__()