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
@@ -0,0 +1,195 @@
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.0
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
+
17
+ import json
18
+ import pprint
19
+ import re # noqa: F401
20
+ from typing import Any, ClassVar, Dict, List, Optional, Set
21
+
22
+ from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr, field_validator
23
+ from shaped.autogen.models.distance_function import DistanceFunction
24
+ from shaped.autogen.models.pool_fn import PoolFn
25
+ from shaped.autogen.models.text_encoding import TextEncoding
26
+ from typing_extensions import Self
27
+
28
+
29
+ class ShapedInternalRecsysPoliciesItemContentSimilarityModelPolicyItemContentSimilarityModelPolicyConfig(
30
+ BaseModel
31
+ ):
32
+ """
33
+ ShapedInternalRecsysPoliciesItemContentSimilarityModelPolicyItemContentSimilarityModelPolicyConfig
34
+ """ # noqa: E501
35
+
36
+ policy_type: Optional[StrictStr] = "item-content-similarity"
37
+ name: Optional[StrictStr] = None
38
+ event_values: Optional[List[StrictStr]] = None
39
+ pool_fn: Optional[PoolFn] = None
40
+ include_item_id: Optional[StrictBool] = True
41
+ text_encoding: Optional[TextEncoding] = None
42
+ categorical_and_numerical_encoding: Optional[StrictBool] = False
43
+ distance_fn: Optional[DistanceFunction] = None
44
+ encode_items_using_stored_factors: Optional[StrictBool] = True
45
+ item_feature_names: Optional[List[StrictStr]] = None
46
+ additional_properties: Dict[str, Any] = {}
47
+ __properties: ClassVar[List[str]] = [
48
+ "policy_type",
49
+ "name",
50
+ "event_values",
51
+ "pool_fn",
52
+ "include_item_id",
53
+ "text_encoding",
54
+ "categorical_and_numerical_encoding",
55
+ "distance_fn",
56
+ "encode_items_using_stored_factors",
57
+ "item_feature_names",
58
+ ]
59
+
60
+ @field_validator("policy_type")
61
+ def policy_type_validate_enum(cls, value):
62
+ """Validates the enum"""
63
+ if value is None:
64
+ return value
65
+
66
+ if value not in set(["item-content-similarity"]):
67
+ raise ValueError("must be one of enum values ('item-content-similarity')")
68
+ return value
69
+
70
+ model_config = ConfigDict(
71
+ populate_by_name=True,
72
+ validate_assignment=True,
73
+ protected_namespaces=(),
74
+ )
75
+
76
+ def to_str(self) -> str:
77
+ """Returns the string representation of the model using alias"""
78
+ return pprint.pformat(self.model_dump(by_alias=True))
79
+
80
+ def to_json(self) -> str:
81
+ """Returns the JSON representation of the model using alias"""
82
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
83
+ return json.dumps(self.to_dict())
84
+
85
+ @classmethod
86
+ def from_json(cls, json_str: str) -> Optional[Self]:
87
+ """Create an instance of ShapedInternalRecsysPoliciesItemContentSimilarityModelPolicyItemContentSimilarityModelPolicyConfig from a JSON string"""
88
+ return cls.from_dict(json.loads(json_str))
89
+
90
+ def to_dict(self) -> Dict[str, Any]:
91
+ """Return the dictionary representation of the model using alias.
92
+
93
+ This has the following differences from calling pydantic's
94
+ `self.model_dump(by_alias=True)`:
95
+
96
+ * `None` is only added to the output dict for nullable fields that
97
+ were set at model initialization. Other fields with value `None`
98
+ are ignored.
99
+ * Fields in `self.additional_properties` are added to the output dict.
100
+ """
101
+ excluded_fields: Set[str] = set(
102
+ [
103
+ "additional_properties",
104
+ ]
105
+ )
106
+
107
+ _dict = self.model_dump(
108
+ by_alias=True,
109
+ exclude=excluded_fields,
110
+ exclude_none=True,
111
+ )
112
+ # override the default output from pydantic by calling `to_dict()` of pool_fn
113
+ if self.pool_fn:
114
+ _dict["pool_fn"] = self.pool_fn.to_dict()
115
+ # override the default output from pydantic by calling `to_dict()` of text_encoding
116
+ if self.text_encoding:
117
+ _dict["text_encoding"] = self.text_encoding.to_dict()
118
+ # puts key-value pairs in additional_properties in the top level
119
+ if self.additional_properties is not None:
120
+ for _key, _value in self.additional_properties.items():
121
+ _dict[_key] = _value
122
+
123
+ # set to None if name (nullable) is None
124
+ # and model_fields_set contains the field
125
+ if self.name is None and "name" in self.model_fields_set:
126
+ _dict["name"] = None
127
+
128
+ # set to None if event_values (nullable) is None
129
+ # and model_fields_set contains the field
130
+ if self.event_values is None and "event_values" in self.model_fields_set:
131
+ _dict["event_values"] = None
132
+
133
+ # set to None if item_feature_names (nullable) is None
134
+ # and model_fields_set contains the field
135
+ if (
136
+ self.item_feature_names is None
137
+ and "item_feature_names" in self.model_fields_set
138
+ ):
139
+ _dict["item_feature_names"] = None
140
+
141
+ return _dict
142
+
143
+ @classmethod
144
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
145
+ """Create an instance of ShapedInternalRecsysPoliciesItemContentSimilarityModelPolicyItemContentSimilarityModelPolicyConfig from a dict"""
146
+ if obj is None:
147
+ return None
148
+
149
+ if not isinstance(obj, dict):
150
+ return cls.model_validate(obj)
151
+
152
+ _obj = cls.model_validate(
153
+ {
154
+ "policy_type": (
155
+ obj.get("policy_type")
156
+ if obj.get("policy_type") is not None
157
+ else "item-content-similarity"
158
+ ),
159
+ "name": obj.get("name"),
160
+ "event_values": obj.get("event_values"),
161
+ "pool_fn": (
162
+ PoolFn.from_dict(obj["pool_fn"])
163
+ if obj.get("pool_fn") is not None
164
+ else None
165
+ ),
166
+ "include_item_id": (
167
+ obj.get("include_item_id")
168
+ if obj.get("include_item_id") is not None
169
+ else True
170
+ ),
171
+ "text_encoding": (
172
+ TextEncoding.from_dict(obj["text_encoding"])
173
+ if obj.get("text_encoding") is not None
174
+ else None
175
+ ),
176
+ "categorical_and_numerical_encoding": (
177
+ obj.get("categorical_and_numerical_encoding")
178
+ if obj.get("categorical_and_numerical_encoding") is not None
179
+ else False
180
+ ),
181
+ "distance_fn": obj.get("distance_fn"),
182
+ "encode_items_using_stored_factors": (
183
+ obj.get("encode_items_using_stored_factors")
184
+ if obj.get("encode_items_using_stored_factors") is not None
185
+ else True
186
+ ),
187
+ "item_feature_names": obj.get("item_feature_names"),
188
+ }
189
+ )
190
+ # store additional fields in additional_properties
191
+ for _key in obj.keys():
192
+ if _key not in cls.__properties:
193
+ _obj.additional_properties[_key] = obj.get(_key)
194
+
195
+ return _obj
@@ -0,0 +1,245 @@
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, StrictBool, StrictFloat, StrictInt, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List, Optional, Union
22
+ from shaped.autogen.models.learning_rate1 import LearningRate1
23
+ from shaped.autogen.models.max_depth import MaxDepth
24
+ from shaped.autogen.models.num_leaves import NumLeaves
25
+ from shaped.autogen.models.objective1 import Objective1
26
+ from typing import Optional, Set
27
+ from typing_extensions import Self
28
+
29
+ class ShapedInternalRecsysPoliciesLightgbmModelPolicyLightgbmModelPolicyLightGBMModelPolicyConfig(BaseModel):
30
+ """
31
+ ShapedInternalRecsysPoliciesLightgbmModelPolicyLightgbmModelPolicyLightGBMModelPolicyConfig
32
+ """ # noqa: E501
33
+ policy_type: Optional[StrictStr] = 'lightgbm'
34
+ name: Optional[StrictStr] = None
35
+ event_values: Optional[List[StrictStr]] = None
36
+ objective: Optional[Objective1] = None
37
+ n_estimators: Optional[StrictInt] = Field(default=100, description="Number of boosting iterations.")
38
+ max_depth: Optional[MaxDepth] = None
39
+ num_leaves: Optional[NumLeaves] = None
40
+ min_child_weight: Optional[Union[StrictFloat, StrictInt]] = Field(default=1, description="Minimum sum Hessian in one leaf.")
41
+ learning_rate: Optional[LearningRate1] = None
42
+ colsample_bytree: Optional[Union[StrictFloat, StrictInt]] = Field(default=0.9, description="Subsample columns on each iteration.")
43
+ subsample: Optional[Union[StrictFloat, StrictInt]] = Field(default=0.8, description="Subsample training data on each iteration.")
44
+ subsample_freq: Optional[StrictInt] = Field(default=5, description="Bagging frequency.")
45
+ zero_as_missing: Optional[StrictBool] = Field(default=True, description="Treat zero values as missing.")
46
+ bin_construct_sample_cnt: Optional[StrictInt] = Field(default=200000, description="Number of samples used to construct bins.")
47
+ verbose: Optional[StrictInt] = 1
48
+ verbose_eval: Optional[StrictInt] = 1
49
+ num_threads: Optional[StrictInt] = None
50
+ enable_resume: Optional[StrictBool] = True
51
+ lambdarank_truncation_level: Optional[StrictInt] = Field(default=53, description="Number of pairs used in pairwise loss. Should be set to slightly higher than the k value used for NDCG@k.")
52
+ calibrate: Optional[StrictBool] = False
53
+ event_value_user_affinity_features: Optional[StrictBool] = False
54
+ event_value_affinity_features_value_filter: Optional[List[StrictStr]] = None
55
+ rolling_window_hours: Optional[StrictInt] = None
56
+ negative_affinity_features: Optional[StrictBool] = False
57
+ content_affinity_features: Optional[StrictBool] = False
58
+ content_affinity_features_batch_size: Optional[StrictInt] = 1024
59
+ content_affinity_max_num_latest_items: Optional[StrictInt] = None
60
+ content_affinity_embedding_ref: Optional[StrictStr] = None
61
+ container_categorical_to_multi_hot: Optional[StrictBool] = False
62
+ container_to_container_affinities: Optional[StrictBool] = True
63
+ point_in_time_item_feature: Optional[StrictBool] = False
64
+ drop_user_id: Optional[StrictBool] = True
65
+ drop_item_id: Optional[StrictBool] = False
66
+ early_stopping_rounds: Optional[StrictInt] = None
67
+ include_attributes: Optional[List[StrictStr]] = None
68
+ normalize_numerical_features: Optional[StrictBool] = Field(default=True, description="Enable NormalizeNumerical transform for entity features.")
69
+ use_derived_timestamp_features: Optional[StrictBool] = Field(default=True, description="Enable TimestampSinCosEncoder and TimestampCountEncoder for entity features.")
70
+ balance_labels: Optional[StrictBool] = Field(default=True, description="Enable BalanceLabel transform for interactions.")
71
+ additional_properties: Dict[str, Any] = {}
72
+ __properties: ClassVar[List[str]] = ["policy_type", "name", "event_values", "objective", "n_estimators", "max_depth", "num_leaves", "min_child_weight", "learning_rate", "colsample_bytree", "subsample", "subsample_freq", "zero_as_missing", "bin_construct_sample_cnt", "verbose", "verbose_eval", "num_threads", "enable_resume", "lambdarank_truncation_level", "calibrate", "event_value_user_affinity_features", "event_value_affinity_features_value_filter", "rolling_window_hours", "negative_affinity_features", "content_affinity_features", "content_affinity_features_batch_size", "content_affinity_max_num_latest_items", "content_affinity_embedding_ref", "container_categorical_to_multi_hot", "container_to_container_affinities", "point_in_time_item_feature", "drop_user_id", "drop_item_id", "early_stopping_rounds", "include_attributes", "normalize_numerical_features", "use_derived_timestamp_features", "balance_labels"]
73
+
74
+ @field_validator('policy_type')
75
+ def policy_type_validate_enum(cls, value):
76
+ """Validates the enum"""
77
+ if value is None:
78
+ return value
79
+
80
+ if value not in set(['lightgbm']):
81
+ raise ValueError("must be one of enum values ('lightgbm')")
82
+ return value
83
+
84
+ model_config = ConfigDict(
85
+ populate_by_name=True,
86
+ validate_assignment=True,
87
+ protected_namespaces=(),
88
+ )
89
+
90
+
91
+ def to_str(self) -> str:
92
+ """Returns the string representation of the model using alias"""
93
+ return pprint.pformat(self.model_dump(by_alias=True))
94
+
95
+ def to_json(self) -> str:
96
+ """Returns the JSON representation of the model using alias"""
97
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
98
+ return json.dumps(self.to_dict())
99
+
100
+ @classmethod
101
+ def from_json(cls, json_str: str) -> Optional[Self]:
102
+ """Create an instance of ShapedInternalRecsysPoliciesLightgbmModelPolicyLightgbmModelPolicyLightGBMModelPolicyConfig from a JSON string"""
103
+ return cls.from_dict(json.loads(json_str))
104
+
105
+ def to_dict(self) -> Dict[str, Any]:
106
+ """Return the dictionary representation of the model using alias.
107
+
108
+ This has the following differences from calling pydantic's
109
+ `self.model_dump(by_alias=True)`:
110
+
111
+ * `None` is only added to the output dict for nullable fields that
112
+ were set at model initialization. Other fields with value `None`
113
+ are ignored.
114
+ * Fields in `self.additional_properties` are added to the output dict.
115
+ """
116
+ excluded_fields: Set[str] = set([
117
+ "additional_properties",
118
+ ])
119
+
120
+ _dict = self.model_dump(
121
+ by_alias=True,
122
+ exclude=excluded_fields,
123
+ exclude_none=True,
124
+ )
125
+ # override the default output from pydantic by calling `to_dict()` of objective
126
+ if self.objective:
127
+ _dict['objective'] = self.objective.to_dict()
128
+ # override the default output from pydantic by calling `to_dict()` of max_depth
129
+ if self.max_depth:
130
+ _dict['max_depth'] = self.max_depth.to_dict()
131
+ # override the default output from pydantic by calling `to_dict()` of num_leaves
132
+ if self.num_leaves:
133
+ _dict['num_leaves'] = self.num_leaves.to_dict()
134
+ # override the default output from pydantic by calling `to_dict()` of learning_rate
135
+ if self.learning_rate:
136
+ _dict['learning_rate'] = self.learning_rate.to_dict()
137
+ # puts key-value pairs in additional_properties in the top level
138
+ if self.additional_properties is not None:
139
+ for _key, _value in self.additional_properties.items():
140
+ _dict[_key] = _value
141
+
142
+ # set to None if name (nullable) is None
143
+ # and model_fields_set contains the field
144
+ if self.name is None and "name" in self.model_fields_set:
145
+ _dict['name'] = None
146
+
147
+ # set to None if event_values (nullable) is None
148
+ # and model_fields_set contains the field
149
+ if self.event_values is None and "event_values" in self.model_fields_set:
150
+ _dict['event_values'] = None
151
+
152
+ # set to None if num_threads (nullable) is None
153
+ # and model_fields_set contains the field
154
+ if self.num_threads is None and "num_threads" in self.model_fields_set:
155
+ _dict['num_threads'] = None
156
+
157
+ # set to None if event_value_affinity_features_value_filter (nullable) is None
158
+ # and model_fields_set contains the field
159
+ if self.event_value_affinity_features_value_filter is None and "event_value_affinity_features_value_filter" in self.model_fields_set:
160
+ _dict['event_value_affinity_features_value_filter'] = None
161
+
162
+ # set to None if rolling_window_hours (nullable) is None
163
+ # and model_fields_set contains the field
164
+ if self.rolling_window_hours is None and "rolling_window_hours" in self.model_fields_set:
165
+ _dict['rolling_window_hours'] = None
166
+
167
+ # set to None if content_affinity_max_num_latest_items (nullable) is None
168
+ # and model_fields_set contains the field
169
+ if self.content_affinity_max_num_latest_items is None and "content_affinity_max_num_latest_items" in self.model_fields_set:
170
+ _dict['content_affinity_max_num_latest_items'] = None
171
+
172
+ # set to None if content_affinity_embedding_ref (nullable) is None
173
+ # and model_fields_set contains the field
174
+ if self.content_affinity_embedding_ref is None and "content_affinity_embedding_ref" in self.model_fields_set:
175
+ _dict['content_affinity_embedding_ref'] = None
176
+
177
+ # set to None if early_stopping_rounds (nullable) is None
178
+ # and model_fields_set contains the field
179
+ if self.early_stopping_rounds is None and "early_stopping_rounds" in self.model_fields_set:
180
+ _dict['early_stopping_rounds'] = None
181
+
182
+ # set to None if include_attributes (nullable) is None
183
+ # and model_fields_set contains the field
184
+ if self.include_attributes is None and "include_attributes" in self.model_fields_set:
185
+ _dict['include_attributes'] = None
186
+
187
+ return _dict
188
+
189
+ @classmethod
190
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
191
+ """Create an instance of ShapedInternalRecsysPoliciesLightgbmModelPolicyLightgbmModelPolicyLightGBMModelPolicyConfig from a dict"""
192
+ if obj is None:
193
+ return None
194
+
195
+ if not isinstance(obj, dict):
196
+ return cls.model_validate(obj)
197
+
198
+ _obj = cls.model_validate({
199
+ "policy_type": obj.get("policy_type") if obj.get("policy_type") is not None else 'lightgbm',
200
+ "name": obj.get("name"),
201
+ "event_values": obj.get("event_values"),
202
+ "objective": Objective1.from_dict(obj["objective"]) if obj.get("objective") is not None else None,
203
+ "n_estimators": obj.get("n_estimators") if obj.get("n_estimators") is not None else 100,
204
+ "max_depth": MaxDepth.from_dict(obj["max_depth"]) if obj.get("max_depth") is not None else None,
205
+ "num_leaves": NumLeaves.from_dict(obj["num_leaves"]) if obj.get("num_leaves") is not None else None,
206
+ "min_child_weight": obj.get("min_child_weight") if obj.get("min_child_weight") is not None else 1,
207
+ "learning_rate": LearningRate1.from_dict(obj["learning_rate"]) if obj.get("learning_rate") is not None else None,
208
+ "colsample_bytree": obj.get("colsample_bytree") if obj.get("colsample_bytree") is not None else 0.9,
209
+ "subsample": obj.get("subsample") if obj.get("subsample") is not None else 0.8,
210
+ "subsample_freq": obj.get("subsample_freq") if obj.get("subsample_freq") is not None else 5,
211
+ "zero_as_missing": obj.get("zero_as_missing") if obj.get("zero_as_missing") is not None else True,
212
+ "bin_construct_sample_cnt": obj.get("bin_construct_sample_cnt") if obj.get("bin_construct_sample_cnt") is not None else 200000,
213
+ "verbose": obj.get("verbose") if obj.get("verbose") is not None else 1,
214
+ "verbose_eval": obj.get("verbose_eval") if obj.get("verbose_eval") is not None else 1,
215
+ "num_threads": obj.get("num_threads"),
216
+ "enable_resume": obj.get("enable_resume") if obj.get("enable_resume") is not None else True,
217
+ "lambdarank_truncation_level": obj.get("lambdarank_truncation_level") if obj.get("lambdarank_truncation_level") is not None else 53,
218
+ "calibrate": obj.get("calibrate") if obj.get("calibrate") is not None else False,
219
+ "event_value_user_affinity_features": obj.get("event_value_user_affinity_features") if obj.get("event_value_user_affinity_features") is not None else False,
220
+ "event_value_affinity_features_value_filter": obj.get("event_value_affinity_features_value_filter"),
221
+ "rolling_window_hours": obj.get("rolling_window_hours"),
222
+ "negative_affinity_features": obj.get("negative_affinity_features") if obj.get("negative_affinity_features") is not None else False,
223
+ "content_affinity_features": obj.get("content_affinity_features") if obj.get("content_affinity_features") is not None else False,
224
+ "content_affinity_features_batch_size": obj.get("content_affinity_features_batch_size") if obj.get("content_affinity_features_batch_size") is not None else 1024,
225
+ "content_affinity_max_num_latest_items": obj.get("content_affinity_max_num_latest_items"),
226
+ "content_affinity_embedding_ref": obj.get("content_affinity_embedding_ref"),
227
+ "container_categorical_to_multi_hot": obj.get("container_categorical_to_multi_hot") if obj.get("container_categorical_to_multi_hot") is not None else False,
228
+ "container_to_container_affinities": obj.get("container_to_container_affinities") if obj.get("container_to_container_affinities") is not None else True,
229
+ "point_in_time_item_feature": obj.get("point_in_time_item_feature") if obj.get("point_in_time_item_feature") is not None else False,
230
+ "drop_user_id": obj.get("drop_user_id") if obj.get("drop_user_id") is not None else True,
231
+ "drop_item_id": obj.get("drop_item_id") if obj.get("drop_item_id") is not None else False,
232
+ "early_stopping_rounds": obj.get("early_stopping_rounds"),
233
+ "include_attributes": obj.get("include_attributes"),
234
+ "normalize_numerical_features": obj.get("normalize_numerical_features") if obj.get("normalize_numerical_features") is not None else True,
235
+ "use_derived_timestamp_features": obj.get("use_derived_timestamp_features") if obj.get("use_derived_timestamp_features") is not None else True,
236
+ "balance_labels": obj.get("balance_labels") if obj.get("balance_labels") is not None else True
237
+ })
238
+ # store additional fields in additional_properties
239
+ for _key in obj.keys():
240
+ if _key not in cls.__properties:
241
+ _obj.additional_properties[_key] = obj.get(_key)
242
+
243
+ return _obj
244
+
245
+
@@ -0,0 +1,119 @@
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, StrictInt, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from shaped.autogen.models.laplace_smoothing import LaplaceSmoothing
23
+ from typing import Optional, Set
24
+ from typing_extensions import Self
25
+
26
+ class ShapedInternalRecsysPoliciesNgramModelPolicyNgramModelPolicyConfig(BaseModel):
27
+ """
28
+ ShapedInternalRecsysPoliciesNgramModelPolicyNgramModelPolicyConfig
29
+ """ # noqa: E501
30
+ policy_type: Optional[StrictStr] = 'ngram'
31
+ name: Optional[StrictStr] = None
32
+ event_values: Optional[List[StrictStr]] = None
33
+ n: Optional[StrictInt] = Field(default=3, description="Length of n-grams (sequences of n consecutive items).")
34
+ laplace_smoothing: Optional[LaplaceSmoothing] = None
35
+ __properties: ClassVar[List[str]] = ["policy_type", "name", "event_values", "n", "laplace_smoothing"]
36
+
37
+ @field_validator('policy_type')
38
+ def policy_type_validate_enum(cls, value):
39
+ """Validates the enum"""
40
+ if value is None:
41
+ return value
42
+
43
+ if value not in set(['ngram']):
44
+ raise ValueError("must be one of enum values ('ngram')")
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 ShapedInternalRecsysPoliciesNgramModelPolicyNgramModelPolicyConfig 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 laplace_smoothing
87
+ if self.laplace_smoothing:
88
+ _dict['laplace_smoothing'] = self.laplace_smoothing.to_dict()
89
+ # set to None if name (nullable) is None
90
+ # and model_fields_set contains the field
91
+ if self.name is None and "name" in self.model_fields_set:
92
+ _dict['name'] = None
93
+
94
+ # set to None if event_values (nullable) is None
95
+ # and model_fields_set contains the field
96
+ if self.event_values is None and "event_values" in self.model_fields_set:
97
+ _dict['event_values'] = None
98
+
99
+ return _dict
100
+
101
+ @classmethod
102
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
103
+ """Create an instance of ShapedInternalRecsysPoliciesNgramModelPolicyNgramModelPolicyConfig from a dict"""
104
+ if obj is None:
105
+ return None
106
+
107
+ if not isinstance(obj, dict):
108
+ return cls.model_validate(obj)
109
+
110
+ _obj = cls.model_validate({
111
+ "policy_type": obj.get("policy_type") if obj.get("policy_type") is not None else 'ngram',
112
+ "name": obj.get("name"),
113
+ "event_values": obj.get("event_values"),
114
+ "n": obj.get("n") if obj.get("n") is not None else 3,
115
+ "laplace_smoothing": LaplaceSmoothing.from_dict(obj["laplace_smoothing"]) if obj.get("laplace_smoothing") is not None else None
116
+ })
117
+ return _obj
118
+
119
+