orca-sdk 0.0.97__py3-none-any.whl → 0.0.100__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 (299) hide show
  1. orca_sdk/__init__.py +1 -0
  2. orca_sdk/_shared/__init__.py +1 -0
  3. orca_sdk/_utils/analysis_ui.py +5 -5
  4. orca_sdk/_utils/auth.py +23 -33
  5. orca_sdk/_utils/pagination.py +126 -0
  6. orca_sdk/_utils/pagination_test.py +132 -0
  7. orca_sdk/classification_model.py +188 -126
  8. orca_sdk/classification_model_test.py +57 -8
  9. orca_sdk/client.py +3563 -0
  10. orca_sdk/conftest.py +10 -0
  11. orca_sdk/credentials.py +59 -21
  12. orca_sdk/credentials_test.py +20 -0
  13. orca_sdk/datasource.py +80 -93
  14. orca_sdk/datasource_test.py +41 -7
  15. orca_sdk/embedding_model.py +225 -71
  16. orca_sdk/embedding_model_test.py +27 -36
  17. orca_sdk/job.py +49 -45
  18. orca_sdk/job_test.py +16 -0
  19. orca_sdk/memoryset.py +340 -353
  20. orca_sdk/memoryset_test.py +7 -11
  21. orca_sdk/regression_model.py +120 -111
  22. orca_sdk/regression_model_test.py +15 -0
  23. orca_sdk/telemetry.py +162 -139
  24. {orca_sdk-0.0.97.dist-info → orca_sdk-0.0.100.dist-info}/METADATA +2 -5
  25. orca_sdk-0.0.100.dist-info/RECORD +40 -0
  26. orca_sdk/_generated_api_client/__init__.py +0 -3
  27. orca_sdk/_generated_api_client/api/__init__.py +0 -307
  28. orca_sdk/_generated_api_client/api/auth/__init__.py +0 -0
  29. orca_sdk/_generated_api_client/api/auth/check_authentication_auth_get.py +0 -128
  30. orca_sdk/_generated_api_client/api/auth/create_api_key_auth_api_key_post.py +0 -170
  31. orca_sdk/_generated_api_client/api/auth/create_org_plan_auth_org_plan_post.py +0 -168
  32. orca_sdk/_generated_api_client/api/auth/delete_api_key_auth_api_key_name_or_id_delete.py +0 -156
  33. orca_sdk/_generated_api_client/api/auth/delete_org_auth_org_delete.py +0 -130
  34. orca_sdk/_generated_api_client/api/auth/get_org_plan_auth_org_plan_get.py +0 -122
  35. orca_sdk/_generated_api_client/api/auth/list_api_keys_auth_api_key_get.py +0 -127
  36. orca_sdk/_generated_api_client/api/auth/update_org_plan_auth_org_plan_put.py +0 -168
  37. orca_sdk/_generated_api_client/api/classification_model/__init__.py +0 -0
  38. orca_sdk/_generated_api_client/api/classification_model/create_classification_model_classification_model_post.py +0 -170
  39. orca_sdk/_generated_api_client/api/classification_model/delete_classification_model_classification_model_name_or_id_delete.py +0 -156
  40. orca_sdk/_generated_api_client/api/classification_model/delete_classification_model_evaluation_classification_model_model_name_or_id_evaluation_task_id_delete.py +0 -168
  41. orca_sdk/_generated_api_client/api/classification_model/evaluate_classification_model_classification_model_model_name_or_id_evaluation_post.py +0 -183
  42. orca_sdk/_generated_api_client/api/classification_model/get_classification_model_classification_model_name_or_id_get.py +0 -156
  43. orca_sdk/_generated_api_client/api/classification_model/get_classification_model_evaluation_classification_model_model_name_or_id_evaluation_task_id_get.py +0 -170
  44. orca_sdk/_generated_api_client/api/classification_model/list_classification_model_evaluations_classification_model_model_name_or_id_evaluation_get.py +0 -161
  45. orca_sdk/_generated_api_client/api/classification_model/list_classification_models_classification_model_get.py +0 -127
  46. orca_sdk/_generated_api_client/api/classification_model/predict_label_gpu_classification_model_name_or_id_prediction_post.py +0 -190
  47. orca_sdk/_generated_api_client/api/classification_model/update_classification_model_classification_model_name_or_id_patch.py +0 -183
  48. orca_sdk/_generated_api_client/api/datasource/__init__.py +0 -0
  49. orca_sdk/_generated_api_client/api/datasource/create_datasource_from_content_datasource_post.py +0 -224
  50. orca_sdk/_generated_api_client/api/datasource/create_datasource_from_files_datasource_upload_post.py +0 -229
  51. orca_sdk/_generated_api_client/api/datasource/create_embedding_evaluation_datasource_name_or_id_embedding_evaluation_post.py +0 -183
  52. orca_sdk/_generated_api_client/api/datasource/delete_datasource_datasource_name_or_id_delete.py +0 -156
  53. orca_sdk/_generated_api_client/api/datasource/download_datasource_datasource_name_or_id_download_get.py +0 -172
  54. orca_sdk/_generated_api_client/api/datasource/get_datasource_datasource_name_or_id_get.py +0 -156
  55. orca_sdk/_generated_api_client/api/datasource/get_embedding_evaluation_datasource_name_or_id_embedding_evaluation_task_id_get.py +0 -169
  56. orca_sdk/_generated_api_client/api/datasource/list_datasources_datasource_get.py +0 -127
  57. orca_sdk/_generated_api_client/api/datasource/list_embedding_evaluations_datasource_name_or_id_embedding_evaluation_get.py +0 -235
  58. orca_sdk/_generated_api_client/api/default/__init__.py +0 -0
  59. orca_sdk/_generated_api_client/api/default/healthcheck_get.py +0 -118
  60. orca_sdk/_generated_api_client/api/default/healthcheck_gpu_get.py +0 -118
  61. orca_sdk/_generated_api_client/api/finetuned_embedding_model/__init__.py +0 -0
  62. orca_sdk/_generated_api_client/api/finetuned_embedding_model/create_finetuned_embedding_model_finetuned_embedding_model_post.py +0 -168
  63. orca_sdk/_generated_api_client/api/finetuned_embedding_model/delete_finetuned_embedding_model_finetuned_embedding_model_name_or_id_delete.py +0 -156
  64. orca_sdk/_generated_api_client/api/finetuned_embedding_model/embed_with_finetuned_model_gpu_finetuned_embedding_model_name_or_id_embedding_post.py +0 -189
  65. orca_sdk/_generated_api_client/api/finetuned_embedding_model/get_finetuned_embedding_model_finetuned_embedding_model_name_or_id_get.py +0 -156
  66. orca_sdk/_generated_api_client/api/finetuned_embedding_model/list_finetuned_embedding_models_finetuned_embedding_model_get.py +0 -127
  67. orca_sdk/_generated_api_client/api/memoryset/__init__.py +0 -0
  68. orca_sdk/_generated_api_client/api/memoryset/analyze_memoryset_memoryset_name_or_id_analysis_post.py +0 -183
  69. orca_sdk/_generated_api_client/api/memoryset/batch_delete_memoryset_batch_delete_memoryset_post.py +0 -168
  70. orca_sdk/_generated_api_client/api/memoryset/clone_memoryset_memoryset_name_or_id_clone_post.py +0 -181
  71. orca_sdk/_generated_api_client/api/memoryset/create_memoryset_memoryset_post.py +0 -168
  72. orca_sdk/_generated_api_client/api/memoryset/delete_memories_memoryset_name_or_id_memories_delete_post.py +0 -181
  73. orca_sdk/_generated_api_client/api/memoryset/delete_memory_memoryset_name_or_id_memory_memory_id_delete.py +0 -167
  74. orca_sdk/_generated_api_client/api/memoryset/delete_memoryset_memoryset_name_or_id_delete.py +0 -156
  75. orca_sdk/_generated_api_client/api/memoryset/get_analysis_memoryset_name_or_id_analysis_analysis_task_id_get.py +0 -169
  76. orca_sdk/_generated_api_client/api/memoryset/get_memories_memoryset_name_or_id_memories_get_post.py +0 -210
  77. orca_sdk/_generated_api_client/api/memoryset/get_memory_memoryset_name_or_id_memory_memory_id_get.py +0 -186
  78. orca_sdk/_generated_api_client/api/memoryset/get_memoryset_memoryset_name_or_id_get.py +0 -156
  79. orca_sdk/_generated_api_client/api/memoryset/insert_memories_gpu_memoryset_name_or_id_memory_post.py +0 -188
  80. orca_sdk/_generated_api_client/api/memoryset/list_analyses_memoryset_name_or_id_analysis_get.py +0 -235
  81. orca_sdk/_generated_api_client/api/memoryset/list_memorysets_memoryset_get.py +0 -180
  82. orca_sdk/_generated_api_client/api/memoryset/memoryset_lookup_gpu_memoryset_name_or_id_lookup_post.py +0 -212
  83. orca_sdk/_generated_api_client/api/memoryset/potential_duplicate_groups_memoryset_name_or_id_potential_duplicate_groups_get.py +0 -195
  84. orca_sdk/_generated_api_client/api/memoryset/query_memoryset_memoryset_name_or_id_memories_post.py +0 -210
  85. orca_sdk/_generated_api_client/api/memoryset/suggest_cascading_edits_memoryset_name_or_id_memory_memory_id_cascading_edits_post.py +0 -233
  86. orca_sdk/_generated_api_client/api/memoryset/update_memories_gpu_memoryset_name_or_id_memories_patch.py +0 -216
  87. orca_sdk/_generated_api_client/api/memoryset/update_memory_gpu_memoryset_name_or_id_memory_patch.py +0 -205
  88. orca_sdk/_generated_api_client/api/memoryset/update_memoryset_memoryset_name_or_id_patch.py +0 -183
  89. orca_sdk/_generated_api_client/api/predictive_model/__init__.py +0 -0
  90. orca_sdk/_generated_api_client/api/predictive_model/list_predictive_models_predictive_model_get.py +0 -150
  91. orca_sdk/_generated_api_client/api/pretrained_embedding_model/__init__.py +0 -0
  92. orca_sdk/_generated_api_client/api/pretrained_embedding_model/embed_with_pretrained_model_gpu_pretrained_embedding_model_model_name_embedding_post.py +0 -192
  93. orca_sdk/_generated_api_client/api/pretrained_embedding_model/get_pretrained_embedding_model_pretrained_embedding_model_model_name_get.py +0 -161
  94. orca_sdk/_generated_api_client/api/pretrained_embedding_model/list_pretrained_embedding_models_pretrained_embedding_model_get.py +0 -127
  95. orca_sdk/_generated_api_client/api/regression_model/__init__.py +0 -0
  96. orca_sdk/_generated_api_client/api/regression_model/create_regression_model_regression_model_post.py +0 -170
  97. orca_sdk/_generated_api_client/api/regression_model/delete_regression_model_evaluation_regression_model_model_name_or_id_evaluation_task_id_delete.py +0 -168
  98. orca_sdk/_generated_api_client/api/regression_model/delete_regression_model_regression_model_name_or_id_delete.py +0 -154
  99. orca_sdk/_generated_api_client/api/regression_model/evaluate_regression_model_regression_model_model_name_or_id_evaluation_post.py +0 -183
  100. orca_sdk/_generated_api_client/api/regression_model/get_regression_model_evaluation_regression_model_model_name_or_id_evaluation_task_id_get.py +0 -170
  101. orca_sdk/_generated_api_client/api/regression_model/get_regression_model_regression_model_name_or_id_get.py +0 -156
  102. orca_sdk/_generated_api_client/api/regression_model/list_regression_model_evaluations_regression_model_model_name_or_id_evaluation_get.py +0 -161
  103. orca_sdk/_generated_api_client/api/regression_model/list_regression_models_regression_model_get.py +0 -127
  104. orca_sdk/_generated_api_client/api/regression_model/predict_score_gpu_regression_model_name_or_id_prediction_post.py +0 -190
  105. orca_sdk/_generated_api_client/api/regression_model/update_regression_model_regression_model_name_or_id_patch.py +0 -183
  106. orca_sdk/_generated_api_client/api/task/__init__.py +0 -0
  107. orca_sdk/_generated_api_client/api/task/abort_task_task_task_id_abort_delete.py +0 -154
  108. orca_sdk/_generated_api_client/api/task/get_task_status_task_task_id_status_get.py +0 -156
  109. orca_sdk/_generated_api_client/api/task/get_task_task_task_id_get.py +0 -156
  110. orca_sdk/_generated_api_client/api/task/list_tasks_task_get.py +0 -288
  111. orca_sdk/_generated_api_client/api/telemetry/__init__.py +0 -0
  112. orca_sdk/_generated_api_client/api/telemetry/count_predictions_telemetry_prediction_count_post.py +0 -168
  113. orca_sdk/_generated_api_client/api/telemetry/drop_feedback_category_with_data_telemetry_feedback_category_name_or_id_delete.py +0 -162
  114. orca_sdk/_generated_api_client/api/telemetry/explain_prediction_telemetry_prediction_prediction_id_explanation_get.py +0 -182
  115. orca_sdk/_generated_api_client/api/telemetry/generate_memory_suggestions_telemetry_prediction_prediction_id_memory_suggestions_post.py +0 -239
  116. orca_sdk/_generated_api_client/api/telemetry/get_action_recommendation_telemetry_prediction_prediction_id_action_get.py +0 -192
  117. orca_sdk/_generated_api_client/api/telemetry/get_feedback_category_telemetry_feedback_category_name_or_id_get.py +0 -156
  118. orca_sdk/_generated_api_client/api/telemetry/get_prediction_telemetry_prediction_prediction_id_get.py +0 -180
  119. orca_sdk/_generated_api_client/api/telemetry/list_feedback_categories_telemetry_feedback_category_get.py +0 -127
  120. orca_sdk/_generated_api_client/api/telemetry/list_memories_with_feedback_telemetry_memories_post.py +0 -198
  121. orca_sdk/_generated_api_client/api/telemetry/list_predictions_telemetry_prediction_post.py +0 -198
  122. orca_sdk/_generated_api_client/api/telemetry/record_prediction_feedback_telemetry_prediction_feedback_put.py +0 -171
  123. orca_sdk/_generated_api_client/api/telemetry/update_prediction_telemetry_prediction_prediction_id_patch.py +0 -181
  124. orca_sdk/_generated_api_client/client.py +0 -216
  125. orca_sdk/_generated_api_client/errors.py +0 -38
  126. orca_sdk/_generated_api_client/models/__init__.py +0 -345
  127. orca_sdk/_generated_api_client/models/action_recommendation.py +0 -82
  128. orca_sdk/_generated_api_client/models/action_recommendation_action.py +0 -11
  129. orca_sdk/_generated_api_client/models/add_memory_recommendations.py +0 -85
  130. orca_sdk/_generated_api_client/models/add_memory_suggestion.py +0 -79
  131. orca_sdk/_generated_api_client/models/analyze_neighbor_labels_result.py +0 -116
  132. orca_sdk/_generated_api_client/models/api_key_metadata.py +0 -137
  133. orca_sdk/_generated_api_client/models/api_key_metadata_scope_item.py +0 -9
  134. orca_sdk/_generated_api_client/models/base_label_prediction_result.py +0 -130
  135. orca_sdk/_generated_api_client/models/base_model.py +0 -55
  136. orca_sdk/_generated_api_client/models/base_score_prediction_result.py +0 -108
  137. orca_sdk/_generated_api_client/models/body_create_datasource_from_files_datasource_upload_post.py +0 -145
  138. orca_sdk/_generated_api_client/models/cascade_edit_suggestions_request.py +0 -154
  139. orca_sdk/_generated_api_client/models/cascading_edit_suggestion.py +0 -92
  140. orca_sdk/_generated_api_client/models/class_representatives.py +0 -92
  141. orca_sdk/_generated_api_client/models/classification_evaluation_request.py +0 -148
  142. orca_sdk/_generated_api_client/models/classification_metrics.py +0 -259
  143. orca_sdk/_generated_api_client/models/classification_model_metadata.py +0 -227
  144. orca_sdk/_generated_api_client/models/classification_prediction_request.py +0 -220
  145. orca_sdk/_generated_api_client/models/clone_memoryset_request.py +0 -210
  146. orca_sdk/_generated_api_client/models/cluster_metrics.py +0 -78
  147. orca_sdk/_generated_api_client/models/column_info.py +0 -145
  148. orca_sdk/_generated_api_client/models/column_type.py +0 -14
  149. orca_sdk/_generated_api_client/models/constraint_violation_error_response.py +0 -81
  150. orca_sdk/_generated_api_client/models/constraint_violation_error_response_status_code.py +0 -8
  151. orca_sdk/_generated_api_client/models/count_predictions_request.py +0 -195
  152. orca_sdk/_generated_api_client/models/create_api_key_request.py +0 -120
  153. orca_sdk/_generated_api_client/models/create_api_key_request_scope_item.py +0 -9
  154. orca_sdk/_generated_api_client/models/create_api_key_response.py +0 -145
  155. orca_sdk/_generated_api_client/models/create_api_key_response_scope_item.py +0 -9
  156. orca_sdk/_generated_api_client/models/create_classification_model_request.py +0 -237
  157. orca_sdk/_generated_api_client/models/create_datasource_from_content_request.py +0 -101
  158. orca_sdk/_generated_api_client/models/create_memoryset_request.py +0 -365
  159. orca_sdk/_generated_api_client/models/create_memoryset_request_index_params.py +0 -66
  160. orca_sdk/_generated_api_client/models/create_memoryset_request_index_type.py +0 -13
  161. orca_sdk/_generated_api_client/models/create_org_plan_request.py +0 -73
  162. orca_sdk/_generated_api_client/models/create_org_plan_request_tier.py +0 -11
  163. orca_sdk/_generated_api_client/models/create_regression_model_request.py +0 -157
  164. orca_sdk/_generated_api_client/models/datasource_metadata.py +0 -156
  165. orca_sdk/_generated_api_client/models/delete_memories_request.py +0 -70
  166. orca_sdk/_generated_api_client/models/delete_memorysets_request.py +0 -70
  167. orca_sdk/_generated_api_client/models/embed_request.py +0 -155
  168. orca_sdk/_generated_api_client/models/embedding_evaluation_payload.py +0 -205
  169. orca_sdk/_generated_api_client/models/embedding_evaluation_request.py +0 -197
  170. orca_sdk/_generated_api_client/models/embedding_evaluation_response.py +0 -158
  171. orca_sdk/_generated_api_client/models/embedding_evaluation_result.py +0 -86
  172. orca_sdk/_generated_api_client/models/embedding_finetuning_method.py +0 -9
  173. orca_sdk/_generated_api_client/models/embedding_model_result.py +0 -123
  174. orca_sdk/_generated_api_client/models/evaluation_response.py +0 -153
  175. orca_sdk/_generated_api_client/models/evaluation_response_classification_metrics.py +0 -140
  176. orca_sdk/_generated_api_client/models/evaluation_response_regression_metrics.py +0 -140
  177. orca_sdk/_generated_api_client/models/feedback_metrics.py +0 -85
  178. orca_sdk/_generated_api_client/models/feedback_type.py +0 -9
  179. orca_sdk/_generated_api_client/models/filter_item.py +0 -239
  180. orca_sdk/_generated_api_client/models/filter_item_field_type_0_item.py +0 -17
  181. orca_sdk/_generated_api_client/models/filter_item_field_type_1_item_type_0.py +0 -8
  182. orca_sdk/_generated_api_client/models/filter_item_field_type_2_item_type_0.py +0 -8
  183. orca_sdk/_generated_api_client/models/filter_item_field_type_2_item_type_1.py +0 -22
  184. orca_sdk/_generated_api_client/models/filter_item_op.py +0 -16
  185. orca_sdk/_generated_api_client/models/finetune_embedding_model_request.py +0 -259
  186. orca_sdk/_generated_api_client/models/finetune_embedding_model_request_training_args.py +0 -66
  187. orca_sdk/_generated_api_client/models/finetuned_embedding_model_metadata.py +0 -166
  188. orca_sdk/_generated_api_client/models/get_memories_request.py +0 -70
  189. orca_sdk/_generated_api_client/models/http_validation_error.py +0 -86
  190. orca_sdk/_generated_api_client/models/internal_server_error_response.py +0 -81
  191. orca_sdk/_generated_api_client/models/internal_server_error_response_status_code.py +0 -8
  192. orca_sdk/_generated_api_client/models/label_class_metrics.py +0 -108
  193. orca_sdk/_generated_api_client/models/label_prediction_memory_lookup.py +0 -210
  194. orca_sdk/_generated_api_client/models/label_prediction_memory_lookup_metadata.py +0 -68
  195. orca_sdk/_generated_api_client/models/label_prediction_with_memories_and_feedback.py +0 -288
  196. orca_sdk/_generated_api_client/models/labeled_memory.py +0 -186
  197. orca_sdk/_generated_api_client/models/labeled_memory_insert.py +0 -128
  198. orca_sdk/_generated_api_client/models/labeled_memory_insert_metadata.py +0 -68
  199. orca_sdk/_generated_api_client/models/labeled_memory_lookup.py +0 -194
  200. orca_sdk/_generated_api_client/models/labeled_memory_lookup_metadata.py +0 -68
  201. orca_sdk/_generated_api_client/models/labeled_memory_metadata.py +0 -68
  202. orca_sdk/_generated_api_client/models/labeled_memory_update.py +0 -171
  203. orca_sdk/_generated_api_client/models/labeled_memory_update_metadata_type_0.py +0 -68
  204. orca_sdk/_generated_api_client/models/labeled_memory_with_feedback_metrics.py +0 -207
  205. orca_sdk/_generated_api_client/models/labeled_memory_with_feedback_metrics_feedback_metrics.py +0 -68
  206. orca_sdk/_generated_api_client/models/labeled_memory_with_feedback_metrics_metadata.py +0 -68
  207. orca_sdk/_generated_api_client/models/list_memories_request.py +0 -104
  208. orca_sdk/_generated_api_client/models/list_predictions_request.py +0 -319
  209. orca_sdk/_generated_api_client/models/lookup_request.py +0 -101
  210. orca_sdk/_generated_api_client/models/lookup_score_metrics.py +0 -94
  211. orca_sdk/_generated_api_client/models/memory_metrics.py +0 -263
  212. orca_sdk/_generated_api_client/models/memory_type.py +0 -9
  213. orca_sdk/_generated_api_client/models/memoryset_analysis_configs.py +0 -245
  214. orca_sdk/_generated_api_client/models/memoryset_analysis_request.py +0 -105
  215. orca_sdk/_generated_api_client/models/memoryset_analysis_response.py +0 -182
  216. orca_sdk/_generated_api_client/models/memoryset_class_patterns_analysis_config.py +0 -79
  217. orca_sdk/_generated_api_client/models/memoryset_class_patterns_metrics.py +0 -138
  218. orca_sdk/_generated_api_client/models/memoryset_cluster_analysis_config.py +0 -202
  219. orca_sdk/_generated_api_client/models/memoryset_cluster_analysis_config_clustering_method.py +0 -9
  220. orca_sdk/_generated_api_client/models/memoryset_cluster_analysis_config_partitioning_method.py +0 -10
  221. orca_sdk/_generated_api_client/models/memoryset_cluster_metrics.py +0 -100
  222. orca_sdk/_generated_api_client/models/memoryset_duplicate_analysis_config.py +0 -70
  223. orca_sdk/_generated_api_client/models/memoryset_duplicate_metrics.py +0 -70
  224. orca_sdk/_generated_api_client/models/memoryset_label_analysis_config.py +0 -70
  225. orca_sdk/_generated_api_client/models/memoryset_label_metrics.py +0 -116
  226. orca_sdk/_generated_api_client/models/memoryset_metadata.py +0 -333
  227. orca_sdk/_generated_api_client/models/memoryset_metadata_index_params.py +0 -55
  228. orca_sdk/_generated_api_client/models/memoryset_metadata_index_type.py +0 -13
  229. orca_sdk/_generated_api_client/models/memoryset_metrics.py +0 -265
  230. orca_sdk/_generated_api_client/models/memoryset_neighbor_analysis_config.py +0 -83
  231. orca_sdk/_generated_api_client/models/memoryset_neighbor_metrics.py +0 -76
  232. orca_sdk/_generated_api_client/models/memoryset_neighbor_metrics_lookup_score_metrics.py +0 -68
  233. orca_sdk/_generated_api_client/models/memoryset_projection_analysis_config.py +0 -79
  234. orca_sdk/_generated_api_client/models/memoryset_projection_metrics.py +0 -55
  235. orca_sdk/_generated_api_client/models/memoryset_update.py +0 -121
  236. orca_sdk/_generated_api_client/models/not_found_error_response.py +0 -99
  237. orca_sdk/_generated_api_client/models/not_found_error_response_resource_type_0.py +0 -23
  238. orca_sdk/_generated_api_client/models/not_found_error_response_status_code.py +0 -8
  239. orca_sdk/_generated_api_client/models/org_plan.py +0 -99
  240. orca_sdk/_generated_api_client/models/org_plan_tier.py +0 -11
  241. orca_sdk/_generated_api_client/models/paginated_task.py +0 -108
  242. orca_sdk/_generated_api_client/models/paginated_union_labeled_memory_with_feedback_metrics_scored_memory_with_feedback_metrics.py +0 -135
  243. orca_sdk/_generated_api_client/models/pr_curve.py +0 -86
  244. orca_sdk/_generated_api_client/models/prediction_feedback.py +0 -157
  245. orca_sdk/_generated_api_client/models/prediction_feedback_category.py +0 -115
  246. orca_sdk/_generated_api_client/models/prediction_feedback_request.py +0 -122
  247. orca_sdk/_generated_api_client/models/prediction_feedback_result.py +0 -102
  248. orca_sdk/_generated_api_client/models/prediction_sort_item_item_type_0.py +0 -10
  249. orca_sdk/_generated_api_client/models/prediction_sort_item_item_type_1.py +0 -9
  250. orca_sdk/_generated_api_client/models/predictive_model_update.py +0 -111
  251. orca_sdk/_generated_api_client/models/pretrained_embedding_model_metadata.py +0 -115
  252. orca_sdk/_generated_api_client/models/pretrained_embedding_model_name.py +0 -17
  253. orca_sdk/_generated_api_client/models/rac_head_type.py +0 -11
  254. orca_sdk/_generated_api_client/models/rar_head_type.py +0 -8
  255. orca_sdk/_generated_api_client/models/regression_evaluation_request.py +0 -148
  256. orca_sdk/_generated_api_client/models/regression_metrics.py +0 -172
  257. orca_sdk/_generated_api_client/models/regression_model_metadata.py +0 -191
  258. orca_sdk/_generated_api_client/models/regression_prediction_request.py +0 -195
  259. orca_sdk/_generated_api_client/models/roc_curve.py +0 -86
  260. orca_sdk/_generated_api_client/models/score_prediction_memory_lookup.py +0 -196
  261. orca_sdk/_generated_api_client/models/score_prediction_memory_lookup_metadata.py +0 -68
  262. orca_sdk/_generated_api_client/models/score_prediction_with_memories_and_feedback.py +0 -252
  263. orca_sdk/_generated_api_client/models/scored_memory.py +0 -172
  264. orca_sdk/_generated_api_client/models/scored_memory_insert.py +0 -128
  265. orca_sdk/_generated_api_client/models/scored_memory_insert_metadata.py +0 -68
  266. orca_sdk/_generated_api_client/models/scored_memory_lookup.py +0 -180
  267. orca_sdk/_generated_api_client/models/scored_memory_lookup_metadata.py +0 -68
  268. orca_sdk/_generated_api_client/models/scored_memory_metadata.py +0 -68
  269. orca_sdk/_generated_api_client/models/scored_memory_update.py +0 -171
  270. orca_sdk/_generated_api_client/models/scored_memory_update_metadata_type_0.py +0 -68
  271. orca_sdk/_generated_api_client/models/scored_memory_with_feedback_metrics.py +0 -193
  272. orca_sdk/_generated_api_client/models/scored_memory_with_feedback_metrics_feedback_metrics.py +0 -68
  273. orca_sdk/_generated_api_client/models/scored_memory_with_feedback_metrics_metadata.py +0 -68
  274. orca_sdk/_generated_api_client/models/service_unavailable_error_response.py +0 -81
  275. orca_sdk/_generated_api_client/models/service_unavailable_error_response_status_code.py +0 -8
  276. orca_sdk/_generated_api_client/models/task.py +0 -198
  277. orca_sdk/_generated_api_client/models/task_status.py +0 -14
  278. orca_sdk/_generated_api_client/models/task_status_info.py +0 -133
  279. orca_sdk/_generated_api_client/models/telemetry_field_type_0_item_type_0.py +0 -8
  280. orca_sdk/_generated_api_client/models/telemetry_field_type_0_item_type_2.py +0 -9
  281. orca_sdk/_generated_api_client/models/telemetry_field_type_1_item_type_0.py +0 -8
  282. orca_sdk/_generated_api_client/models/telemetry_field_type_1_item_type_1.py +0 -8
  283. orca_sdk/_generated_api_client/models/telemetry_filter_item.py +0 -217
  284. orca_sdk/_generated_api_client/models/telemetry_filter_item_op.py +0 -15
  285. orca_sdk/_generated_api_client/models/telemetry_memories_request.py +0 -181
  286. orca_sdk/_generated_api_client/models/telemetry_sort_options.py +0 -185
  287. orca_sdk/_generated_api_client/models/telemetry_sort_options_direction.py +0 -9
  288. orca_sdk/_generated_api_client/models/unauthenticated_error_response.py +0 -73
  289. orca_sdk/_generated_api_client/models/unauthenticated_error_response_status_code.py +0 -8
  290. orca_sdk/_generated_api_client/models/unauthorized_error_response.py +0 -81
  291. orca_sdk/_generated_api_client/models/unauthorized_error_response_status_code.py +0 -8
  292. orca_sdk/_generated_api_client/models/update_org_plan_request.py +0 -73
  293. orca_sdk/_generated_api_client/models/update_org_plan_request_tier.py +0 -11
  294. orca_sdk/_generated_api_client/models/update_prediction_request.py +0 -133
  295. orca_sdk/_generated_api_client/models/validation_error.py +0 -99
  296. orca_sdk/_generated_api_client/py.typed +0 -1
  297. orca_sdk/_generated_api_client/types.py +0 -56
  298. orca_sdk-0.0.97.dist-info/RECORD +0 -309
  299. {orca_sdk-0.0.97.dist-info → orca_sdk-0.0.100.dist-info}/WHEEL +0 -0
orca_sdk/telemetry.py CHANGED
@@ -1,49 +1,22 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import logging
4
- from abc import ABC, abstractmethod
4
+ import os
5
+ from abc import ABC
5
6
  from datetime import datetime
6
- from typing import (
7
- TYPE_CHECKING,
8
- Any,
9
- Generator,
10
- Iterable,
11
- Literal,
12
- Self,
13
- cast,
14
- overload,
15
- )
16
- from uuid import UUID
7
+ from typing import TYPE_CHECKING, Any, Iterable, Literal, Self, overload
17
8
 
18
- from orca_sdk._utils.common import UNSET
9
+ from httpx import Timeout
19
10
 
20
- from ._generated_api_client.api import (
21
- drop_feedback_category_with_data,
22
- get_prediction,
23
- list_feedback_categories,
24
- list_predictions,
25
- record_prediction_feedback,
26
- update_prediction,
27
- )
28
- from ._generated_api_client.api.telemetry.generate_memory_suggestions_telemetry_prediction_prediction_id_memory_suggestions_post import (
29
- sync as generate_memory_suggestions,
30
- )
31
- from ._generated_api_client.api.telemetry.get_action_recommendation_telemetry_prediction_prediction_id_action_get import (
32
- sync as get_action_recommendation,
33
- )
34
- from ._generated_api_client.client import get_client
35
- from ._generated_api_client.errors import get_error_for_response
36
- from ._generated_api_client.models import (
37
- FeedbackType,
11
+ from ._utils.common import UNSET
12
+ from .client import (
38
13
  LabelPredictionWithMemoriesAndFeedback,
39
- ListPredictionsRequest,
40
14
  PredictionFeedbackCategory,
41
15
  PredictionFeedbackRequest,
42
16
  ScorePredictionWithMemoriesAndFeedback,
43
17
  UpdatePredictionRequest,
18
+ orca_api,
44
19
  )
45
- from ._generated_api_client.types import UNSET as CLIENT_UNSET
46
- from ._utils.prediction_result_ui import inspect_prediction_result
47
20
  from .memoryset import (
48
21
  LabeledMemoryLookup,
49
22
  LabeledMemoryset,
@@ -55,6 +28,23 @@ if TYPE_CHECKING:
55
28
  from .classification_model import ClassificationModel
56
29
  from .regression_model import RegressionModel
57
30
 
31
+ TelemetryMode = Literal["off", "on", "sync", "async"]
32
+ """
33
+ Mode for saving telemetry. One of:
34
+
35
+ - `"off"`: Do not save telemetry
36
+ - `"on"`: Save telemetry asynchronously unless the `ORCA_SAVE_TELEMETRY_SYNCHRONOUSLY` environment variable is set.
37
+ - `"sync"`: Save telemetry synchronously
38
+ - `"async"`: Save telemetry asynchronously
39
+ """
40
+
41
+
42
+ def _get_telemetry_config(override: TelemetryMode | None = None) -> tuple[bool, bool]:
43
+ return (
44
+ override != "off",
45
+ os.getenv("ORCA_SAVE_TELEMETRY_SYNCHRONOUSLY", "0") != "0" or override == "sync",
46
+ )
47
+
58
48
 
59
49
  def _parse_feedback(feedback: dict[str, Any]) -> PredictionFeedbackRequest:
60
50
  category = feedback.get("category", None)
@@ -63,12 +53,15 @@ def _parse_feedback(feedback: dict[str, Any]) -> PredictionFeedbackRequest:
63
53
  prediction_id = feedback.get("prediction_id", None)
64
54
  if prediction_id is None:
65
55
  raise ValueError("`prediction_id` must be specified")
66
- return PredictionFeedbackRequest(
67
- prediction_id=prediction_id,
68
- category_name=category,
69
- value=feedback.get("value", CLIENT_UNSET),
70
- comment=feedback.get("comment", CLIENT_UNSET),
71
- )
56
+ output: PredictionFeedbackRequest = {
57
+ "prediction_id": prediction_id,
58
+ "category_name": category,
59
+ }
60
+ if "value" in feedback:
61
+ output["value"] = feedback["value"]
62
+ if "comment" in feedback:
63
+ output["comment"] = feedback["comment"]
64
+ return output
72
65
 
73
66
 
74
67
  class FeedbackCategory:
@@ -92,10 +85,10 @@ class FeedbackCategory:
92
85
  created_at: datetime
93
86
 
94
87
  def __init__(self, category: PredictionFeedbackCategory):
95
- self.id = category.id
96
- self.name = category.name
97
- self.value_type = bool if category.type == FeedbackType.BINARY else float
98
- self.created_at = category.created_at
88
+ self.id = category["id"]
89
+ self.name = category["name"]
90
+ self.value_type = bool if category["type"] == "BINARY" else float
91
+ self.created_at = datetime.fromisoformat(category["created_at"])
99
92
 
100
93
  @classmethod
101
94
  def all(cls) -> list[FeedbackCategory]:
@@ -105,7 +98,7 @@ class FeedbackCategory:
105
98
  Returns:
106
99
  List with information about all existing feedback categories.
107
100
  """
108
- return [FeedbackCategory(category) for category in list_feedback_categories()]
101
+ return [FeedbackCategory(category) for category in orca_api.GET("/telemetry/feedback_category")]
109
102
 
110
103
  @classmethod
111
104
  def drop(cls, name: str) -> None:
@@ -122,13 +115,43 @@ class FeedbackCategory:
122
115
  Raises:
123
116
  LookupError: If the category is not found.
124
117
  """
125
- drop_feedback_category_with_data(name)
118
+ orca_api.DELETE("/telemetry/feedback_category/{name_or_id}", params={"name_or_id": name})
126
119
  logging.info(f"Deleted feedback category {name} with all associated feedback")
127
120
 
128
121
  def __repr__(self):
129
122
  return "FeedbackCategory({" + f"name: {self.name}, " + f"value_type: {self.value_type}" + "})"
130
123
 
131
124
 
125
+ class AddMemorySuggestions:
126
+ suggestions: list[tuple[str, str]]
127
+ memoryset_id: str
128
+ model_id: str
129
+ prediction_id: str
130
+
131
+ def __init__(self, suggestions: list[tuple[str, str]], memoryset_id: str, model_id: str, prediction_id: str):
132
+ self.suggestions = suggestions
133
+ self.memoryset_id = memoryset_id
134
+ self.model_id = model_id
135
+ self.prediction_id = prediction_id
136
+
137
+ def __repr__(self):
138
+ return (
139
+ "AddMemorySuggestions({"
140
+ + f"suggestions: {self.suggestions}, "
141
+ + f"memoryset_id: {self.memoryset_id}, "
142
+ + f"model_id: {self.model_id}, "
143
+ + f"prediction_id: {self.prediction_id}"
144
+ + "})"
145
+ )
146
+
147
+ def apply(self) -> None:
148
+ memoryset = LabeledMemoryset.open(self.memoryset_id)
149
+ label_name_to_label = {label_name: label for label, label_name in enumerate(memoryset.label_names)}
150
+ memoryset.insert(
151
+ [{"value": suggestion[0], "label": label_name_to_label[suggestion[1]]} for suggestion in self.suggestions]
152
+ )
153
+
154
+
132
155
  class _Prediction(ABC):
133
156
  prediction_id: str | None
134
157
  confidence: float
@@ -165,55 +188,54 @@ class _Prediction(ABC):
165
188
  def _telemetry(self) -> LabelPredictionWithMemoriesAndFeedback | ScorePredictionWithMemoriesAndFeedback:
166
189
  # for internal use only, do not document
167
190
  if self.__telemetry is None:
168
- self.__telemetry = get_prediction(prediction_id=UUID(self.prediction_id))
191
+ if self.prediction_id is None:
192
+ raise ValueError("Cannot fetch telemetry with no prediction ID")
193
+ self.__telemetry = orca_api.GET(
194
+ "/telemetry/prediction/{prediction_id}", params={"prediction_id": self.prediction_id}
195
+ )
169
196
  return self.__telemetry
170
197
 
171
198
  @property
172
199
  def input_value(self) -> str:
173
200
  if self._input_value is not None:
174
201
  return self._input_value
175
- assert isinstance(self._telemetry.input_value, str)
176
- return self._telemetry.input_value
202
+ assert isinstance(self._telemetry["input_value"], str)
203
+ return self._telemetry["input_value"]
177
204
 
178
205
  @property
179
206
  def memory_lookups(self) -> list[LabeledMemoryLookup] | list[ScoredMemoryLookup]:
180
- match self._telemetry:
181
- case LabelPredictionWithMemoriesAndFeedback():
182
- return [
183
- LabeledMemoryLookup(self._telemetry.memoryset_id, lookup) for lookup in self._telemetry.memories
184
- ]
185
- case ScorePredictionWithMemoriesAndFeedback():
186
- return [ScoredMemoryLookup(self._telemetry.memoryset_id, lookup) for lookup in self._telemetry.memories]
207
+ if "label" in self._telemetry:
208
+ return [
209
+ LabeledMemoryLookup(self._telemetry["memoryset_id"], lookup) for lookup in self._telemetry["memories"]
210
+ ]
211
+ else:
212
+ return [
213
+ ScoredMemoryLookup(self._telemetry["memoryset_id"], lookup) for lookup in self._telemetry["memories"]
214
+ ]
187
215
 
188
216
  @property
189
217
  def feedback(self) -> dict[str, bool | float]:
190
218
  return {
191
- f.category_name: (
192
- f.value if f.category_type == FeedbackType.CONTINUOUS else True if f.value == 1 else False
219
+ f["category_name"]: (
220
+ f["value"] if f["category_type"] == "CONTINUOUS" else True if f["value"] == 1 else False
193
221
  )
194
- for f in self._telemetry.feedbacks
222
+ for f in self._telemetry["feedbacks"]
195
223
  }
196
224
 
197
225
  @property
198
226
  def tags(self) -> set[str]:
199
- return set(self._telemetry.tags)
200
-
201
- def _explanation_stream(self, refresh: bool = False) -> Generator[str, None, None]:
202
- httpx_client = get_client().get_httpx_client()
203
- url = f"/telemetry/prediction/{self.prediction_id}/explanation?refresh={refresh}"
204
- with httpx_client.stream("GET", url) as res:
205
- if res.status_code != 200:
206
- # Read the response body before raising the error
207
- res.read()
208
- raise get_error_for_response(res)
209
- for chunk in res.iter_text():
210
- yield chunk
227
+ return set(self._telemetry["tags"])
211
228
 
212
229
  @property
213
230
  def explanation(self) -> str:
214
- if self._telemetry.explanation is None:
215
- self._telemetry.explanation = "".join(self._explanation_stream())
216
- return self._telemetry.explanation
231
+ if self._telemetry["explanation"] is None:
232
+ self._telemetry["explanation"] = orca_api.GET(
233
+ "/telemetry/prediction/{prediction_id}/explanation",
234
+ params={"prediction_id": self._telemetry["prediction_id"]},
235
+ parse_as="text",
236
+ timeout=30,
237
+ )
238
+ return self._telemetry["explanation"]
217
239
 
218
240
  def explain(self, refresh: bool = False) -> None:
219
241
  """
@@ -222,11 +244,16 @@ class _Prediction(ABC):
222
244
  Params:
223
245
  refresh: Force the explanation agent to re-run even if an explanation already exists.
224
246
  """
225
- if not refresh and self._telemetry.explanation is not None:
226
- print(self._telemetry.explanation)
247
+ if not refresh and self._telemetry["explanation"] is not None:
248
+ print(self._telemetry["explanation"])
227
249
  else:
228
- for chunk in self._explanation_stream(refresh):
229
- print(chunk, end="")
250
+ with orca_api.stream(
251
+ "GET",
252
+ f"/telemetry/prediction/{self.prediction_id}/explanation?refresh={refresh}",
253
+ timeout=Timeout(connect=3, read=None),
254
+ ) as res:
255
+ for chunk in res.iter_text():
256
+ print(chunk, end="")
230
257
  print() # final newline
231
258
 
232
259
  @overload
@@ -295,34 +322,33 @@ class _Prediction(ABC):
295
322
  prediction: LabelPredictionWithMemoriesAndFeedback | ScorePredictionWithMemoriesAndFeedback,
296
323
  ) -> Self:
297
324
 
298
- if isinstance(prediction, LabelPredictionWithMemoriesAndFeedback):
299
- memoryset = LabeledMemoryset.open(prediction.memoryset_id)
300
- model = ClassificationModel.open(prediction.model_id)
301
- elif isinstance(prediction, ScorePredictionWithMemoriesAndFeedback):
302
- memoryset = ScoredMemoryset.open(prediction.memoryset_id)
303
- model = RegressionModel.open(prediction.model_id)
325
+ if "label" in prediction:
326
+ memoryset = LabeledMemoryset.open(prediction["memoryset_id"])
327
+ model = ClassificationModel.open(prediction["model_id"])
304
328
  else:
305
- raise ValueError(f"Invalid prediction type: {type(prediction)}")
329
+ memoryset = ScoredMemoryset.open(prediction["memoryset_id"])
330
+ model = RegressionModel.open(prediction["model_id"])
306
331
 
307
332
  return cls(
308
- prediction_id=prediction.prediction_id,
309
- label=getattr(prediction, "label", None),
310
- label_name=getattr(prediction, "label_name", None),
311
- score=getattr(prediction, "score", None),
312
- confidence=prediction.confidence,
313
- anomaly_score=prediction.anomaly_score,
333
+ prediction_id=prediction["prediction_id"],
334
+ label=prediction.get("label", None),
335
+ label_name=prediction.get("label_name", None),
336
+ score=prediction.get("score", None),
337
+ confidence=prediction["confidence"],
338
+ anomaly_score=prediction["anomaly_score"],
314
339
  memoryset=memoryset,
315
340
  model=model,
316
341
  telemetry=prediction,
317
342
  )
318
343
 
319
344
  if isinstance(prediction_id, str):
320
- prediction = get_prediction(prediction_id=UUID(prediction_id))
321
- return create_prediction(prediction)
345
+ return create_prediction(
346
+ orca_api.GET("/telemetry/prediction/{prediction_id}", params={"prediction_id": prediction_id})
347
+ )
322
348
  else:
323
349
  return [
324
350
  create_prediction(prediction)
325
- for prediction in list_predictions(body=ListPredictionsRequest(prediction_ids=list(prediction_id)))
351
+ for prediction in orca_api.POST("/telemetry/prediction", json={"prediction_ids": list(prediction_id)})
326
352
  ]
327
353
 
328
354
  def refresh(self):
@@ -341,13 +367,15 @@ class _Prediction(ABC):
341
367
  if self.prediction_id is None:
342
368
  raise ValueError("Cannot update prediction with no prediction ID")
343
369
 
344
- update_prediction(
345
- prediction_id=self.prediction_id,
346
- body=UpdatePredictionRequest(
347
- expected_label=expected_label if expected_label is not UNSET else CLIENT_UNSET,
348
- expected_score=expected_score if expected_score is not UNSET else CLIENT_UNSET,
349
- tags=[] if tags is None else list(tags) if tags is not UNSET else CLIENT_UNSET,
350
- ),
370
+ payload: UpdatePredictionRequest = {}
371
+ if tags is not UNSET:
372
+ payload["tags"] = [] if tags is None else list(tags)
373
+ if expected_label is not UNSET:
374
+ payload["expected_label"] = expected_label
375
+ if expected_score is not UNSET:
376
+ payload["expected_score"] = expected_score
377
+ orca_api.PATCH(
378
+ "/telemetry/prediction/{prediction_id}", params={"prediction_id": self.prediction_id}, json=payload
351
379
  )
352
380
  self.refresh()
353
381
 
@@ -403,12 +431,13 @@ class _Prediction(ABC):
403
431
  ValueError: If the value does not match previous value types for the category, or is a
404
432
  [`float`][float] that is not between `-1.0` and `+1.0`.
405
433
  """
406
- record_prediction_feedback(
407
- body=[
434
+ orca_api.PUT(
435
+ "/telemetry/prediction/feedback",
436
+ json=[
408
437
  _parse_feedback(
409
438
  {"prediction_id": self.prediction_id, "category": category, "value": value, "comment": comment}
410
439
  )
411
- ]
440
+ ],
412
441
  )
413
442
  self.refresh()
414
443
 
@@ -425,23 +454,12 @@ class _Prediction(ABC):
425
454
  if self.prediction_id is None:
426
455
  raise ValueError("Cannot delete feedback with no prediction ID")
427
456
 
428
- record_prediction_feedback(
429
- body=[PredictionFeedbackRequest(prediction_id=self.prediction_id, category_name=category, value=None)]
457
+ orca_api.PUT(
458
+ "/telemetry/prediction/feedback",
459
+ json=[PredictionFeedbackRequest(prediction_id=self.prediction_id, category_name=category, value=None)],
430
460
  )
431
461
  self.refresh()
432
462
 
433
- def inspect(self) -> None:
434
- """
435
- Display an interactive UI with the details about this prediction
436
-
437
- Params:
438
- **kwargs: Additional keyword arguments to pass to the display function
439
-
440
- Note:
441
- This method is only available in Jupyter notebooks.
442
- """
443
- inspect_prediction_result(self) # type: ignore
444
-
445
463
 
446
464
  class ClassificationPrediction(_Prediction):
447
465
  """
@@ -482,18 +500,18 @@ class ClassificationPrediction(_Prediction):
482
500
 
483
501
  @property
484
502
  def memory_lookups(self) -> list[LabeledMemoryLookup]:
485
- assert isinstance(self._telemetry, LabelPredictionWithMemoriesAndFeedback)
486
- return [LabeledMemoryLookup(self._telemetry.memoryset_id, lookup) for lookup in self._telemetry.memories]
503
+ assert "label" in self._telemetry
504
+ return [LabeledMemoryLookup(self._telemetry["memoryset_id"], lookup) for lookup in self._telemetry["memories"]]
487
505
 
488
506
  @property
489
507
  def expected_label(self) -> int | None:
490
- assert isinstance(self._telemetry, LabelPredictionWithMemoriesAndFeedback)
491
- return self._telemetry.expected_label
508
+ assert "label" in self._telemetry
509
+ return self._telemetry["expected_label"]
492
510
 
493
511
  @property
494
512
  def expected_label_name(self) -> str | None:
495
- assert isinstance(self._telemetry, LabelPredictionWithMemoriesAndFeedback)
496
- return self._telemetry.expected_label_name
513
+ assert "label" in self._telemetry
514
+ return self._telemetry["expected_label_name"]
497
515
 
498
516
  def update(
499
517
  self,
@@ -542,13 +560,14 @@ class ClassificationPrediction(_Prediction):
542
560
  if self.prediction_id is None:
543
561
  raise ValueError("Cannot get action recommendation with no prediction ID")
544
562
 
545
- api_recommendation = get_action_recommendation(
546
- prediction_id=UUID(self.prediction_id),
547
- refresh=refresh,
563
+ response = orca_api.GET(
564
+ "/telemetry/prediction/{prediction_id}/action",
565
+ params={"prediction_id": self.prediction_id},
566
+ timeout=30,
548
567
  )
549
- return (api_recommendation.action.value, api_recommendation.rationale)
568
+ return (response["action"], response["rationale"])
550
569
 
551
- def generate_memory_suggestions(self, *, num_memories: int = 3) -> list[dict[str, str | int]]:
570
+ def generate_memory_suggestions(self, *, num_memories: int = 3) -> AddMemorySuggestions:
552
571
  """
553
572
  Generate synthetic memory suggestions to improve this prediction.
554
573
 
@@ -581,14 +600,18 @@ class ClassificationPrediction(_Prediction):
581
600
  if self.prediction_id is None:
582
601
  raise ValueError("Cannot generate memory suggestions with no prediction ID")
583
602
 
584
- api_recommendations = generate_memory_suggestions(
585
- prediction_id=UUID(self.prediction_id),
586
- num_memories=num_memories,
603
+ response = orca_api.GET(
604
+ "/telemetry/prediction/{prediction_id}/memory_suggestions",
605
+ params={"prediction_id": self.prediction_id, "num_memories": num_memories},
606
+ timeout=30,
587
607
  )
588
608
 
589
- return [
590
- {"value": suggestion.value, "label": int(suggestion.label)} for suggestion in api_recommendations.memories
591
- ]
609
+ return AddMemorySuggestions(
610
+ suggestions=[(m["value"], m["label_name"]) for m in response["memories"]],
611
+ memoryset_id=self.memoryset.id,
612
+ model_id=self.model.id,
613
+ prediction_id=self.prediction_id,
614
+ )
592
615
 
593
616
 
594
617
  class RegressionPrediction(_Prediction):
@@ -626,8 +649,8 @@ class RegressionPrediction(_Prediction):
626
649
 
627
650
  @property
628
651
  def memory_lookups(self) -> list[ScoredMemoryLookup]:
629
- assert isinstance(self._telemetry, ScorePredictionWithMemoriesAndFeedback)
630
- return [ScoredMemoryLookup(self._telemetry.memoryset_id, lookup) for lookup in self._telemetry.memories]
652
+ assert "score" in self._telemetry
653
+ return [ScoredMemoryLookup(self._telemetry["memoryset_id"], lookup) for lookup in self._telemetry["memories"]]
631
654
 
632
655
  @property
633
656
  def explanation(self) -> str:
@@ -636,8 +659,8 @@ class RegressionPrediction(_Prediction):
636
659
 
637
660
  @property
638
661
  def expected_score(self) -> float | None:
639
- assert isinstance(self._telemetry, ScorePredictionWithMemoriesAndFeedback)
640
- return self._telemetry.expected_score
662
+ assert "score" in self._telemetry
663
+ return self._telemetry["expected_score"]
641
664
 
642
665
  def update(
643
666
  self,
@@ -1,23 +1,20 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: orca_sdk
3
- Version: 0.0.97
3
+ Version: 0.0.100
4
4
  Summary: SDK for interacting with Orca Services
5
5
  License: Apache-2.0
6
6
  Author: Orca DB Inc.
7
7
  Author-email: dev-rel@orcadb.ai
8
- Requires-Python: >=3.10,<3.13
8
+ Requires-Python: >=3.11,<4.0
9
9
  Classifier: License :: OSI Approved :: Apache Software License
10
10
  Classifier: Programming Language :: Python :: 3
11
- Classifier: Programming Language :: Python :: 3.10
12
11
  Classifier: Programming Language :: Python :: 3.11
13
12
  Classifier: Programming Language :: Python :: 3.12
14
- Requires-Dist: attrs (>=22.2.0)
15
13
  Requires-Dist: datasets (>=3.1.0,<4.0.0)
16
14
  Requires-Dist: gradio (==5.13.0)
17
15
  Requires-Dist: httpx (>=0.20.0,<0.29.0)
18
16
  Requires-Dist: pandas (>=2.2.3,<3.0.0)
19
17
  Requires-Dist: pyarrow (>=18.0.0,<19.0.0)
20
- Requires-Dist: python-dateutil (>=2.8.0,<3.0.0)
21
18
  Requires-Dist: python-dotenv (>=1.1.0,<2.0.0)
22
19
  Requires-Dist: scikit-learn (>=1.6.1,<2.0.0)
23
20
  Requires-Dist: torch (>=2.5.1,<3.0.0)
@@ -0,0 +1,40 @@
1
+ orca_sdk/__init__.py,sha256=bNbT7BlBGo5ZWYHBiPUz77dIc344l7czz7AsuBrdzyM,1001
2
+ orca_sdk/_shared/__init__.py,sha256=3Kt0Hu3QLI5FEp9nqGTxqAm3hAoBJKcagfaGQZ-lbJQ,223
3
+ orca_sdk/_shared/metrics.py,sha256=KDvnvWjfrC_Znihz12HH83Mll2p3LPlBPBEKJTczVlw,13269
4
+ orca_sdk/_shared/metrics_test.py,sha256=3LQ10RcDeq92rmRQgzyq9WCthhEc7yAwe8WKzUoZGx4,7890
5
+ orca_sdk/_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
+ orca_sdk/_utils/analysis_ui.py,sha256=nT-M_YcNRCVPQzvuqYNFKnNHhYkADYBvq1GlIUePrWw,9232
7
+ orca_sdk/_utils/analysis_ui_style.css,sha256=q_ba_-_KtgztepHg829zLzypaxKayl7ySC1-oYDzV3k,836
8
+ orca_sdk/_utils/auth.py,sha256=58Gaa4KA9iy7WP-hMZT4PI6x5lkpctFbbJ6Piwu1ZS4,2484
9
+ orca_sdk/_utils/auth_test.py,sha256=ygVWv1Ex53LaxIP7p2hzPHl8l9qYyBD5IGmEFJMps6s,1056
10
+ orca_sdk/_utils/common.py,sha256=wUm2pNDWytEecC5WiDWd02-yCZw3Akx0bIutG4lHsFA,805
11
+ orca_sdk/_utils/data_parsing.py,sha256=gkAwWEC8qRt3vRUObe7n7Pr0azOayNwc2yFY04WFp7E,5220
12
+ orca_sdk/_utils/data_parsing_test.py,sha256=fNEYzPzE1jt3KWE2Kj91KqIeuv-L5REHFAa98zkNGSQ,8962
13
+ orca_sdk/_utils/pagination.py,sha256=986z0QPZixrZeurJWorF6eMgnTRdDF84AagEA6qNbMw,4245
14
+ orca_sdk/_utils/pagination_test.py,sha256=BUylCrcHnwoKEBmMUzVr0lwLpA35ivcCwdBK4rMw9y8,4887
15
+ orca_sdk/_utils/prediction_result_ui.css,sha256=sqBlkRLnovb5X5EcUDdB6iGpH63nVRlTW4uAmXuD0WM,258
16
+ orca_sdk/_utils/prediction_result_ui.py,sha256=WxsIHVLvJW0yE6QrBQHWn0BjPUFcDYNF3DTtTjIhgrU,4627
17
+ orca_sdk/_utils/tqdm_file_reader.py,sha256=Lw7Cg1UgNuRUoN6jjqZb-IlV00H-kbRcrZLdudr1GxE,324
18
+ orca_sdk/_utils/value_parser.py,sha256=c3qMABCCDQcIjn9N1orYYnlRwDW9JWdGwW_2TDZPLdI,1286
19
+ orca_sdk/_utils/value_parser_test.py,sha256=OybsiC-Obi32RRi9NIuwrVBRAnlyPMV1xVAaevSrb7M,1079
20
+ orca_sdk/classification_model.py,sha256=SUiUgv_o3UUngpz3Le_L6DsijhjXVEB3yo84hrD1MX4,31172
21
+ orca_sdk/classification_model_test.py,sha256=WganVoP-0vw1cqiVWJ2vXyGi4lwYp_hbZHultpxvFqk,19536
22
+ orca_sdk/client.py,sha256=gZ0e0gHoAxpvtsGYRnqH80XAZzi1EaYy2A0BplouOBA,117268
23
+ orca_sdk/conftest.py,sha256=LHA46gDU_D0T_ogS6XOVQvGDDMD01nVZFWVcBYDConc,8885
24
+ orca_sdk/credentials.py,sha256=KrmgP_5uqBKJXFJV6utTHIhU2odsr95VEqEXWe277DY,5074
25
+ orca_sdk/credentials_test.py,sha256=whUweSJIEws6C8Bku-5V31Dv9hD1mFDDW7X2cCsB6g0,1629
26
+ orca_sdk/datasource.py,sha256=6wARRq-eNDJVSBABdVzn41z7s69xasTsqbozaVAsf9U,20263
27
+ orca_sdk/datasource_test.py,sha256=wENPourrJvQN-uJJPaJI9EDuof6wVw3GirOhbrY4sFI,11564
28
+ orca_sdk/embedding_model.py,sha256=YxMXdZ3tvnxnK93nArOr_HZ6QoRB-Mc5VNQJ0mcIdpk,26021
29
+ orca_sdk/embedding_model_test.py,sha256=1aELyCuIzxSxUg7Z4tYtNOd8-hV5hFb-gsZTNh712OQ,7765
30
+ orca_sdk/job.py,sha256=wWJPkkQbkNu_ylBtZN4AscU00VwWTfqlSmysRBUlivw,12787
31
+ orca_sdk/job_test.py,sha256=r4zCyCuJ8eVN-O6_IUSakmSBn64rY7oBmlNtb5RNsi0,3919
32
+ orca_sdk/memoryset.py,sha256=hnhgHxsuV5JEDMnxazmO03VjxzPBENtHDPppHRfh9z4,85354
33
+ orca_sdk/memoryset_test.py,sha256=14WG6u_adVmm6CSn2dM5lEfQYxybwh3s9Q7RBeTuoPE,20486
34
+ orca_sdk/regression_model.py,sha256=je2g1BmoPCuouv5iWqDolja90F2w2vD6TooXA8KjL7c,24552
35
+ orca_sdk/regression_model_test.py,sha256=8LDhtQeh52grZQ2Xd0ju1MQvb_hwosY_ORDDE3wS2LA,14570
36
+ orca_sdk/telemetry.py,sha256=dRyf8fIvThkSBLDyD8BYkixg3nphsN-HbneWq7nbp_4,25380
37
+ orca_sdk/telemetry_test.py,sha256=eT66C5lFdNg-pQdo2I__BP7Tn5fTc9aTkVo9ZhWwhU0,5519
38
+ orca_sdk-0.0.100.dist-info/METADATA,sha256=-PwEi3sZwlqJerxyIo_4Fu2tG548bxONpXXHr6USW4E,3614
39
+ orca_sdk-0.0.100.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
40
+ orca_sdk-0.0.100.dist-info/RECORD,,
@@ -1,3 +0,0 @@
1
- import logging
2
-
3
- logging.getLogger("httpx").setLevel(logging.WARNING)