shaped 2.0.1__py3-none-any.whl → 2.0.4__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 (341) hide show
  1. shaped/__init__.py +59 -4
  2. shaped/autogen/__init__.py +527 -66
  3. shaped/autogen/api/__init__.py +4 -3
  4. shaped/autogen/api/engine_api.py +1467 -0
  5. shaped/autogen/api/{dataset_api.py → query_api.py} +159 -194
  6. shaped/autogen/api/table_api.py +1494 -0
  7. shaped/autogen/api/{model_management_api.py → view_api.py} +179 -181
  8. shaped/autogen/api_client.py +18 -11
  9. shaped/autogen/configuration.py +22 -9
  10. shaped/autogen/exceptions.py +25 -5
  11. shaped/autogen/models/__init__.py +247 -52
  12. shaped/autogen/models/ai_enrichment_view_config.py +123 -0
  13. shaped/autogen/models/{path.py → algorithm.py} +19 -19
  14. shaped/autogen/models/amplitude_table_config.py +106 -0
  15. shaped/autogen/models/ascending.py +148 -0
  16. shaped/autogen/models/attn_dropout_prob.py +136 -0
  17. shaped/autogen/models/attribute_journey.py +124 -0
  18. shaped/autogen/models/attribute_value.py +178 -0
  19. shaped/autogen/models/autoscaling_config.py +95 -0
  20. shaped/autogen/models/aws_pinpoint_table_config.py +108 -0
  21. shaped/autogen/models/batch_size.py +136 -0
  22. shaped/autogen/models/batch_size1.py +136 -0
  23. shaped/autogen/models/batch_size2.py +136 -0
  24. shaped/autogen/models/big_query_table_config.py +147 -0
  25. shaped/autogen/models/bm25.py +136 -0
  26. shaped/autogen/models/boosted_reorder_step.py +125 -0
  27. shaped/autogen/models/canary_rollout.py +99 -0
  28. shaped/autogen/models/candidate_attributes_retrieve_step.py +113 -0
  29. shaped/autogen/models/candidate_ids_retrieve_step.py +113 -0
  30. shaped/autogen/models/candidate_retrieval_strategy.py +41 -0
  31. shaped/autogen/models/clickhouse_table_config.py +146 -0
  32. shaped/autogen/models/column_order_retrieve_step.py +123 -0
  33. shaped/autogen/models/column_ordering.py +91 -0
  34. shaped/autogen/models/create_table_response.py +87 -0
  35. shaped/autogen/models/create_view_response.py +87 -0
  36. shaped/autogen/models/custom_table_config.py +135 -0
  37. shaped/autogen/models/data_compute_config.py +89 -0
  38. shaped/autogen/models/data_config.py +145 -0
  39. shaped/autogen/models/data_config_interaction_table.py +146 -0
  40. shaped/autogen/models/data_split_config.py +88 -0
  41. shaped/autogen/models/data_split_strategy.py +37 -0
  42. shaped/autogen/models/data_tier.py +37 -0
  43. shaped/autogen/models/default.py +246 -0
  44. shaped/autogen/models/delete_engine_response.py +87 -0
  45. shaped/autogen/models/delete_table_response.py +87 -0
  46. shaped/autogen/models/delete_view_response.py +87 -0
  47. shaped/autogen/models/deployment_config.py +117 -0
  48. shaped/autogen/models/distance_function.py +38 -0
  49. shaped/autogen/models/diversity_reorder_step.py +137 -0
  50. shaped/autogen/models/dropout_rate.py +136 -0
  51. shaped/autogen/models/dynamo_db_table_config.py +160 -0
  52. shaped/autogen/models/dynamo_db_table_config_scan_kwargs_value.py +138 -0
  53. shaped/autogen/models/embedder_batch_size.py +136 -0
  54. shaped/autogen/models/embedding_config.py +93 -0
  55. shaped/autogen/models/embedding_dim.py +136 -0
  56. shaped/autogen/models/embedding_dims.py +136 -0
  57. shaped/autogen/models/embedding_size.py +136 -0
  58. shaped/autogen/models/encoder.py +140 -0
  59. shaped/autogen/models/encoding_pooling_strategy.py +38 -0
  60. shaped/autogen/models/engine.py +109 -0
  61. shaped/autogen/models/engine_config_v2.py +152 -0
  62. shaped/autogen/models/engine_details_response.py +120 -0
  63. shaped/autogen/models/engine_schema.py +113 -0
  64. shaped/autogen/models/engine_schema_user_inner.py +146 -0
  65. shaped/autogen/models/entity_config.py +109 -0
  66. shaped/autogen/models/entity_journey.py +161 -0
  67. shaped/autogen/models/entity_type.py +38 -0
  68. shaped/autogen/models/evaluation_config.py +92 -0
  69. shaped/autogen/models/exploration_reorder_step.py +125 -0
  70. shaped/autogen/models/expression_filter_step.py +106 -0
  71. shaped/autogen/models/factors.py +136 -0
  72. shaped/autogen/models/factors1.py +136 -0
  73. shaped/autogen/models/feature.py +90 -0
  74. shaped/autogen/models/feature_type.py +60 -0
  75. shaped/autogen/models/file_table_config.py +112 -0
  76. shaped/autogen/models/filter_config.py +99 -0
  77. shaped/autogen/models/filter_dataset.py +164 -0
  78. shaped/autogen/models/filter_index_type.py +36 -0
  79. shaped/autogen/models/filter_retrieve_step.py +113 -0
  80. shaped/autogen/models/filter_step_explanation.py +165 -0
  81. shaped/autogen/models/filter_table.py +140 -0
  82. shaped/autogen/models/filter_type.py +134 -0
  83. shaped/autogen/models/global_filter.py +102 -0
  84. shaped/autogen/models/hidden_dropout_prob.py +136 -0
  85. shaped/autogen/models/hidden_size.py +136 -0
  86. shaped/autogen/models/hidden_size1.py +136 -0
  87. shaped/autogen/models/http_problem_response.py +115 -0
  88. shaped/autogen/models/http_validation_error.py +2 -2
  89. shaped/autogen/models/hugging_face_encoder.py +115 -0
  90. shaped/autogen/models/iceberg_table_config.py +154 -0
  91. shaped/autogen/models/index_config.py +101 -0
  92. shaped/autogen/models/inner_entity_id.py +144 -0
  93. shaped/autogen/models/inner_size.py +136 -0
  94. shaped/autogen/models/inner_size1.py +136 -0
  95. shaped/autogen/models/inner_uid.py +144 -0
  96. shaped/autogen/models/interaction_config.py +122 -0
  97. shaped/autogen/models/interaction_pooling_encoder.py +104 -0
  98. shaped/autogen/models/interaction_round_robin_encoder.py +104 -0
  99. shaped/autogen/models/item_attribute_pooling_encoder.py +111 -0
  100. shaped/autogen/models/journey.py +140 -0
  101. shaped/autogen/models/kafka_table_config.py +129 -0
  102. shaped/autogen/models/kinesis_table_config.py +140 -0
  103. shaped/autogen/models/kinesis_table_config_column_schema_value.py +136 -0
  104. shaped/autogen/models/label.py +90 -0
  105. shaped/autogen/models/label_type.py +36 -0
  106. shaped/autogen/models/laplace_smoothing.py +136 -0
  107. shaped/autogen/models/latency_scaling_policy.py +112 -0
  108. shaped/autogen/models/learning_rate.py +136 -0
  109. shaped/autogen/models/learning_rate1.py +136 -0
  110. shaped/autogen/models/learning_rate2.py +136 -0
  111. shaped/autogen/models/learning_rate3.py +136 -0
  112. shaped/autogen/models/lexical_search_mode.py +99 -0
  113. shaped/autogen/models/list_engines_response.py +95 -0
  114. shaped/autogen/models/list_tables_response.py +95 -0
  115. shaped/autogen/models/list_views_response.py +95 -0
  116. shaped/autogen/models/location_inner.py +138 -0
  117. shaped/autogen/models/loss_types.py +37 -0
  118. shaped/autogen/models/lr.py +136 -0
  119. shaped/autogen/models/lr1.py +136 -0
  120. shaped/autogen/models/lr2.py +136 -0
  121. shaped/autogen/models/max_depth.py +136 -0
  122. shaped/autogen/models/max_leaves.py +136 -0
  123. shaped/autogen/models/max_seq_length.py +136 -0
  124. shaped/autogen/models/max_seq_length1.py +136 -0
  125. shaped/autogen/models/max_seq_length2.py +136 -0
  126. shaped/autogen/models/mode.py +134 -0
  127. shaped/autogen/models/mode1.py +136 -0
  128. shaped/autogen/models/mode2.py +150 -0
  129. shaped/autogen/models/models_inner.py +308 -0
  130. shaped/autogen/models/mongo_db_table_config.py +147 -0
  131. shaped/autogen/models/mssql_table_config.py +155 -0
  132. shaped/autogen/models/{my_sql_dataset_config.py → my_sql_table_config.py} +45 -28
  133. shaped/autogen/models/n_epochs.py +136 -0
  134. shaped/autogen/models/n_epochs1.py +136 -0
  135. shaped/autogen/models/n_epochs2.py +136 -0
  136. shaped/autogen/models/n_estimators.py +136 -0
  137. shaped/autogen/models/n_heads.py +136 -0
  138. shaped/autogen/models/n_layers.py +136 -0
  139. shaped/autogen/models/neg_per_positive.py +136 -0
  140. shaped/autogen/models/negative_samples_count.py +136 -0
  141. shaped/autogen/models/ngram_tokenizer.py +103 -0
  142. shaped/autogen/models/no_op_config.py +117 -0
  143. shaped/autogen/models/num_blocks.py +136 -0
  144. shaped/autogen/models/num_heads.py +136 -0
  145. shaped/autogen/models/num_leaves.py +136 -0
  146. shaped/autogen/models/objective.py +40 -0
  147. shaped/autogen/models/objective1.py +134 -0
  148. shaped/autogen/models/online_store_config.py +89 -0
  149. shaped/autogen/models/pagination_config.py +87 -0
  150. shaped/autogen/models/parameter_definition.py +96 -0
  151. shaped/autogen/models/parameters_value.py +240 -0
  152. shaped/autogen/models/passthrough_score.py +104 -0
  153. shaped/autogen/models/personal_filter.py +104 -0
  154. shaped/autogen/models/pipeline_stage_explanation.py +118 -0
  155. shaped/autogen/models/policy.py +134 -0
  156. shaped/autogen/models/pool_fn.py +152 -0
  157. shaped/autogen/models/pooling_function.py +37 -0
  158. shaped/autogen/models/{postgres_dataset_config.py → postgres_table_config.py} +66 -28
  159. shaped/autogen/models/posthog_table_config.py +133 -0
  160. shaped/autogen/models/prebuilt_filter_step.py +113 -0
  161. shaped/autogen/models/precomputed_item_embedding.py +99 -0
  162. shaped/autogen/models/precomputed_user_embedding.py +99 -0
  163. shaped/autogen/models/query.py +136 -0
  164. shaped/autogen/models/query1.py +136 -0
  165. shaped/autogen/models/query_any_of.py +172 -0
  166. shaped/autogen/models/query_config.py +140 -0
  167. shaped/autogen/models/query_definition.py +106 -0
  168. shaped/autogen/models/query_encoder.py +194 -0
  169. shaped/autogen/models/query_explanation.py +201 -0
  170. shaped/autogen/models/query_request.py +121 -0
  171. shaped/autogen/models/query_result.py +113 -0
  172. shaped/autogen/models/query_table_config.py +99 -0
  173. shaped/autogen/models/rank_item_attribute_values_query_config.py +122 -0
  174. shaped/autogen/models/rank_query_config.py +167 -0
  175. shaped/autogen/models/rank_query_config_filter_inner.py +149 -0
  176. shaped/autogen/models/rank_query_config_reorder_inner.py +186 -0
  177. shaped/autogen/models/rank_query_config_retrieve_inner.py +265 -0
  178. shaped/autogen/models/recreate_rollout.py +97 -0
  179. shaped/autogen/models/{redshift_dataset_config.py → redshift_table_config.py} +48 -25
  180. shaped/autogen/models/reference_table_config.py +113 -0
  181. shaped/autogen/models/regularization.py +136 -0
  182. shaped/autogen/models/reorder_inner.py +149 -0
  183. shaped/autogen/models/reorder_step_explanation.py +207 -0
  184. shaped/autogen/models/request.py +378 -0
  185. shaped/autogen/models/request1.py +140 -0
  186. shaped/autogen/models/requests_per_second_scaling_policy.py +112 -0
  187. shaped/autogen/models/resource_config.py +100 -0
  188. shaped/autogen/models/response_get_view_details_views_view_name_get.py +134 -0
  189. shaped/autogen/models/result.py +132 -0
  190. shaped/autogen/models/result_embeddings_value.py +127 -0
  191. shaped/autogen/models/retrieval_scores_value.py +127 -0
  192. shaped/autogen/models/retrieve_inner.py +196 -0
  193. shaped/autogen/models/retrieve_step_explanation.py +172 -0
  194. shaped/autogen/models/retriever.py +196 -0
  195. shaped/autogen/models/retriever1.py +196 -0
  196. shaped/autogen/models/rollout_config.py +91 -0
  197. shaped/autogen/models/rudderstack_table_config.py +106 -0
  198. shaped/autogen/models/sampling_strategy.py +36 -0
  199. shaped/autogen/models/saved_query_info_response.py +103 -0
  200. shaped/autogen/models/saved_query_list_response.py +87 -0
  201. shaped/autogen/models/saved_query_request.py +115 -0
  202. shaped/autogen/models/schema_config.py +117 -0
  203. shaped/autogen/models/score.py +134 -0
  204. shaped/autogen/models/score_ensemble.py +127 -0
  205. shaped/autogen/models/score_ensemble_policy_config.py +165 -0
  206. shaped/autogen/models/score_ensemble_policy_config_policies_inner.py +755 -0
  207. shaped/autogen/models/score_step_explanation.py +224 -0
  208. shaped/autogen/models/search_config.py +105 -0
  209. shaped/autogen/models/segment_table_config.py +106 -0
  210. shaped/autogen/models/sequence_length.py +136 -0
  211. shaped/autogen/models/server_config.py +100 -0
  212. shaped/autogen/models/setup_engine_response.py +87 -0
  213. shaped/autogen/models/shaped_internal_recsys_policies_als_model_policy_als_model_policy_config.py +154 -0
  214. shaped/autogen/models/shaped_internal_recsys_policies_beeformer_model_policy_beeformer_model_policy_beeformer_model_policy_config.py +160 -0
  215. shaped/autogen/models/shaped_internal_recsys_policies_bert_model_policy_bert_model_policy_bert_model_policy_config.py +215 -0
  216. shaped/autogen/models/shaped_internal_recsys_policies_chronological_model_policy_chronological_model_policy_config.py +156 -0
  217. shaped/autogen/models/shaped_internal_recsys_policies_elsa_model_policy_elsa_model_policy_elsa_model_policy_config.py +141 -0
  218. shaped/autogen/models/shaped_internal_recsys_policies_gsasrec_model_policy_gsasrec_model_policy_gsas_rec_model_policy_config.py +211 -0
  219. shaped/autogen/models/shaped_internal_recsys_policies_item2vec_model_policy_item2_vec_model_policy_config.py +140 -0
  220. shaped/autogen/models/shaped_internal_recsys_policies_item_content_similarity_model_policy_item_content_similarity_model_policy_config.py +195 -0
  221. shaped/autogen/models/shaped_internal_recsys_policies_lightgbm_model_policy_lightgbm_model_policy_light_gbm_model_policy_config.py +245 -0
  222. shaped/autogen/models/shaped_internal_recsys_policies_ngram_model_policy_ngram_model_policy_config.py +119 -0
  223. shaped/autogen/models/shaped_internal_recsys_policies_popular_model_policy_popular_model_policy_config.py +161 -0
  224. shaped/autogen/models/shaped_internal_recsys_policies_random_model_policy_random_model_policy_config.py +108 -0
  225. shaped/autogen/models/shaped_internal_recsys_policies_recently_popular_policy_recently_popular_policy_config.py +143 -0
  226. shaped/autogen/models/shaped_internal_recsys_policies_rising_popular_policy_rising_popular_policy_config.py +123 -0
  227. shaped/autogen/models/shaped_internal_recsys_policies_sasrec_model_policy_sasrec_model_policy_sas_rec_model_policy_config.py +230 -0
  228. shaped/autogen/models/shaped_internal_recsys_policies_svd_model_policy_svd_model_policy_config.py +119 -0
  229. shaped/autogen/models/shaped_internal_recsys_policies_two_tower_model_policy_two_tower_model_policy_two_tower_model_policy_config.py +165 -0
  230. shaped/autogen/models/shaped_internal_recsys_policies_user_item_content_similarity_model_policy_user_item_content_similarity_model_policy_config.py +153 -0
  231. shaped/autogen/models/shaped_internal_recsys_policies_widedeep_model_policy_wide_deep_model_policy_config.py +137 -0
  232. shaped/autogen/models/shaped_internal_recsys_policies_xgboost_model_policy_xg_boost_model_policy_config.py +155 -0
  233. shaped/autogen/models/shopify_table_config.py +156 -0
  234. shaped/autogen/models/similarity_retrieve_step.py +123 -0
  235. shaped/autogen/models/{snowflake_dataset_config.py → snowflake_table_config.py} +47 -18
  236. shaped/autogen/models/sql_transform_type.py +37 -0
  237. shaped/autogen/models/sql_view_config.py +111 -0
  238. shaped/autogen/models/stemmer_tokenizer.py +105 -0
  239. shaped/autogen/models/step_explanation.py +137 -0
  240. shaped/autogen/models/steps_inner.py +179 -0
  241. shaped/autogen/models/strategy.py +134 -0
  242. shaped/autogen/models/table.py +102 -0
  243. shaped/autogen/models/table_deployment_type.py +38 -0
  244. shaped/autogen/models/table_insert_arguments.py +87 -0
  245. shaped/autogen/models/table_insert_response.py +87 -0
  246. shaped/autogen/models/text_encoding.py +148 -0
  247. shaped/autogen/models/text_search_retrieve_step.py +121 -0
  248. shaped/autogen/models/time_frequency.py +136 -0
  249. shaped/autogen/models/time_window.py +136 -0
  250. shaped/autogen/models/time_window_in_days.py +154 -0
  251. shaped/autogen/models/tokenizer.py +149 -0
  252. shaped/autogen/models/trained_model_encoder.py +99 -0
  253. shaped/autogen/models/training_compute_config.py +99 -0
  254. shaped/autogen/models/training_config.py +121 -0
  255. shaped/autogen/models/training_config_models_inner.py +540 -0
  256. shaped/autogen/models/training_strategy.py +37 -0
  257. shaped/autogen/models/transform_status.py +41 -0
  258. shaped/autogen/models/trending_mode.py +37 -0
  259. shaped/autogen/models/truncate_filter_step.py +106 -0
  260. shaped/autogen/models/tunable_bool.py +97 -0
  261. shaped/autogen/models/tunable_float.py +118 -0
  262. shaped/autogen/models/tunable_int.py +118 -0
  263. shaped/autogen/models/tunable_int_categorical.py +99 -0
  264. shaped/autogen/models/tunable_string.py +99 -0
  265. shaped/autogen/models/tuning_config.py +89 -0
  266. shaped/autogen/models/type.py +150 -0
  267. shaped/autogen/models/update_table_response.py +87 -0
  268. shaped/autogen/models/update_view_response.py +87 -0
  269. shaped/autogen/models/user_attribute_pooling_encoder.py +124 -0
  270. shaped/autogen/models/user_inner.py +134 -0
  271. shaped/autogen/models/val_split.py +136 -0
  272. shaped/autogen/models/validation_error.py +13 -3
  273. shaped/autogen/models/validation_error_loc_inner.py +150 -0
  274. shaped/autogen/models/value_type.py +7 -5
  275. shaped/autogen/models/vector_search_mode.py +101 -0
  276. shaped/autogen/models/view.py +104 -0
  277. shaped/autogen/models/view_details_ai.py +140 -0
  278. shaped/autogen/models/view_details_ai_schema_value.py +153 -0
  279. shaped/autogen/models/view_details_sql.py +140 -0
  280. shaped/autogen/models/view_status.py +41 -0
  281. shaped/autogen/models/weight_decay.py +136 -0
  282. shaped/autogen/models/whitespace_tokenizer.py +97 -0
  283. shaped/autogen/models/window_size.py +136 -0
  284. shaped/autogen/rest.py +10 -4
  285. shaped/cli/shaped_cli.py +163 -35
  286. shaped/client.py +591 -171
  287. shaped/config_builders.py +705 -0
  288. shaped/query_builder.py +781 -0
  289. {shaped-2.0.1.dist-info → shaped-2.0.4.dist-info}/METADATA +141 -6
  290. shaped-2.0.4.dist-info/RECORD +296 -0
  291. {shaped-2.0.1.dist-info → shaped-2.0.4.dist-info}/WHEEL +1 -1
  292. shaped-2.0.4.dist-info/entry_points.txt +2 -0
  293. shaped/autogen/api/model_inference_api.py +0 -2825
  294. shaped/autogen/models/amplitude_dataset_config.py +0 -96
  295. shaped/autogen/models/aws_pinpoint_dataset_config.py +0 -96
  296. shaped/autogen/models/big_query_dataset_config.py +0 -114
  297. shaped/autogen/models/complement_items_request.py +0 -99
  298. shaped/autogen/models/complement_items_response.py +0 -89
  299. shaped/autogen/models/connectors_inner.py +0 -134
  300. shaped/autogen/models/create_dataset_arguments.py +0 -263
  301. shaped/autogen/models/create_embedding_response.py +0 -87
  302. shaped/autogen/models/create_item_embedding_request.py +0 -89
  303. shaped/autogen/models/create_model_arguments.py +0 -107
  304. shaped/autogen/models/create_model_response.py +0 -87
  305. shaped/autogen/models/create_user_embedding_request.py +0 -89
  306. shaped/autogen/models/custom_dataset_config.py +0 -115
  307. shaped/autogen/models/dataset_config.py +0 -101
  308. shaped/autogen/models/dataset_schema_type.py +0 -47
  309. shaped/autogen/models/datasets_inner.py +0 -91
  310. shaped/autogen/models/delete_model_response.py +0 -87
  311. shaped/autogen/models/fetch_config.py +0 -95
  312. shaped/autogen/models/file_config.py +0 -105
  313. shaped/autogen/models/file_source_config.py +0 -89
  314. shaped/autogen/models/inference_config.py +0 -101
  315. shaped/autogen/models/insert_model_response.py +0 -87
  316. shaped/autogen/models/interaction.py +0 -87
  317. shaped/autogen/models/list_datasets_response.py +0 -95
  318. shaped/autogen/models/list_models_response.py +0 -95
  319. shaped/autogen/models/model_config.py +0 -99
  320. shaped/autogen/models/model_response.py +0 -95
  321. shaped/autogen/models/mongo_db_dataset_config.py +0 -119
  322. shaped/autogen/models/post_rank_request.py +0 -117
  323. shaped/autogen/models/rank_attribute_response.py +0 -89
  324. shaped/autogen/models/rank_grid_attribute_request.py +0 -91
  325. shaped/autogen/models/rank_grid_attribute_request1.py +0 -93
  326. shaped/autogen/models/rank_grid_attribute_response.py +0 -91
  327. shaped/autogen/models/rank_response.py +0 -91
  328. shaped/autogen/models/retrieve_request.py +0 -101
  329. shaped/autogen/models/retrieve_response.py +0 -91
  330. shaped/autogen/models/retriever_top_k_override.py +0 -97
  331. shaped/autogen/models/rudder_stack_dataset_config.py +0 -96
  332. shaped/autogen/models/segment_dataset_config.py +0 -96
  333. shaped/autogen/models/similar_item_request.py +0 -101
  334. shaped/autogen/models/similar_response.py +0 -89
  335. shaped/autogen/models/similar_users_request.py +0 -99
  336. shaped/autogen/models/successful_response.py +0 -87
  337. shaped/autogen/models/view_model_response.py +0 -99
  338. shaped-2.0.1.dist-info/RECORD +0 -73
  339. shaped-2.0.1.dist-info/entry_points.txt +0 -2
  340. {shaped-2.0.1.dist-info → shaped-2.0.4.dist-info}/top_level.txt +0 -0
  341. {shaped-2.0.1.dist-info → shaped-2.0.4.dist-info}/zip-safe +0 -0
@@ -3,9 +3,9 @@
3
3
  """
4
4
  Shaped API
5
5
 
6
- Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. Shaped's API is composed of 3 components: 1. **Dataset** - used to provision and manage 'Shaped Datasets', which are persisted data views of external data. Shaped Datasets can be created from any of our 'Shaped connectors' (e.g. S3, Segment, Snowflake, etc.) and support both batch ingestion (up to a 15min delay) and stream ingestion (up to a 30 second delay) depending on the specific connector used. Shaped datasets can also be created from local files, which is particularly useful for getting started with a snapshot of data. 2. **Model Management** - used to provision and manage 'Shaped Models', which represent a system of data pipelines, training and serving infrastructure for your ranking use-case. 3. **Model Inference** - a high performance API that's used to make user-understanding requests or ranking inferences to your 'Shaped Models'. For example, the 'rank' endpoint can be used to determine for a given user id query, what is the content that is most engaging to that user. The recommended workflow to interact with the Shaped API is as follows: 1. First create 'Shaped Datasets' to sync over data that your Shaped understanding models will need. The models at the minimum need interaction data to understand behavior of your users, so start with that and add your item and user catalog data later. 2. Then create 'Shaped Models' that use your created 'Shaped Datasets' as input. Your Shaped Model will will start streaming, processing and training from your connected data immediately. After a few hours your model will have tuned all parameters based on your data and will deploy an active model. 3. You can now use the 'Model Inference' endpoints to make real-time inferences to your model based on your use-case.
6
+ Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
7
 
8
- The version of the OpenAPI document: 1.0.1
8
+ The version of the OpenAPI document: 2.0.4
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -17,23 +17,26 @@ import pprint
17
17
  import re # noqa: F401
18
18
  import json
19
19
 
20
- from pydantic import BaseModel, ConfigDict, StrictInt, StrictStr, field_validator
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator
21
21
  from typing import Any, ClassVar, Dict, List, Optional
22
22
  from typing import Optional, Set
23
23
  from typing_extensions import Self
24
24
 
25
- class PostgresDatasetConfig(BaseModel):
25
+ class PostgresTableConfig(BaseModel):
26
26
  """
27
- PostgresDatasetConfig
27
+ PostgresTableConfig
28
28
  """ # noqa: E501
29
- name: StrictStr
30
- host: StrictStr
31
- port: StrictInt
32
- user: StrictStr
33
- password: StrictStr
34
- table: StrictStr
35
- database: StrictStr
36
- replication_key: StrictStr
29
+ schema_type: Optional[StrictStr] = Field(default='POSTGRES', description="Schema type discriminator for Postgres datasets.")
30
+ name: StrictStr = Field(description="Unique identifier for the Postgres dataset.")
31
+ description: Optional[StrictStr] = None
32
+ host: StrictStr = Field(description="PostgreSQL server hostname or IP address.")
33
+ port: StrictInt = Field(description="PostgreSQL server port number.")
34
+ user: StrictStr = Field(description="PostgreSQL username.")
35
+ password: StrictStr = Field(description="PostgreSQL password.")
36
+ table: StrictStr = Field(description="PostgreSQL table name to sync.")
37
+ database: StrictStr = Field(description="PostgreSQL database name.")
38
+ replication_key: StrictStr = Field(description="Column name used for incremental replication.")
39
+ schedule_interval: Optional[StrictStr] = None
37
40
  columns: Optional[List[StrictStr]] = None
38
41
  database_schema: Optional[StrictStr] = None
39
42
  ssh_tunnel_host: Optional[StrictStr] = None
@@ -41,14 +44,19 @@ class PostgresDatasetConfig(BaseModel):
41
44
  ssh_tunnel_private_key: Optional[StrictStr] = None
42
45
  ssh_tunnel_private_key_password: Optional[StrictStr] = None
43
46
  ssh_tunnel_user: Optional[StrictStr] = None
44
- ssh_tunnel_password: Optional[StrictStr] = None
45
- schedule_interval: Optional[StrictStr] = None
46
- schema_type: StrictStr
47
- __properties: ClassVar[List[str]] = ["name", "host", "port", "user", "password", "table", "database", "replication_key", "columns", "database_schema", "ssh_tunnel_host", "ssh_tunnel_port", "ssh_tunnel_private_key", "ssh_tunnel_private_key_password", "ssh_tunnel_user", "ssh_tunnel_password", "schedule_interval", "schema_type"]
47
+ ssl_certificate_authority: Optional[StrictStr] = None
48
+ ssl_client_certificate: Optional[StrictStr] = None
49
+ ssl_client_private_key: Optional[StrictStr] = None
50
+ batch_size: Optional[StrictInt] = None
51
+ unique_keys: Optional[List[StrictStr]] = None
52
+ __properties: ClassVar[List[str]] = ["schema_type", "name", "description", "host", "port", "user", "password", "table", "database", "replication_key", "schedule_interval", "columns", "database_schema", "ssh_tunnel_host", "ssh_tunnel_port", "ssh_tunnel_private_key", "ssh_tunnel_private_key_password", "ssh_tunnel_user", "ssl_certificate_authority", "ssl_client_certificate", "ssl_client_private_key", "batch_size", "unique_keys"]
48
53
 
49
54
  @field_validator('schema_type')
50
55
  def schema_type_validate_enum(cls, value):
51
56
  """Validates the enum"""
57
+ if value is None:
58
+ return value
59
+
52
60
  if value not in set(['POSTGRES']):
53
61
  raise ValueError("must be one of enum values ('POSTGRES')")
54
62
  return value
@@ -71,7 +79,7 @@ class PostgresDatasetConfig(BaseModel):
71
79
 
72
80
  @classmethod
73
81
  def from_json(cls, json_str: str) -> Optional[Self]:
74
- """Create an instance of PostgresDatasetConfig from a JSON string"""
82
+ """Create an instance of PostgresTableConfig from a JSON string"""
75
83
  return cls.from_dict(json.loads(json_str))
76
84
 
77
85
  def to_dict(self) -> Dict[str, Any]:
@@ -92,6 +100,16 @@ class PostgresDatasetConfig(BaseModel):
92
100
  exclude=excluded_fields,
93
101
  exclude_none=True,
94
102
  )
103
+ # set to None if description (nullable) is None
104
+ # and model_fields_set contains the field
105
+ if self.description is None and "description" in self.model_fields_set:
106
+ _dict['description'] = None
107
+
108
+ # set to None if schedule_interval (nullable) is None
109
+ # and model_fields_set contains the field
110
+ if self.schedule_interval is None and "schedule_interval" in self.model_fields_set:
111
+ _dict['schedule_interval'] = None
112
+
95
113
  # set to None if columns (nullable) is None
96
114
  # and model_fields_set contains the field
97
115
  if self.columns is None and "columns" in self.model_fields_set:
@@ -127,21 +145,36 @@ class PostgresDatasetConfig(BaseModel):
127
145
  if self.ssh_tunnel_user is None and "ssh_tunnel_user" in self.model_fields_set:
128
146
  _dict['ssh_tunnel_user'] = None
129
147
 
130
- # set to None if ssh_tunnel_password (nullable) is None
148
+ # set to None if ssl_certificate_authority (nullable) is None
131
149
  # and model_fields_set contains the field
132
- if self.ssh_tunnel_password is None and "ssh_tunnel_password" in self.model_fields_set:
133
- _dict['ssh_tunnel_password'] = None
150
+ if self.ssl_certificate_authority is None and "ssl_certificate_authority" in self.model_fields_set:
151
+ _dict['ssl_certificate_authority'] = None
134
152
 
135
- # set to None if schedule_interval (nullable) is None
153
+ # set to None if ssl_client_certificate (nullable) is None
136
154
  # and model_fields_set contains the field
137
- if self.schedule_interval is None and "schedule_interval" in self.model_fields_set:
138
- _dict['schedule_interval'] = None
155
+ if self.ssl_client_certificate is None and "ssl_client_certificate" in self.model_fields_set:
156
+ _dict['ssl_client_certificate'] = None
157
+
158
+ # set to None if ssl_client_private_key (nullable) is None
159
+ # and model_fields_set contains the field
160
+ if self.ssl_client_private_key is None and "ssl_client_private_key" in self.model_fields_set:
161
+ _dict['ssl_client_private_key'] = None
162
+
163
+ # set to None if batch_size (nullable) is None
164
+ # and model_fields_set contains the field
165
+ if self.batch_size is None and "batch_size" in self.model_fields_set:
166
+ _dict['batch_size'] = None
167
+
168
+ # set to None if unique_keys (nullable) is None
169
+ # and model_fields_set contains the field
170
+ if self.unique_keys is None and "unique_keys" in self.model_fields_set:
171
+ _dict['unique_keys'] = None
139
172
 
140
173
  return _dict
141
174
 
142
175
  @classmethod
143
176
  def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
144
- """Create an instance of PostgresDatasetConfig from a dict"""
177
+ """Create an instance of PostgresTableConfig from a dict"""
145
178
  if obj is None:
146
179
  return None
147
180
 
@@ -149,7 +182,9 @@ class PostgresDatasetConfig(BaseModel):
149
182
  return cls.model_validate(obj)
150
183
 
151
184
  _obj = cls.model_validate({
185
+ "schema_type": obj.get("schema_type") if obj.get("schema_type") is not None else 'POSTGRES',
152
186
  "name": obj.get("name"),
187
+ "description": obj.get("description"),
153
188
  "host": obj.get("host"),
154
189
  "port": obj.get("port"),
155
190
  "user": obj.get("user"),
@@ -157,6 +192,7 @@ class PostgresDatasetConfig(BaseModel):
157
192
  "table": obj.get("table"),
158
193
  "database": obj.get("database"),
159
194
  "replication_key": obj.get("replication_key"),
195
+ "schedule_interval": obj.get("schedule_interval"),
160
196
  "columns": obj.get("columns"),
161
197
  "database_schema": obj.get("database_schema"),
162
198
  "ssh_tunnel_host": obj.get("ssh_tunnel_host"),
@@ -164,9 +200,11 @@ class PostgresDatasetConfig(BaseModel):
164
200
  "ssh_tunnel_private_key": obj.get("ssh_tunnel_private_key"),
165
201
  "ssh_tunnel_private_key_password": obj.get("ssh_tunnel_private_key_password"),
166
202
  "ssh_tunnel_user": obj.get("ssh_tunnel_user"),
167
- "ssh_tunnel_password": obj.get("ssh_tunnel_password"),
168
- "schedule_interval": obj.get("schedule_interval"),
169
- "schema_type": obj.get("schema_type")
203
+ "ssl_certificate_authority": obj.get("ssl_certificate_authority"),
204
+ "ssl_client_certificate": obj.get("ssl_client_certificate"),
205
+ "ssl_client_private_key": obj.get("ssl_client_private_key"),
206
+ "batch_size": obj.get("batch_size"),
207
+ "unique_keys": obj.get("unique_keys")
170
208
  })
171
209
  return _obj
172
210
 
@@ -0,0 +1,133 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Shaped API
5
+
6
+ Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
+
8
+ The version of the OpenAPI document: 2.0.4
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from shaped.autogen.models.kinesis_table_config_column_schema_value import KinesisTableConfigColumnSchemaValue
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class PosthogTableConfig(BaseModel):
27
+ """
28
+ PosthogTableConfig
29
+ """ # noqa: E501
30
+ schema_type: Optional[StrictStr] = Field(default='POSTHOG', description="Schema type discriminator for Posthog datasets.")
31
+ name: StrictStr = Field(description="Unique identifier for the Posthog dataset.")
32
+ description: Optional[StrictStr] = None
33
+ unique_keys: Optional[List[StrictStr]] = None
34
+ column_schema: Optional[Dict[str, KinesisTableConfigColumnSchemaValue]] = None
35
+ __properties: ClassVar[List[str]] = ["schema_type", "name", "description", "unique_keys", "column_schema"]
36
+
37
+ @field_validator('schema_type')
38
+ def schema_type_validate_enum(cls, value):
39
+ """Validates the enum"""
40
+ if value is None:
41
+ return value
42
+
43
+ if value not in set(['POSTHOG']):
44
+ raise ValueError("must be one of enum values ('POSTHOG')")
45
+ return value
46
+
47
+ model_config = ConfigDict(
48
+ populate_by_name=True,
49
+ validate_assignment=True,
50
+ protected_namespaces=(),
51
+ )
52
+
53
+
54
+ def to_str(self) -> str:
55
+ """Returns the string representation of the model using alias"""
56
+ return pprint.pformat(self.model_dump(by_alias=True))
57
+
58
+ def to_json(self) -> str:
59
+ """Returns the JSON representation of the model using alias"""
60
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
61
+ return json.dumps(self.to_dict())
62
+
63
+ @classmethod
64
+ def from_json(cls, json_str: str) -> Optional[Self]:
65
+ """Create an instance of PosthogTableConfig from a JSON string"""
66
+ return cls.from_dict(json.loads(json_str))
67
+
68
+ def to_dict(self) -> Dict[str, Any]:
69
+ """Return the dictionary representation of the model using alias.
70
+
71
+ This has the following differences from calling pydantic's
72
+ `self.model_dump(by_alias=True)`:
73
+
74
+ * `None` is only added to the output dict for nullable fields that
75
+ were set at model initialization. Other fields with value `None`
76
+ are ignored.
77
+ """
78
+ excluded_fields: Set[str] = set([
79
+ ])
80
+
81
+ _dict = self.model_dump(
82
+ by_alias=True,
83
+ exclude=excluded_fields,
84
+ exclude_none=True,
85
+ )
86
+ # override the default output from pydantic by calling `to_dict()` of each value in column_schema (dict)
87
+ _field_dict = {}
88
+ if self.column_schema:
89
+ for _key_column_schema in self.column_schema:
90
+ if self.column_schema[_key_column_schema]:
91
+ _field_dict[_key_column_schema] = self.column_schema[_key_column_schema].to_dict()
92
+ _dict['column_schema'] = _field_dict
93
+ # set to None if description (nullable) is None
94
+ # and model_fields_set contains the field
95
+ if self.description is None and "description" in self.model_fields_set:
96
+ _dict['description'] = None
97
+
98
+ # set to None if unique_keys (nullable) is None
99
+ # and model_fields_set contains the field
100
+ if self.unique_keys is None and "unique_keys" in self.model_fields_set:
101
+ _dict['unique_keys'] = None
102
+
103
+ # set to None if column_schema (nullable) is None
104
+ # and model_fields_set contains the field
105
+ if self.column_schema is None and "column_schema" in self.model_fields_set:
106
+ _dict['column_schema'] = None
107
+
108
+ return _dict
109
+
110
+ @classmethod
111
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
112
+ """Create an instance of PosthogTableConfig from a dict"""
113
+ if obj is None:
114
+ return None
115
+
116
+ if not isinstance(obj, dict):
117
+ return cls.model_validate(obj)
118
+
119
+ _obj = cls.model_validate({
120
+ "schema_type": obj.get("schema_type") if obj.get("schema_type") is not None else 'POSTHOG',
121
+ "name": obj.get("name"),
122
+ "description": obj.get("description"),
123
+ "unique_keys": obj.get("unique_keys"),
124
+ "column_schema": dict(
125
+ (_k, KinesisTableConfigColumnSchemaValue.from_dict(_v))
126
+ for _k, _v in obj["column_schema"].items()
127
+ )
128
+ if obj.get("column_schema") is not None
129
+ else None
130
+ })
131
+ return _obj
132
+
133
+
@@ -0,0 +1,113 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Shaped API
5
+
6
+ Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
+
8
+ The version of the OpenAPI document: 2.0.4
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class PrebuiltFilterStep(BaseModel):
26
+ """
27
+ PrebuiltFilterStep
28
+ """ # noqa: E501
29
+ filter_ref: StrictStr = Field(description="Reference to a prebuilt filter (e.g., ref:data.filters:name).")
30
+ name: Optional[StrictStr] = None
31
+ input_user_id: Optional[StrictStr] = None
32
+ type: Optional[StrictStr] = Field(default='prebuilt', description="Filter step type discriminator.")
33
+ __properties: ClassVar[List[str]] = ["filter_ref", "name", "input_user_id", "type"]
34
+
35
+ @field_validator('type')
36
+ def type_validate_enum(cls, value):
37
+ """Validates the enum"""
38
+ if value is None:
39
+ return value
40
+
41
+ if value not in set(['prebuilt']):
42
+ raise ValueError("must be one of enum values ('prebuilt')")
43
+ return value
44
+
45
+ model_config = ConfigDict(
46
+ populate_by_name=True,
47
+ validate_assignment=True,
48
+ protected_namespaces=(),
49
+ )
50
+
51
+
52
+ def to_str(self) -> str:
53
+ """Returns the string representation of the model using alias"""
54
+ return pprint.pformat(self.model_dump(by_alias=True))
55
+
56
+ def to_json(self) -> str:
57
+ """Returns the JSON representation of the model using alias"""
58
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
59
+ return json.dumps(self.to_dict())
60
+
61
+ @classmethod
62
+ def from_json(cls, json_str: str) -> Optional[Self]:
63
+ """Create an instance of PrebuiltFilterStep from a JSON string"""
64
+ return cls.from_dict(json.loads(json_str))
65
+
66
+ def to_dict(self) -> Dict[str, Any]:
67
+ """Return the dictionary representation of the model using alias.
68
+
69
+ This has the following differences from calling pydantic's
70
+ `self.model_dump(by_alias=True)`:
71
+
72
+ * `None` is only added to the output dict for nullable fields that
73
+ were set at model initialization. Other fields with value `None`
74
+ are ignored.
75
+ """
76
+ excluded_fields: Set[str] = set([
77
+ ])
78
+
79
+ _dict = self.model_dump(
80
+ by_alias=True,
81
+ exclude=excluded_fields,
82
+ exclude_none=True,
83
+ )
84
+ # set to None if name (nullable) is None
85
+ # and model_fields_set contains the field
86
+ if self.name is None and "name" in self.model_fields_set:
87
+ _dict['name'] = None
88
+
89
+ # set to None if input_user_id (nullable) is None
90
+ # and model_fields_set contains the field
91
+ if self.input_user_id is None and "input_user_id" in self.model_fields_set:
92
+ _dict['input_user_id'] = None
93
+
94
+ return _dict
95
+
96
+ @classmethod
97
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
98
+ """Create an instance of PrebuiltFilterStep from a dict"""
99
+ if obj is None:
100
+ return None
101
+
102
+ if not isinstance(obj, dict):
103
+ return cls.model_validate(obj)
104
+
105
+ _obj = cls.model_validate({
106
+ "filter_ref": obj.get("filter_ref"),
107
+ "name": obj.get("name"),
108
+ "input_user_id": obj.get("input_user_id"),
109
+ "type": obj.get("type") if obj.get("type") is not None else 'prebuilt'
110
+ })
111
+ return _obj
112
+
113
+
@@ -0,0 +1,99 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Shaped API
5
+
6
+ Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
+
8
+ The version of the OpenAPI document: 2.0.4
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class PrecomputedItemEmbedding(BaseModel):
26
+ """
27
+ Looks up a pre-computed (cached) embedding for a given item ID.
28
+ """ # noqa: E501
29
+ input_item_id: StrictStr = Field(description="Item ID to lookup precomputed embedding.")
30
+ type: Optional[StrictStr] = Field(default='precomputed_item', description="Encoder type discriminator.")
31
+ __properties: ClassVar[List[str]] = ["input_item_id", "type"]
32
+
33
+ @field_validator('type')
34
+ def type_validate_enum(cls, value):
35
+ """Validates the enum"""
36
+ if value is None:
37
+ return value
38
+
39
+ if value not in set(['precomputed_item']):
40
+ raise ValueError("must be one of enum values ('precomputed_item')")
41
+ return value
42
+
43
+ model_config = ConfigDict(
44
+ populate_by_name=True,
45
+ validate_assignment=True,
46
+ protected_namespaces=(),
47
+ )
48
+
49
+
50
+ def to_str(self) -> str:
51
+ """Returns the string representation of the model using alias"""
52
+ return pprint.pformat(self.model_dump(by_alias=True))
53
+
54
+ def to_json(self) -> str:
55
+ """Returns the JSON representation of the model using alias"""
56
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
57
+ return json.dumps(self.to_dict())
58
+
59
+ @classmethod
60
+ def from_json(cls, json_str: str) -> Optional[Self]:
61
+ """Create an instance of PrecomputedItemEmbedding from a JSON string"""
62
+ return cls.from_dict(json.loads(json_str))
63
+
64
+ def to_dict(self) -> Dict[str, Any]:
65
+ """Return the dictionary representation of the model using alias.
66
+
67
+ This has the following differences from calling pydantic's
68
+ `self.model_dump(by_alias=True)`:
69
+
70
+ * `None` is only added to the output dict for nullable fields that
71
+ were set at model initialization. Other fields with value `None`
72
+ are ignored.
73
+ """
74
+ excluded_fields: Set[str] = set([
75
+ ])
76
+
77
+ _dict = self.model_dump(
78
+ by_alias=True,
79
+ exclude=excluded_fields,
80
+ exclude_none=True,
81
+ )
82
+ return _dict
83
+
84
+ @classmethod
85
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
86
+ """Create an instance of PrecomputedItemEmbedding from a dict"""
87
+ if obj is None:
88
+ return None
89
+
90
+ if not isinstance(obj, dict):
91
+ return cls.model_validate(obj)
92
+
93
+ _obj = cls.model_validate({
94
+ "input_item_id": obj.get("input_item_id"),
95
+ "type": obj.get("type") if obj.get("type") is not None else 'precomputed_item'
96
+ })
97
+ return _obj
98
+
99
+
@@ -0,0 +1,99 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ Shaped API
5
+
6
+ Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
+
8
+ The version of the OpenAPI document: 2.0.4
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+
15
+ from __future__ import annotations
16
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class PrecomputedUserEmbedding(BaseModel):
26
+ """
27
+ Looks up a pre-computed (cached) embedding for a given user ID.
28
+ """ # noqa: E501
29
+ input_user_id: StrictStr = Field(description="User ID parameter or value to lookup precomputed embedding.")
30
+ type: Optional[StrictStr] = Field(default='precomputed_user', description="Encoder type discriminator.")
31
+ __properties: ClassVar[List[str]] = ["input_user_id", "type"]
32
+
33
+ @field_validator('type')
34
+ def type_validate_enum(cls, value):
35
+ """Validates the enum"""
36
+ if value is None:
37
+ return value
38
+
39
+ if value not in set(['precomputed_user']):
40
+ raise ValueError("must be one of enum values ('precomputed_user')")
41
+ return value
42
+
43
+ model_config = ConfigDict(
44
+ populate_by_name=True,
45
+ validate_assignment=True,
46
+ protected_namespaces=(),
47
+ )
48
+
49
+
50
+ def to_str(self) -> str:
51
+ """Returns the string representation of the model using alias"""
52
+ return pprint.pformat(self.model_dump(by_alias=True))
53
+
54
+ def to_json(self) -> str:
55
+ """Returns the JSON representation of the model using alias"""
56
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
57
+ return json.dumps(self.to_dict())
58
+
59
+ @classmethod
60
+ def from_json(cls, json_str: str) -> Optional[Self]:
61
+ """Create an instance of PrecomputedUserEmbedding from a JSON string"""
62
+ return cls.from_dict(json.loads(json_str))
63
+
64
+ def to_dict(self) -> Dict[str, Any]:
65
+ """Return the dictionary representation of the model using alias.
66
+
67
+ This has the following differences from calling pydantic's
68
+ `self.model_dump(by_alias=True)`:
69
+
70
+ * `None` is only added to the output dict for nullable fields that
71
+ were set at model initialization. Other fields with value `None`
72
+ are ignored.
73
+ """
74
+ excluded_fields: Set[str] = set([
75
+ ])
76
+
77
+ _dict = self.model_dump(
78
+ by_alias=True,
79
+ exclude=excluded_fields,
80
+ exclude_none=True,
81
+ )
82
+ return _dict
83
+
84
+ @classmethod
85
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
86
+ """Create an instance of PrecomputedUserEmbedding from a dict"""
87
+ if obj is None:
88
+ return None
89
+
90
+ if not isinstance(obj, dict):
91
+ return cls.model_validate(obj)
92
+
93
+ _obj = cls.model_validate({
94
+ "input_user_id": obj.get("input_user_id"),
95
+ "type": obj.get("type") if obj.get("type") is not None else 'precomputed_user'
96
+ })
97
+ return _obj
98
+
99
+