shaped 2.0.1__py3-none-any.whl → 2.0.2__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 (323) hide show
  1. shaped/__init__.py +54 -4
  2. shaped/autogen/__init__.py +541 -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} +219 -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 +15 -8
  9. shaped/autogen/configuration.py +20 -9
  10. shaped/autogen/exceptions.py +19 -2
  11. shaped/autogen/models/__init__.py +254 -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 +136 -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 +126 -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 +123 -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 +134 -0
  65. shaped/autogen/models/entity_config.py +109 -0
  66. shaped/autogen/models/entity_journey.py +152 -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 +140 -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/global_filter.py +102 -0
  81. shaped/autogen/models/hidden_dropout_prob.py +136 -0
  82. shaped/autogen/models/hidden_size.py +136 -0
  83. shaped/autogen/models/hidden_size1.py +136 -0
  84. shaped/autogen/models/http_problem_response.py +115 -0
  85. shaped/autogen/models/http_validation_error.py +2 -2
  86. shaped/autogen/models/hugging_face_encoder.py +113 -0
  87. shaped/autogen/models/iceberg_table_config.py +154 -0
  88. shaped/autogen/models/index_config.py +101 -0
  89. shaped/autogen/models/inner_size.py +136 -0
  90. shaped/autogen/models/inner_size1.py +136 -0
  91. shaped/autogen/models/interaction_config.py +122 -0
  92. shaped/autogen/models/interaction_pooling_encoder.py +104 -0
  93. shaped/autogen/models/interaction_round_robin_encoder.py +104 -0
  94. shaped/autogen/models/item_attribute_pooling_encoder.py +124 -0
  95. shaped/autogen/models/journey.py +140 -0
  96. shaped/autogen/models/kafka_table_config.py +129 -0
  97. shaped/autogen/models/kinesis_table_config.py +140 -0
  98. shaped/autogen/models/kinesis_table_config_column_schema_value.py +136 -0
  99. shaped/autogen/models/label.py +90 -0
  100. shaped/autogen/models/label_type.py +37 -0
  101. shaped/autogen/models/laplace_smoothing.py +136 -0
  102. shaped/autogen/models/latency_scaling_policy.py +112 -0
  103. shaped/autogen/models/learning_rate.py +136 -0
  104. shaped/autogen/models/learning_rate1.py +136 -0
  105. shaped/autogen/models/learning_rate2.py +136 -0
  106. shaped/autogen/models/learning_rate3.py +136 -0
  107. shaped/autogen/models/lexical_search_mode.py +99 -0
  108. shaped/autogen/models/list_engines_response.py +95 -0
  109. shaped/autogen/models/list_tables_response.py +95 -0
  110. shaped/autogen/models/list_views_response.py +95 -0
  111. shaped/autogen/models/loss_types.py +37 -0
  112. shaped/autogen/models/lr.py +136 -0
  113. shaped/autogen/models/lr1.py +136 -0
  114. shaped/autogen/models/lr2.py +136 -0
  115. shaped/autogen/models/max_depth.py +136 -0
  116. shaped/autogen/models/max_leaves.py +136 -0
  117. shaped/autogen/models/max_seq_length.py +136 -0
  118. shaped/autogen/models/max_seq_length1.py +136 -0
  119. shaped/autogen/models/max_seq_length2.py +136 -0
  120. shaped/autogen/models/mode.py +134 -0
  121. shaped/autogen/models/mode1.py +134 -0
  122. shaped/autogen/models/mode2.py +136 -0
  123. shaped/autogen/models/mongo_db_table_config.py +147 -0
  124. shaped/autogen/models/mssql_table_config.py +155 -0
  125. shaped/autogen/models/{my_sql_dataset_config.py → my_sql_table_config.py} +45 -28
  126. shaped/autogen/models/n_epochs.py +136 -0
  127. shaped/autogen/models/n_epochs1.py +136 -0
  128. shaped/autogen/models/n_epochs2.py +136 -0
  129. shaped/autogen/models/n_estimators.py +136 -0
  130. shaped/autogen/models/n_heads.py +136 -0
  131. shaped/autogen/models/n_layers.py +136 -0
  132. shaped/autogen/models/neg_per_positive.py +136 -0
  133. shaped/autogen/models/negative_samples_count.py +136 -0
  134. shaped/autogen/models/ngram_tokenizer.py +103 -0
  135. shaped/autogen/models/no_op_config.py +117 -0
  136. shaped/autogen/models/num_blocks.py +136 -0
  137. shaped/autogen/models/num_heads.py +136 -0
  138. shaped/autogen/models/num_leaves.py +136 -0
  139. shaped/autogen/models/objective.py +40 -0
  140. shaped/autogen/models/objective1.py +134 -0
  141. shaped/autogen/models/online_store_config.py +89 -0
  142. shaped/autogen/models/pagination_config.py +87 -0
  143. shaped/autogen/models/parameter_definition.py +96 -0
  144. shaped/autogen/models/parameters_value.py +240 -0
  145. shaped/autogen/models/passthrough_score.py +104 -0
  146. shaped/autogen/models/personal_filter.py +104 -0
  147. shaped/autogen/models/pipeline_stage_explanation.py +118 -0
  148. shaped/autogen/models/policy.py +134 -0
  149. shaped/autogen/models/pool_fn.py +134 -0
  150. shaped/autogen/models/pooling_function.py +37 -0
  151. shaped/autogen/models/{postgres_dataset_config.py → postgres_table_config.py} +66 -28
  152. shaped/autogen/models/posthog_table_config.py +133 -0
  153. shaped/autogen/models/prebuilt_filter_step.py +113 -0
  154. shaped/autogen/models/precomputed_item_embedding.py +99 -0
  155. shaped/autogen/models/precomputed_user_embedding.py +99 -0
  156. shaped/autogen/models/query.py +136 -0
  157. shaped/autogen/models/query1.py +136 -0
  158. shaped/autogen/models/query_any_of.py +140 -0
  159. shaped/autogen/models/query_definition.py +106 -0
  160. shaped/autogen/models/query_encoder.py +194 -0
  161. shaped/autogen/models/query_explanation.py +197 -0
  162. shaped/autogen/models/query_request.py +121 -0
  163. shaped/autogen/models/query_result.py +113 -0
  164. shaped/autogen/models/query_table_config.py +99 -0
  165. shaped/autogen/models/rank_item_attribute_values_query_config.py +122 -0
  166. shaped/autogen/models/rank_query_config.py +167 -0
  167. shaped/autogen/models/rank_query_config_filter_inner.py +149 -0
  168. shaped/autogen/models/rank_query_config_reorder_inner.py +149 -0
  169. shaped/autogen/models/rank_query_config_retrieve_inner.py +196 -0
  170. shaped/autogen/models/recreate_rollout.py +97 -0
  171. shaped/autogen/models/{redshift_dataset_config.py → redshift_table_config.py} +48 -25
  172. shaped/autogen/models/reference_table_config.py +113 -0
  173. shaped/autogen/models/regularization.py +136 -0
  174. shaped/autogen/models/request.py +378 -0
  175. shaped/autogen/models/request1.py +140 -0
  176. shaped/autogen/models/requests_per_second_scaling_policy.py +112 -0
  177. shaped/autogen/models/response_get_view_details_views_view_name_get.py +134 -0
  178. shaped/autogen/models/result.py +145 -0
  179. shaped/autogen/models/result_embeddings_value.py +127 -0
  180. shaped/autogen/models/retriever.py +196 -0
  181. shaped/autogen/models/retriever1.py +196 -0
  182. shaped/autogen/models/rollout_config.py +91 -0
  183. shaped/autogen/models/rudderstack_table_config.py +106 -0
  184. shaped/autogen/models/sampling_strategy.py +36 -0
  185. shaped/autogen/models/saved_query_info_response.py +89 -0
  186. shaped/autogen/models/saved_query_list_response.py +87 -0
  187. shaped/autogen/models/saved_query_request.py +115 -0
  188. shaped/autogen/models/schema_config.py +117 -0
  189. shaped/autogen/models/score.py +134 -0
  190. shaped/autogen/models/score_ensemble.py +140 -0
  191. shaped/autogen/models/score_ensemble_policy_config.py +141 -0
  192. shaped/autogen/models/score_ensemble_policy_config_policies_inner.py +422 -0
  193. shaped/autogen/models/search_config.py +105 -0
  194. shaped/autogen/models/segment_table_config.py +106 -0
  195. shaped/autogen/models/sequence_length.py +136 -0
  196. shaped/autogen/models/server_config.py +87 -0
  197. shaped/autogen/models/setup_engine_response.py +87 -0
  198. shaped/autogen/models/shaped_internal_recsys_policies_als_model_policy_als_model_policy_config.py +148 -0
  199. shaped/autogen/models/shaped_internal_recsys_policies_beeformer_model_policy_beeformer_model_policy_beeformer_model_policy_config.py +154 -0
  200. shaped/autogen/models/shaped_internal_recsys_policies_bert_model_policy_bert_model_policy_bert_model_policy_config.py +209 -0
  201. shaped/autogen/models/shaped_internal_recsys_policies_chronological_model_policy_chronological_model_policy_config.py +137 -0
  202. shaped/autogen/models/shaped_internal_recsys_policies_elsa_model_policy_elsa_model_policy_elsa_model_policy_config.py +139 -0
  203. shaped/autogen/models/shaped_internal_recsys_policies_gsasrec_model_policy_gsasrec_model_policy_gsas_rec_model_policy_config.py +205 -0
  204. shaped/autogen/models/shaped_internal_recsys_policies_item2vec_model_policy_item2_vec_model_policy_config.py +140 -0
  205. shaped/autogen/models/shaped_internal_recsys_policies_item_content_similarity_model_policy_item_content_similarity_model_policy_config.py +152 -0
  206. shaped/autogen/models/shaped_internal_recsys_policies_lightgbm_model_policy_lightgbm_model_policy_light_gbm_model_policy_config.py +239 -0
  207. shaped/autogen/models/shaped_internal_recsys_policies_ngram_model_policy_ngram_model_policy_config.py +119 -0
  208. shaped/autogen/models/shaped_internal_recsys_policies_popular_model_policy_popular_model_policy_config.py +137 -0
  209. shaped/autogen/models/shaped_internal_recsys_policies_random_model_policy_random_model_policy_config.py +104 -0
  210. shaped/autogen/models/shaped_internal_recsys_policies_recently_popular_policy_recently_popular_policy_config.py +130 -0
  211. shaped/autogen/models/shaped_internal_recsys_policies_rising_popular_policy_rising_popular_policy_config.py +123 -0
  212. shaped/autogen/models/shaped_internal_recsys_policies_sasrec_model_policy_sasrec_model_policy_sas_rec_model_policy_config.py +224 -0
  213. shaped/autogen/models/shaped_internal_recsys_policies_svd_model_policy_svd_model_policy_config.py +119 -0
  214. shaped/autogen/models/shaped_internal_recsys_policies_two_tower_model_policy_two_tower_model_policy_two_tower_model_policy_config.py +159 -0
  215. shaped/autogen/models/shaped_internal_recsys_policies_user_item_content_similarity_model_policy_user_item_content_similarity_model_policy_config.py +131 -0
  216. shaped/autogen/models/shaped_internal_recsys_policies_widedeep_model_policy_wide_deep_model_policy_config.py +131 -0
  217. shaped/autogen/models/shaped_internal_recsys_policies_xgboost_model_policy_xg_boost_model_policy_config.py +149 -0
  218. shaped/autogen/models/shopify_table_config.py +156 -0
  219. shaped/autogen/models/similarity_retrieve_step.py +121 -0
  220. shaped/autogen/models/{snowflake_dataset_config.py → snowflake_table_config.py} +47 -18
  221. shaped/autogen/models/sql_transform_type.py +37 -0
  222. shaped/autogen/models/sql_view_config.py +111 -0
  223. shaped/autogen/models/stemmer_tokenizer.py +105 -0
  224. shaped/autogen/models/step_explanation.py +137 -0
  225. shaped/autogen/models/strategy.py +134 -0
  226. shaped/autogen/models/table.py +102 -0
  227. shaped/autogen/models/table_deployment_type.py +38 -0
  228. shaped/autogen/models/table_insert_arguments.py +87 -0
  229. shaped/autogen/models/table_insert_response.py +87 -0
  230. shaped/autogen/models/text_encoding.py +136 -0
  231. shaped/autogen/models/text_search_retrieve_step.py +121 -0
  232. shaped/autogen/models/time_frequency.py +136 -0
  233. shaped/autogen/models/time_window.py +136 -0
  234. shaped/autogen/models/time_window_in_days.py +142 -0
  235. shaped/autogen/models/tokenizer.py +149 -0
  236. shaped/autogen/models/trained_model_encoder.py +99 -0
  237. shaped/autogen/models/training_compute_config.py +99 -0
  238. shaped/autogen/models/training_config.py +121 -0
  239. shaped/autogen/models/training_config_models_inner.py +308 -0
  240. shaped/autogen/models/training_strategy.py +37 -0
  241. shaped/autogen/models/trending_mode.py +37 -0
  242. shaped/autogen/models/truncate_filter_step.py +106 -0
  243. shaped/autogen/models/tunable_bool.py +97 -0
  244. shaped/autogen/models/tunable_float.py +118 -0
  245. shaped/autogen/models/tunable_int.py +118 -0
  246. shaped/autogen/models/tunable_int_categorical.py +99 -0
  247. shaped/autogen/models/tunable_string.py +99 -0
  248. shaped/autogen/models/tuning_config.py +89 -0
  249. shaped/autogen/models/type.py +134 -0
  250. shaped/autogen/models/update_table_response.py +87 -0
  251. shaped/autogen/models/update_view_response.py +87 -0
  252. shaped/autogen/models/user_attribute_pooling_encoder.py +124 -0
  253. shaped/autogen/models/val_split.py +136 -0
  254. shaped/autogen/models/validation_error.py +13 -3
  255. shaped/autogen/models/validation_error_loc_inner.py +138 -0
  256. shaped/autogen/models/value_type.py +7 -5
  257. shaped/autogen/models/vector_search_mode.py +99 -0
  258. shaped/autogen/models/view.py +104 -0
  259. shaped/autogen/models/view_details_ai.py +140 -0
  260. shaped/autogen/models/view_details_ai_schema_value.py +153 -0
  261. shaped/autogen/models/view_details_sql.py +140 -0
  262. shaped/autogen/models/view_status.py +41 -0
  263. shaped/autogen/models/weight_decay.py +136 -0
  264. shaped/autogen/models/whitespace_tokenizer.py +97 -0
  265. shaped/autogen/models/window_size.py +136 -0
  266. shaped/autogen/rest.py +8 -2
  267. shaped/cli/shaped_cli.py +12 -7
  268. shaped/client.py +587 -174
  269. shaped/config_builders.py +695 -0
  270. shaped/query_builder.py +774 -0
  271. {shaped-2.0.1.dist-info → shaped-2.0.2.dist-info}/METADATA +140 -5
  272. shaped-2.0.2.dist-info/RECORD +278 -0
  273. shaped-2.0.2.dist-info/entry_points.txt +2 -0
  274. shaped/autogen/api/model_inference_api.py +0 -2825
  275. shaped/autogen/models/amplitude_dataset_config.py +0 -96
  276. shaped/autogen/models/aws_pinpoint_dataset_config.py +0 -96
  277. shaped/autogen/models/big_query_dataset_config.py +0 -114
  278. shaped/autogen/models/complement_items_request.py +0 -99
  279. shaped/autogen/models/complement_items_response.py +0 -89
  280. shaped/autogen/models/connectors_inner.py +0 -134
  281. shaped/autogen/models/create_dataset_arguments.py +0 -263
  282. shaped/autogen/models/create_embedding_response.py +0 -87
  283. shaped/autogen/models/create_item_embedding_request.py +0 -89
  284. shaped/autogen/models/create_model_arguments.py +0 -107
  285. shaped/autogen/models/create_model_response.py +0 -87
  286. shaped/autogen/models/create_user_embedding_request.py +0 -89
  287. shaped/autogen/models/custom_dataset_config.py +0 -115
  288. shaped/autogen/models/dataset_config.py +0 -101
  289. shaped/autogen/models/dataset_schema_type.py +0 -47
  290. shaped/autogen/models/datasets_inner.py +0 -91
  291. shaped/autogen/models/delete_model_response.py +0 -87
  292. shaped/autogen/models/fetch_config.py +0 -95
  293. shaped/autogen/models/file_config.py +0 -105
  294. shaped/autogen/models/file_source_config.py +0 -89
  295. shaped/autogen/models/inference_config.py +0 -101
  296. shaped/autogen/models/insert_model_response.py +0 -87
  297. shaped/autogen/models/interaction.py +0 -87
  298. shaped/autogen/models/list_datasets_response.py +0 -95
  299. shaped/autogen/models/list_models_response.py +0 -95
  300. shaped/autogen/models/model_config.py +0 -99
  301. shaped/autogen/models/model_response.py +0 -95
  302. shaped/autogen/models/mongo_db_dataset_config.py +0 -119
  303. shaped/autogen/models/post_rank_request.py +0 -117
  304. shaped/autogen/models/rank_attribute_response.py +0 -89
  305. shaped/autogen/models/rank_grid_attribute_request.py +0 -91
  306. shaped/autogen/models/rank_grid_attribute_request1.py +0 -93
  307. shaped/autogen/models/rank_grid_attribute_response.py +0 -91
  308. shaped/autogen/models/rank_response.py +0 -91
  309. shaped/autogen/models/retrieve_request.py +0 -101
  310. shaped/autogen/models/retrieve_response.py +0 -91
  311. shaped/autogen/models/retriever_top_k_override.py +0 -97
  312. shaped/autogen/models/rudder_stack_dataset_config.py +0 -96
  313. shaped/autogen/models/segment_dataset_config.py +0 -96
  314. shaped/autogen/models/similar_item_request.py +0 -101
  315. shaped/autogen/models/similar_response.py +0 -89
  316. shaped/autogen/models/similar_users_request.py +0 -99
  317. shaped/autogen/models/successful_response.py +0 -87
  318. shaped/autogen/models/view_model_response.py +0 -99
  319. shaped-2.0.1.dist-info/RECORD +0 -73
  320. shaped-2.0.1.dist-info/entry_points.txt +0 -2
  321. {shaped-2.0.1.dist-info → shaped-2.0.2.dist-info}/WHEEL +0 -0
  322. {shaped-2.0.1.dist-info → shaped-2.0.2.dist-info}/top_level.txt +0 -0
  323. {shaped-2.0.1.dist-info → shaped-2.0.2.dist-info}/zip-safe +0 -0
@@ -0,0 +1,205 @@
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
+ 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.batch_size1 import BatchSize1
23
+ from shaped.autogen.models.dropout_rate import DropoutRate
24
+ from shaped.autogen.models.embedding_dim import EmbeddingDim
25
+ from shaped.autogen.models.learning_rate import LearningRate
26
+ from shaped.autogen.models.n_epochs1 import NEpochs1
27
+ from shaped.autogen.models.neg_per_positive import NegPerPositive
28
+ from shaped.autogen.models.num_blocks import NumBlocks
29
+ from shaped.autogen.models.num_heads import NumHeads
30
+ from shaped.autogen.models.sequence_length import SequenceLength
31
+ from typing import Optional, Set
32
+ from typing_extensions import Self
33
+
34
+ class ShapedInternalRecsysPoliciesGsasrecModelPolicyGsasrecModelPolicyGSASRecModelPolicyConfig(BaseModel):
35
+ """
36
+ ShapedInternalRecsysPoliciesGsasrecModelPolicyGsasrecModelPolicyGSASRecModelPolicyConfig
37
+ """ # noqa: E501
38
+ policy_type: Optional[StrictStr] = 'gsasrec'
39
+ name: Optional[StrictStr] = None
40
+ event_values: Optional[List[StrictStr]] = None
41
+ batch_size: Optional[BatchSize1] = None
42
+ eval_batch_size: Optional[StrictInt] = Field(default=32, description="Batch size used during model evaluation.")
43
+ n_epochs: Optional[NEpochs1] = None
44
+ device: Optional[StrictStr] = None
45
+ learning_rate: Optional[LearningRate] = None
46
+ weight_decay: Optional[Union[StrictFloat, StrictInt]] = Field(default=5.0E-4, description="L2 regularization term to prevent overfitting.")
47
+ patience: Optional[StrictInt] = Field(default=3, description="Number of epochs to wait without improvement before early stopping.")
48
+ sequence_length: Optional[SequenceLength] = None
49
+ embedding_dim: Optional[EmbeddingDim] = None
50
+ num_heads: Optional[NumHeads] = None
51
+ num_blocks: Optional[NumBlocks] = None
52
+ dropout_rate: Optional[DropoutRate] = None
53
+ reuse_item_embeddings: Optional[StrictBool] = False
54
+ max_batches_per_epoch: Optional[StrictInt] = 100
55
+ gbce_t: Optional[Union[StrictFloat, StrictInt]] = 0.75
56
+ filter_rated: Optional[StrictBool] = False
57
+ neg_per_positive: Optional[NegPerPositive] = None
58
+ eval_after_epochs: Optional[StrictInt] = 1
59
+ split_ratio: Optional[Union[StrictFloat, StrictInt]] = 0.9
60
+ eps: Optional[Union[StrictFloat, StrictInt]] = 1.0E-10
61
+ additional_properties: Dict[str, Any] = {}
62
+ __properties: ClassVar[List[str]] = ["policy_type", "name", "event_values", "batch_size", "eval_batch_size", "n_epochs", "device", "learning_rate", "weight_decay", "patience", "sequence_length", "embedding_dim", "num_heads", "num_blocks", "dropout_rate", "reuse_item_embeddings", "max_batches_per_epoch", "gbce_t", "filter_rated", "neg_per_positive", "eval_after_epochs", "split_ratio", "eps"]
63
+
64
+ @field_validator('policy_type')
65
+ def policy_type_validate_enum(cls, value):
66
+ """Validates the enum"""
67
+ if value is None:
68
+ return value
69
+
70
+ if value not in set(['gsasrec']):
71
+ raise ValueError("must be one of enum values ('gsasrec')")
72
+ return value
73
+
74
+ model_config = ConfigDict(
75
+ populate_by_name=True,
76
+ validate_assignment=True,
77
+ protected_namespaces=(),
78
+ )
79
+
80
+
81
+ def to_str(self) -> str:
82
+ """Returns the string representation of the model using alias"""
83
+ return pprint.pformat(self.model_dump(by_alias=True))
84
+
85
+ def to_json(self) -> str:
86
+ """Returns the JSON representation of the model using alias"""
87
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
88
+ return json.dumps(self.to_dict())
89
+
90
+ @classmethod
91
+ def from_json(cls, json_str: str) -> Optional[Self]:
92
+ """Create an instance of ShapedInternalRecsysPoliciesGsasrecModelPolicyGsasrecModelPolicyGSASRecModelPolicyConfig from a JSON string"""
93
+ return cls.from_dict(json.loads(json_str))
94
+
95
+ def to_dict(self) -> Dict[str, Any]:
96
+ """Return the dictionary representation of the model using alias.
97
+
98
+ This has the following differences from calling pydantic's
99
+ `self.model_dump(by_alias=True)`:
100
+
101
+ * `None` is only added to the output dict for nullable fields that
102
+ were set at model initialization. Other fields with value `None`
103
+ are ignored.
104
+ * Fields in `self.additional_properties` are added to the output dict.
105
+ """
106
+ excluded_fields: Set[str] = set([
107
+ "additional_properties",
108
+ ])
109
+
110
+ _dict = self.model_dump(
111
+ by_alias=True,
112
+ exclude=excluded_fields,
113
+ exclude_none=True,
114
+ )
115
+ # override the default output from pydantic by calling `to_dict()` of batch_size
116
+ if self.batch_size:
117
+ _dict['batch_size'] = self.batch_size.to_dict()
118
+ # override the default output from pydantic by calling `to_dict()` of n_epochs
119
+ if self.n_epochs:
120
+ _dict['n_epochs'] = self.n_epochs.to_dict()
121
+ # override the default output from pydantic by calling `to_dict()` of learning_rate
122
+ if self.learning_rate:
123
+ _dict['learning_rate'] = self.learning_rate.to_dict()
124
+ # override the default output from pydantic by calling `to_dict()` of sequence_length
125
+ if self.sequence_length:
126
+ _dict['sequence_length'] = self.sequence_length.to_dict()
127
+ # override the default output from pydantic by calling `to_dict()` of embedding_dim
128
+ if self.embedding_dim:
129
+ _dict['embedding_dim'] = self.embedding_dim.to_dict()
130
+ # override the default output from pydantic by calling `to_dict()` of num_heads
131
+ if self.num_heads:
132
+ _dict['num_heads'] = self.num_heads.to_dict()
133
+ # override the default output from pydantic by calling `to_dict()` of num_blocks
134
+ if self.num_blocks:
135
+ _dict['num_blocks'] = self.num_blocks.to_dict()
136
+ # override the default output from pydantic by calling `to_dict()` of dropout_rate
137
+ if self.dropout_rate:
138
+ _dict['dropout_rate'] = self.dropout_rate.to_dict()
139
+ # override the default output from pydantic by calling `to_dict()` of neg_per_positive
140
+ if self.neg_per_positive:
141
+ _dict['neg_per_positive'] = self.neg_per_positive.to_dict()
142
+ # puts key-value pairs in additional_properties in the top level
143
+ if self.additional_properties is not None:
144
+ for _key, _value in self.additional_properties.items():
145
+ _dict[_key] = _value
146
+
147
+ # set to None if name (nullable) is None
148
+ # and model_fields_set contains the field
149
+ if self.name is None and "name" in self.model_fields_set:
150
+ _dict['name'] = None
151
+
152
+ # set to None if event_values (nullable) is None
153
+ # and model_fields_set contains the field
154
+ if self.event_values is None and "event_values" in self.model_fields_set:
155
+ _dict['event_values'] = None
156
+
157
+ # set to None if device (nullable) is None
158
+ # and model_fields_set contains the field
159
+ if self.device is None and "device" in self.model_fields_set:
160
+ _dict['device'] = None
161
+
162
+ return _dict
163
+
164
+ @classmethod
165
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
166
+ """Create an instance of ShapedInternalRecsysPoliciesGsasrecModelPolicyGsasrecModelPolicyGSASRecModelPolicyConfig from a dict"""
167
+ if obj is None:
168
+ return None
169
+
170
+ if not isinstance(obj, dict):
171
+ return cls.model_validate(obj)
172
+
173
+ _obj = cls.model_validate({
174
+ "policy_type": obj.get("policy_type") if obj.get("policy_type") is not None else 'gsasrec',
175
+ "name": obj.get("name"),
176
+ "event_values": obj.get("event_values"),
177
+ "batch_size": BatchSize1.from_dict(obj["batch_size"]) if obj.get("batch_size") is not None else None,
178
+ "eval_batch_size": obj.get("eval_batch_size") if obj.get("eval_batch_size") is not None else 32,
179
+ "n_epochs": NEpochs1.from_dict(obj["n_epochs"]) if obj.get("n_epochs") is not None else None,
180
+ "device": obj.get("device"),
181
+ "learning_rate": LearningRate.from_dict(obj["learning_rate"]) if obj.get("learning_rate") is not None else None,
182
+ "weight_decay": obj.get("weight_decay") if obj.get("weight_decay") is not None else 5.0E-4,
183
+ "patience": obj.get("patience") if obj.get("patience") is not None else 3,
184
+ "sequence_length": SequenceLength.from_dict(obj["sequence_length"]) if obj.get("sequence_length") is not None else None,
185
+ "embedding_dim": EmbeddingDim.from_dict(obj["embedding_dim"]) if obj.get("embedding_dim") is not None else None,
186
+ "num_heads": NumHeads.from_dict(obj["num_heads"]) if obj.get("num_heads") is not None else None,
187
+ "num_blocks": NumBlocks.from_dict(obj["num_blocks"]) if obj.get("num_blocks") is not None else None,
188
+ "dropout_rate": DropoutRate.from_dict(obj["dropout_rate"]) if obj.get("dropout_rate") is not None else None,
189
+ "reuse_item_embeddings": obj.get("reuse_item_embeddings") if obj.get("reuse_item_embeddings") is not None else False,
190
+ "max_batches_per_epoch": obj.get("max_batches_per_epoch") if obj.get("max_batches_per_epoch") is not None else 100,
191
+ "gbce_t": obj.get("gbce_t") if obj.get("gbce_t") is not None else 0.75,
192
+ "filter_rated": obj.get("filter_rated") if obj.get("filter_rated") is not None else False,
193
+ "neg_per_positive": NegPerPositive.from_dict(obj["neg_per_positive"]) if obj.get("neg_per_positive") is not None else None,
194
+ "eval_after_epochs": obj.get("eval_after_epochs") if obj.get("eval_after_epochs") is not None else 1,
195
+ "split_ratio": obj.get("split_ratio") if obj.get("split_ratio") is not None else 0.9,
196
+ "eps": obj.get("eps") if obj.get("eps") is not None else 1.0E-10
197
+ })
198
+ # store additional fields in additional_properties
199
+ for _key in obj.keys():
200
+ if _key not in cls.__properties:
201
+ _obj.additional_properties[_key] = obj.get(_key)
202
+
203
+ return _obj
204
+
205
+
@@ -0,0 +1,140 @@
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
+ 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.algorithm import Algorithm
23
+ from shaped.autogen.models.embedding_size import EmbeddingSize
24
+ from shaped.autogen.models.window_size import WindowSize
25
+ from typing import Optional, Set
26
+ from typing_extensions import Self
27
+
28
+ class ShapedInternalRecsysPoliciesItem2vecModelPolicyItem2VecModelPolicyConfig(BaseModel):
29
+ """
30
+ ShapedInternalRecsysPoliciesItem2vecModelPolicyItem2VecModelPolicyConfig
31
+ """ # noqa: E501
32
+ policy_type: Optional[StrictStr] = 'item2vec'
33
+ name: Optional[StrictStr] = None
34
+ event_values: Optional[List[StrictStr]] = None
35
+ embedding_size: Optional[EmbeddingSize] = None
36
+ window_size: Optional[WindowSize] = None
37
+ min_count: Optional[StrictInt] = Field(default=1, description="Minimum number of times an item must appear to be included in the vocabulary.")
38
+ algorithm: Optional[Algorithm] = None
39
+ max_window_size: Optional[StrictInt] = Field(default=50, description="Maximum window size for context.")
40
+ workers: Optional[StrictInt] = None
41
+ __properties: ClassVar[List[str]] = ["policy_type", "name", "event_values", "embedding_size", "window_size", "min_count", "algorithm", "max_window_size", "workers"]
42
+
43
+ @field_validator('policy_type')
44
+ def policy_type_validate_enum(cls, value):
45
+ """Validates the enum"""
46
+ if value is None:
47
+ return value
48
+
49
+ if value not in set(['item2vec']):
50
+ raise ValueError("must be one of enum values ('item2vec')")
51
+ return value
52
+
53
+ model_config = ConfigDict(
54
+ populate_by_name=True,
55
+ validate_assignment=True,
56
+ protected_namespaces=(),
57
+ )
58
+
59
+
60
+ def to_str(self) -> str:
61
+ """Returns the string representation of the model using alias"""
62
+ return pprint.pformat(self.model_dump(by_alias=True))
63
+
64
+ def to_json(self) -> str:
65
+ """Returns the JSON representation of the model using alias"""
66
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
67
+ return json.dumps(self.to_dict())
68
+
69
+ @classmethod
70
+ def from_json(cls, json_str: str) -> Optional[Self]:
71
+ """Create an instance of ShapedInternalRecsysPoliciesItem2vecModelPolicyItem2VecModelPolicyConfig from a JSON string"""
72
+ return cls.from_dict(json.loads(json_str))
73
+
74
+ def to_dict(self) -> Dict[str, Any]:
75
+ """Return the dictionary representation of the model using alias.
76
+
77
+ This has the following differences from calling pydantic's
78
+ `self.model_dump(by_alias=True)`:
79
+
80
+ * `None` is only added to the output dict for nullable fields that
81
+ were set at model initialization. Other fields with value `None`
82
+ are ignored.
83
+ """
84
+ excluded_fields: Set[str] = set([
85
+ ])
86
+
87
+ _dict = self.model_dump(
88
+ by_alias=True,
89
+ exclude=excluded_fields,
90
+ exclude_none=True,
91
+ )
92
+ # override the default output from pydantic by calling `to_dict()` of embedding_size
93
+ if self.embedding_size:
94
+ _dict['embedding_size'] = self.embedding_size.to_dict()
95
+ # override the default output from pydantic by calling `to_dict()` of window_size
96
+ if self.window_size:
97
+ _dict['window_size'] = self.window_size.to_dict()
98
+ # override the default output from pydantic by calling `to_dict()` of algorithm
99
+ if self.algorithm:
100
+ _dict['algorithm'] = self.algorithm.to_dict()
101
+ # set to None if name (nullable) is None
102
+ # and model_fields_set contains the field
103
+ if self.name is None and "name" in self.model_fields_set:
104
+ _dict['name'] = None
105
+
106
+ # set to None if event_values (nullable) is None
107
+ # and model_fields_set contains the field
108
+ if self.event_values is None and "event_values" in self.model_fields_set:
109
+ _dict['event_values'] = None
110
+
111
+ # set to None if workers (nullable) is None
112
+ # and model_fields_set contains the field
113
+ if self.workers is None and "workers" in self.model_fields_set:
114
+ _dict['workers'] = None
115
+
116
+ return _dict
117
+
118
+ @classmethod
119
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
120
+ """Create an instance of ShapedInternalRecsysPoliciesItem2vecModelPolicyItem2VecModelPolicyConfig from a dict"""
121
+ if obj is None:
122
+ return None
123
+
124
+ if not isinstance(obj, dict):
125
+ return cls.model_validate(obj)
126
+
127
+ _obj = cls.model_validate({
128
+ "policy_type": obj.get("policy_type") if obj.get("policy_type") is not None else 'item2vec',
129
+ "name": obj.get("name"),
130
+ "event_values": obj.get("event_values"),
131
+ "embedding_size": EmbeddingSize.from_dict(obj["embedding_size"]) if obj.get("embedding_size") is not None else None,
132
+ "window_size": WindowSize.from_dict(obj["window_size"]) if obj.get("window_size") is not None else None,
133
+ "min_count": obj.get("min_count") if obj.get("min_count") is not None else 1,
134
+ "algorithm": Algorithm.from_dict(obj["algorithm"]) if obj.get("algorithm") is not None else None,
135
+ "max_window_size": obj.get("max_window_size") if obj.get("max_window_size") is not None else 50,
136
+ "workers": obj.get("workers")
137
+ })
138
+ return _obj
139
+
140
+
@@ -0,0 +1,152 @@
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
+ import pprint
17
+ import re # noqa: F401
18
+ import json
19
+
20
+ from pydantic import BaseModel, ConfigDict, StrictBool, StrictStr, field_validator
21
+ from typing import Any, ClassVar, Dict, List, Optional
22
+ from shaped.autogen.models.distance_function import DistanceFunction
23
+ from shaped.autogen.models.pool_fn import PoolFn
24
+ from shaped.autogen.models.text_encoding import TextEncoding
25
+ from typing import Optional, Set
26
+ from typing_extensions import Self
27
+
28
+ class ShapedInternalRecsysPoliciesItemContentSimilarityModelPolicyItemContentSimilarityModelPolicyConfig(BaseModel):
29
+ """
30
+ ShapedInternalRecsysPoliciesItemContentSimilarityModelPolicyItemContentSimilarityModelPolicyConfig
31
+ """ # noqa: E501
32
+ policy_type: Optional[StrictStr] = 'item-content-similarity'
33
+ name: Optional[StrictStr] = None
34
+ event_values: Optional[List[StrictStr]] = None
35
+ pool_fn: Optional[PoolFn] = None
36
+ include_item_id: Optional[StrictBool] = True
37
+ text_encoding: Optional[TextEncoding] = None
38
+ categorical_and_numerical_encoding: Optional[StrictBool] = False
39
+ distance_fn: Optional[DistanceFunction] = None
40
+ encode_items_using_stored_factors: Optional[StrictBool] = True
41
+ item_feature_names: Optional[List[StrictStr]] = None
42
+ additional_properties: Dict[str, Any] = {}
43
+ __properties: ClassVar[List[str]] = ["policy_type", "name", "event_values", "pool_fn", "include_item_id", "text_encoding", "categorical_and_numerical_encoding", "distance_fn", "encode_items_using_stored_factors", "item_feature_names"]
44
+
45
+ @field_validator('policy_type')
46
+ def policy_type_validate_enum(cls, value):
47
+ """Validates the enum"""
48
+ if value is None:
49
+ return value
50
+
51
+ if value not in set(['item-content-similarity']):
52
+ raise ValueError("must be one of enum values ('item-content-similarity')")
53
+ return value
54
+
55
+ model_config = ConfigDict(
56
+ populate_by_name=True,
57
+ validate_assignment=True,
58
+ protected_namespaces=(),
59
+ )
60
+
61
+
62
+ def to_str(self) -> str:
63
+ """Returns the string representation of the model using alias"""
64
+ return pprint.pformat(self.model_dump(by_alias=True))
65
+
66
+ def to_json(self) -> str:
67
+ """Returns the JSON representation of the model using alias"""
68
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
69
+ return json.dumps(self.to_dict())
70
+
71
+ @classmethod
72
+ def from_json(cls, json_str: str) -> Optional[Self]:
73
+ """Create an instance of ShapedInternalRecsysPoliciesItemContentSimilarityModelPolicyItemContentSimilarityModelPolicyConfig from a JSON string"""
74
+ return cls.from_dict(json.loads(json_str))
75
+
76
+ def to_dict(self) -> Dict[str, Any]:
77
+ """Return the dictionary representation of the model using alias.
78
+
79
+ This has the following differences from calling pydantic's
80
+ `self.model_dump(by_alias=True)`:
81
+
82
+ * `None` is only added to the output dict for nullable fields that
83
+ were set at model initialization. Other fields with value `None`
84
+ are ignored.
85
+ * Fields in `self.additional_properties` are added to the output dict.
86
+ """
87
+ excluded_fields: Set[str] = set([
88
+ "additional_properties",
89
+ ])
90
+
91
+ _dict = self.model_dump(
92
+ by_alias=True,
93
+ exclude=excluded_fields,
94
+ exclude_none=True,
95
+ )
96
+ # override the default output from pydantic by calling `to_dict()` of pool_fn
97
+ if self.pool_fn:
98
+ _dict['pool_fn'] = self.pool_fn.to_dict()
99
+ # override the default output from pydantic by calling `to_dict()` of text_encoding
100
+ if self.text_encoding:
101
+ _dict['text_encoding'] = self.text_encoding.to_dict()
102
+ # puts key-value pairs in additional_properties in the top level
103
+ if self.additional_properties is not None:
104
+ for _key, _value in self.additional_properties.items():
105
+ _dict[_key] = _value
106
+
107
+ # set to None if name (nullable) is None
108
+ # and model_fields_set contains the field
109
+ if self.name is None and "name" in self.model_fields_set:
110
+ _dict['name'] = None
111
+
112
+ # set to None if event_values (nullable) is None
113
+ # and model_fields_set contains the field
114
+ if self.event_values is None and "event_values" in self.model_fields_set:
115
+ _dict['event_values'] = None
116
+
117
+ # set to None if item_feature_names (nullable) is None
118
+ # and model_fields_set contains the field
119
+ if self.item_feature_names is None and "item_feature_names" in self.model_fields_set:
120
+ _dict['item_feature_names'] = None
121
+
122
+ return _dict
123
+
124
+ @classmethod
125
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
126
+ """Create an instance of ShapedInternalRecsysPoliciesItemContentSimilarityModelPolicyItemContentSimilarityModelPolicyConfig from a dict"""
127
+ if obj is None:
128
+ return None
129
+
130
+ if not isinstance(obj, dict):
131
+ return cls.model_validate(obj)
132
+
133
+ _obj = cls.model_validate({
134
+ "policy_type": obj.get("policy_type") if obj.get("policy_type") is not None else 'item-content-similarity',
135
+ "name": obj.get("name"),
136
+ "event_values": obj.get("event_values"),
137
+ "pool_fn": PoolFn.from_dict(obj["pool_fn"]) if obj.get("pool_fn") is not None else None,
138
+ "include_item_id": obj.get("include_item_id") if obj.get("include_item_id") is not None else True,
139
+ "text_encoding": TextEncoding.from_dict(obj["text_encoding"]) if obj.get("text_encoding") is not None else None,
140
+ "categorical_and_numerical_encoding": obj.get("categorical_and_numerical_encoding") if obj.get("categorical_and_numerical_encoding") is not None else False,
141
+ "distance_fn": obj.get("distance_fn"),
142
+ "encode_items_using_stored_factors": obj.get("encode_items_using_stored_factors") if obj.get("encode_items_using_stored_factors") is not None else True,
143
+ "item_feature_names": obj.get("item_feature_names")
144
+ })
145
+ # store additional fields in additional_properties
146
+ for _key in obj.keys():
147
+ if _key not in cls.__properties:
148
+ _obj.additional_properties[_key] = obj.get(_key)
149
+
150
+ return _obj
151
+
152
+