rapidata 2.37.0__py3-none-any.whl → 3.0.0a8__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of rapidata might be problematic. Click here for more details.

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