shaped 2.0.2__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 (294) hide show
  1. shaped/__init__.py +47 -42
  2. shaped/autogen/__init__.py +37 -51
  3. shaped/autogen/api/engine_api.py +1 -1
  4. shaped/autogen/api/query_api.py +8 -68
  5. shaped/autogen/api/table_api.py +1 -1
  6. shaped/autogen/api/view_api.py +1 -1
  7. shaped/autogen/api_client.py +4 -4
  8. shaped/autogen/configuration.py +5 -3
  9. shaped/autogen/exceptions.py +7 -4
  10. shaped/autogen/models/__init__.py +19 -26
  11. shaped/autogen/models/ai_enrichment_view_config.py +1 -1
  12. shaped/autogen/models/algorithm.py +1 -1
  13. shaped/autogen/models/amplitude_table_config.py +1 -1
  14. shaped/autogen/models/ascending.py +29 -17
  15. shaped/autogen/models/attn_dropout_prob.py +1 -1
  16. shaped/autogen/models/attribute_journey.py +1 -1
  17. shaped/autogen/models/attribute_value.py +1 -1
  18. shaped/autogen/models/autoscaling_config.py +1 -1
  19. shaped/autogen/models/aws_pinpoint_table_config.py +1 -1
  20. shaped/autogen/models/batch_size.py +1 -1
  21. shaped/autogen/models/batch_size1.py +1 -1
  22. shaped/autogen/models/batch_size2.py +1 -1
  23. shaped/autogen/models/big_query_table_config.py +1 -1
  24. shaped/autogen/models/bm25.py +1 -1
  25. shaped/autogen/models/boosted_reorder_step.py +1 -1
  26. shaped/autogen/models/canary_rollout.py +1 -1
  27. shaped/autogen/models/candidate_attributes_retrieve_step.py +1 -14
  28. shaped/autogen/models/candidate_ids_retrieve_step.py +1 -1
  29. shaped/autogen/models/candidate_retrieval_strategy.py +1 -1
  30. shaped/autogen/models/clickhouse_table_config.py +1 -1
  31. shaped/autogen/models/column_order_retrieve_step.py +1 -1
  32. shaped/autogen/models/column_ordering.py +1 -1
  33. shaped/autogen/models/create_table_response.py +1 -1
  34. shaped/autogen/models/create_view_response.py +1 -1
  35. shaped/autogen/models/custom_table_config.py +1 -1
  36. shaped/autogen/models/data_compute_config.py +1 -1
  37. shaped/autogen/models/data_config.py +1 -1
  38. shaped/autogen/models/data_config_interaction_table.py +1 -1
  39. shaped/autogen/models/data_split_config.py +1 -1
  40. shaped/autogen/models/data_split_strategy.py +1 -1
  41. shaped/autogen/models/data_tier.py +1 -1
  42. shaped/autogen/models/default.py +1 -1
  43. shaped/autogen/models/delete_engine_response.py +1 -1
  44. shaped/autogen/models/delete_table_response.py +1 -1
  45. shaped/autogen/models/delete_view_response.py +1 -1
  46. shaped/autogen/models/deployment_config.py +2 -8
  47. shaped/autogen/models/distance_function.py +5 -5
  48. shaped/autogen/models/diversity_reorder_step.py +1 -1
  49. shaped/autogen/models/dropout_rate.py +1 -1
  50. shaped/autogen/models/dynamo_db_table_config.py +1 -1
  51. shaped/autogen/models/dynamo_db_table_config_scan_kwargs_value.py +1 -1
  52. shaped/autogen/models/embedder_batch_size.py +1 -1
  53. shaped/autogen/models/embedding_config.py +1 -1
  54. shaped/autogen/models/embedding_dim.py +1 -1
  55. shaped/autogen/models/embedding_dims.py +1 -1
  56. shaped/autogen/models/embedding_size.py +1 -1
  57. shaped/autogen/models/encoder.py +1 -1
  58. shaped/autogen/models/encoding_pooling_strategy.py +5 -5
  59. shaped/autogen/models/engine.py +1 -1
  60. shaped/autogen/models/engine_config_v2.py +1 -1
  61. shaped/autogen/models/engine_details_response.py +1 -1
  62. shaped/autogen/models/engine_schema.py +8 -8
  63. shaped/autogen/models/engine_schema_user_inner.py +30 -18
  64. shaped/autogen/models/entity_config.py +1 -1
  65. shaped/autogen/models/entity_journey.py +28 -19
  66. shaped/autogen/models/entity_type.py +1 -1
  67. shaped/autogen/models/evaluation_config.py +1 -1
  68. shaped/autogen/models/exploration_reorder_step.py +1 -1
  69. shaped/autogen/models/expression_filter_step.py +1 -1
  70. shaped/autogen/models/factors.py +1 -1
  71. shaped/autogen/models/factors1.py +1 -1
  72. shaped/autogen/models/feature.py +1 -1
  73. shaped/autogen/models/feature_type.py +1 -1
  74. shaped/autogen/models/file_table_config.py +1 -1
  75. shaped/autogen/models/filter_config.py +14 -14
  76. shaped/autogen/models/filter_dataset.py +47 -23
  77. shaped/autogen/models/filter_index_type.py +1 -1
  78. shaped/autogen/models/filter_retrieve_step.py +1 -1
  79. shaped/autogen/models/filter_step_explanation.py +165 -0
  80. shaped/autogen/models/filter_table.py +140 -0
  81. shaped/autogen/models/filter_type.py +134 -0
  82. shaped/autogen/models/global_filter.py +1 -1
  83. shaped/autogen/models/hidden_dropout_prob.py +1 -1
  84. shaped/autogen/models/hidden_size.py +1 -1
  85. shaped/autogen/models/hidden_size1.py +1 -1
  86. shaped/autogen/models/http_problem_response.py +1 -1
  87. shaped/autogen/models/http_validation_error.py +1 -1
  88. shaped/autogen/models/hugging_face_encoder.py +6 -4
  89. shaped/autogen/models/iceberg_table_config.py +1 -1
  90. shaped/autogen/models/index_config.py +1 -1
  91. shaped/autogen/models/inner_entity_id.py +144 -0
  92. shaped/autogen/models/inner_size.py +1 -1
  93. shaped/autogen/models/inner_size1.py +1 -1
  94. shaped/autogen/models/inner_uid.py +144 -0
  95. shaped/autogen/models/interaction_config.py +1 -1
  96. shaped/autogen/models/interaction_pooling_encoder.py +1 -1
  97. shaped/autogen/models/interaction_round_robin_encoder.py +1 -1
  98. shaped/autogen/models/item_attribute_pooling_encoder.py +1 -14
  99. shaped/autogen/models/journey.py +1 -1
  100. shaped/autogen/models/kafka_table_config.py +1 -1
  101. shaped/autogen/models/kinesis_table_config.py +1 -1
  102. shaped/autogen/models/kinesis_table_config_column_schema_value.py +1 -1
  103. shaped/autogen/models/label.py +1 -1
  104. shaped/autogen/models/label_type.py +1 -2
  105. shaped/autogen/models/laplace_smoothing.py +1 -1
  106. shaped/autogen/models/latency_scaling_policy.py +1 -1
  107. shaped/autogen/models/learning_rate.py +1 -1
  108. shaped/autogen/models/learning_rate1.py +1 -1
  109. shaped/autogen/models/learning_rate2.py +1 -1
  110. shaped/autogen/models/learning_rate3.py +1 -1
  111. shaped/autogen/models/lexical_search_mode.py +3 -3
  112. shaped/autogen/models/list_engines_response.py +1 -1
  113. shaped/autogen/models/list_tables_response.py +1 -1
  114. shaped/autogen/models/list_views_response.py +1 -1
  115. shaped/autogen/models/location_inner.py +138 -0
  116. shaped/autogen/models/loss_types.py +1 -1
  117. shaped/autogen/models/lr.py +1 -1
  118. shaped/autogen/models/lr1.py +1 -1
  119. shaped/autogen/models/lr2.py +1 -1
  120. shaped/autogen/models/max_depth.py +1 -1
  121. shaped/autogen/models/max_leaves.py +1 -1
  122. shaped/autogen/models/max_seq_length.py +1 -1
  123. shaped/autogen/models/max_seq_length1.py +1 -1
  124. shaped/autogen/models/max_seq_length2.py +1 -1
  125. shaped/autogen/models/mode.py +1 -1
  126. shaped/autogen/models/mode1.py +20 -18
  127. shaped/autogen/models/mode2.py +32 -18
  128. shaped/autogen/models/models_inner.py +308 -0
  129. shaped/autogen/models/mongo_db_table_config.py +1 -1
  130. shaped/autogen/models/mssql_table_config.py +1 -1
  131. shaped/autogen/models/my_sql_table_config.py +1 -1
  132. shaped/autogen/models/n_epochs.py +1 -1
  133. shaped/autogen/models/n_epochs1.py +1 -1
  134. shaped/autogen/models/n_epochs2.py +1 -1
  135. shaped/autogen/models/n_estimators.py +1 -1
  136. shaped/autogen/models/n_heads.py +1 -1
  137. shaped/autogen/models/n_layers.py +1 -1
  138. shaped/autogen/models/neg_per_positive.py +1 -1
  139. shaped/autogen/models/negative_samples_count.py +1 -1
  140. shaped/autogen/models/ngram_tokenizer.py +1 -1
  141. shaped/autogen/models/no_op_config.py +1 -1
  142. shaped/autogen/models/num_blocks.py +1 -1
  143. shaped/autogen/models/num_heads.py +1 -1
  144. shaped/autogen/models/num_leaves.py +1 -1
  145. shaped/autogen/models/objective.py +1 -1
  146. shaped/autogen/models/objective1.py +1 -1
  147. shaped/autogen/models/online_store_config.py +1 -1
  148. shaped/autogen/models/pagination_config.py +1 -1
  149. shaped/autogen/models/parameter_definition.py +1 -1
  150. shaped/autogen/models/parameters_value.py +1 -1
  151. shaped/autogen/models/passthrough_score.py +1 -1
  152. shaped/autogen/models/personal_filter.py +1 -1
  153. shaped/autogen/models/pipeline_stage_explanation.py +4 -4
  154. shaped/autogen/models/policy.py +1 -1
  155. shaped/autogen/models/pool_fn.py +39 -21
  156. shaped/autogen/models/pooling_function.py +1 -1
  157. shaped/autogen/models/postgres_table_config.py +1 -1
  158. shaped/autogen/models/posthog_table_config.py +1 -1
  159. shaped/autogen/models/prebuilt_filter_step.py +1 -1
  160. shaped/autogen/models/precomputed_item_embedding.py +1 -1
  161. shaped/autogen/models/precomputed_user_embedding.py +1 -1
  162. shaped/autogen/models/query.py +15 -15
  163. shaped/autogen/models/query1.py +15 -15
  164. shaped/autogen/models/query_any_of.py +58 -26
  165. shaped/autogen/models/query_config.py +140 -0
  166. shaped/autogen/models/query_definition.py +1 -1
  167. shaped/autogen/models/query_encoder.py +1 -1
  168. shaped/autogen/models/query_explanation.py +7 -3
  169. shaped/autogen/models/query_request.py +1 -1
  170. shaped/autogen/models/query_result.py +1 -1
  171. shaped/autogen/models/query_table_config.py +1 -1
  172. shaped/autogen/models/rank_item_attribute_values_query_config.py +1 -1
  173. shaped/autogen/models/rank_query_config.py +7 -7
  174. shaped/autogen/models/rank_query_config_filter_inner.py +1 -1
  175. shaped/autogen/models/rank_query_config_reorder_inner.py +62 -25
  176. shaped/autogen/models/rank_query_config_retrieve_inner.py +100 -31
  177. shaped/autogen/models/recreate_rollout.py +1 -1
  178. shaped/autogen/models/redshift_table_config.py +1 -1
  179. shaped/autogen/models/reference_table_config.py +1 -1
  180. shaped/autogen/models/regularization.py +1 -1
  181. shaped/autogen/models/reorder_inner.py +149 -0
  182. shaped/autogen/models/reorder_step_explanation.py +207 -0
  183. shaped/autogen/models/request.py +1 -1
  184. shaped/autogen/models/request1.py +1 -1
  185. shaped/autogen/models/requests_per_second_scaling_policy.py +1 -1
  186. shaped/autogen/models/resource_config.py +100 -0
  187. shaped/autogen/models/response_get_view_details_views_view_name_get.py +1 -1
  188. shaped/autogen/models/result.py +1 -14
  189. shaped/autogen/models/result_embeddings_value.py +1 -1
  190. shaped/autogen/models/retrieval_scores_value.py +127 -0
  191. shaped/autogen/models/retrieve_inner.py +196 -0
  192. shaped/autogen/models/retrieve_step_explanation.py +172 -0
  193. shaped/autogen/models/retriever.py +1 -1
  194. shaped/autogen/models/retriever1.py +1 -1
  195. shaped/autogen/models/rollout_config.py +1 -1
  196. shaped/autogen/models/rudderstack_table_config.py +1 -1
  197. shaped/autogen/models/sampling_strategy.py +1 -1
  198. shaped/autogen/models/saved_query_info_response.py +18 -4
  199. shaped/autogen/models/saved_query_list_response.py +1 -1
  200. shaped/autogen/models/saved_query_request.py +1 -1
  201. shaped/autogen/models/schema_config.py +1 -1
  202. shaped/autogen/models/score.py +1 -1
  203. shaped/autogen/models/score_ensemble.py +1 -14
  204. shaped/autogen/models/score_ensemble_policy_config.py +49 -25
  205. shaped/autogen/models/score_ensemble_policy_config_policies_inner.py +456 -123
  206. shaped/autogen/models/score_step_explanation.py +224 -0
  207. shaped/autogen/models/search_config.py +1 -1
  208. shaped/autogen/models/segment_table_config.py +1 -1
  209. shaped/autogen/models/sequence_length.py +1 -1
  210. shaped/autogen/models/server_config.py +14 -1
  211. shaped/autogen/models/setup_engine_response.py +1 -1
  212. shaped/autogen/models/shaped_internal_recsys_policies_als_model_policy_als_model_policy_config.py +9 -3
  213. shaped/autogen/models/shaped_internal_recsys_policies_beeformer_model_policy_beeformer_model_policy_beeformer_model_policy_config.py +9 -3
  214. shaped/autogen/models/shaped_internal_recsys_policies_bert_model_policy_bert_model_policy_bert_model_policy_config.py +10 -4
  215. shaped/autogen/models/shaped_internal_recsys_policies_chronological_model_policy_chronological_model_policy_config.py +46 -27
  216. shaped/autogen/models/shaped_internal_recsys_policies_elsa_model_policy_elsa_model_policy_elsa_model_policy_config.py +6 -4
  217. shaped/autogen/models/shaped_internal_recsys_policies_gsasrec_model_policy_gsasrec_model_policy_gsas_rec_model_policy_config.py +9 -3
  218. shaped/autogen/models/shaped_internal_recsys_policies_item2vec_model_policy_item2_vec_model_policy_config.py +1 -1
  219. shaped/autogen/models/shaped_internal_recsys_policies_item_content_similarity_model_policy_item_content_similarity_model_policy_config.py +77 -34
  220. shaped/autogen/models/shaped_internal_recsys_policies_lightgbm_model_policy_lightgbm_model_policy_light_gbm_model_policy_config.py +9 -3
  221. shaped/autogen/models/shaped_internal_recsys_policies_ngram_model_policy_ngram_model_policy_config.py +1 -1
  222. shaped/autogen/models/shaped_internal_recsys_policies_popular_model_policy_popular_model_policy_config.py +52 -28
  223. shaped/autogen/models/shaped_internal_recsys_policies_random_model_policy_random_model_policy_config.py +21 -17
  224. shaped/autogen/models/shaped_internal_recsys_policies_recently_popular_policy_recently_popular_policy_config.py +36 -23
  225. shaped/autogen/models/shaped_internal_recsys_policies_rising_popular_policy_rising_popular_policy_config.py +1 -1
  226. shaped/autogen/models/shaped_internal_recsys_policies_sasrec_model_policy_sasrec_model_policy_sas_rec_model_policy_config.py +9 -3
  227. shaped/autogen/models/shaped_internal_recsys_policies_svd_model_policy_svd_model_policy_config.py +1 -1
  228. shaped/autogen/models/shaped_internal_recsys_policies_two_tower_model_policy_two_tower_model_policy_two_tower_model_policy_config.py +9 -3
  229. shaped/autogen/models/shaped_internal_recsys_policies_user_item_content_similarity_model_policy_user_item_content_similarity_model_policy_config.py +53 -31
  230. shaped/autogen/models/shaped_internal_recsys_policies_widedeep_model_policy_wide_deep_model_policy_config.py +10 -4
  231. shaped/autogen/models/shaped_internal_recsys_policies_xgboost_model_policy_xg_boost_model_policy_config.py +12 -6
  232. shaped/autogen/models/shopify_table_config.py +1 -1
  233. shaped/autogen/models/similarity_retrieve_step.py +6 -4
  234. shaped/autogen/models/snowflake_table_config.py +1 -1
  235. shaped/autogen/models/sql_transform_type.py +1 -1
  236. shaped/autogen/models/sql_view_config.py +1 -1
  237. shaped/autogen/models/stemmer_tokenizer.py +1 -1
  238. shaped/autogen/models/step_explanation.py +1 -1
  239. shaped/autogen/models/steps_inner.py +179 -0
  240. shaped/autogen/models/strategy.py +1 -1
  241. shaped/autogen/models/table.py +1 -1
  242. shaped/autogen/models/table_deployment_type.py +1 -1
  243. shaped/autogen/models/table_insert_arguments.py +3 -3
  244. shaped/autogen/models/table_insert_response.py +1 -1
  245. shaped/autogen/models/text_encoding.py +29 -17
  246. shaped/autogen/models/text_search_retrieve_step.py +1 -1
  247. shaped/autogen/models/time_frequency.py +1 -1
  248. shaped/autogen/models/time_window.py +1 -1
  249. shaped/autogen/models/time_window_in_days.py +29 -17
  250. shaped/autogen/models/tokenizer.py +1 -1
  251. shaped/autogen/models/trained_model_encoder.py +1 -1
  252. shaped/autogen/models/training_compute_config.py +4 -4
  253. shaped/autogen/models/training_config.py +4 -4
  254. shaped/autogen/models/training_config_models_inner.py +325 -93
  255. shaped/autogen/models/training_strategy.py +1 -1
  256. shaped/autogen/models/transform_status.py +41 -0
  257. shaped/autogen/models/trending_mode.py +4 -4
  258. shaped/autogen/models/truncate_filter_step.py +1 -1
  259. shaped/autogen/models/tunable_bool.py +1 -1
  260. shaped/autogen/models/tunable_float.py +1 -1
  261. shaped/autogen/models/tunable_int.py +1 -1
  262. shaped/autogen/models/tunable_int_categorical.py +1 -1
  263. shaped/autogen/models/tunable_string.py +1 -1
  264. shaped/autogen/models/tuning_config.py +1 -1
  265. shaped/autogen/models/type.py +36 -20
  266. shaped/autogen/models/update_table_response.py +1 -1
  267. shaped/autogen/models/update_view_response.py +1 -1
  268. shaped/autogen/models/user_attribute_pooling_encoder.py +1 -1
  269. shaped/autogen/models/user_inner.py +134 -0
  270. shaped/autogen/models/val_split.py +1 -1
  271. shaped/autogen/models/validation_error.py +4 -4
  272. shaped/autogen/models/validation_error_loc_inner.py +28 -16
  273. shaped/autogen/models/value_type.py +1 -1
  274. shaped/autogen/models/vector_search_mode.py +6 -4
  275. shaped/autogen/models/view.py +4 -4
  276. shaped/autogen/models/view_details_ai.py +6 -6
  277. shaped/autogen/models/view_details_ai_schema_value.py +1 -1
  278. shaped/autogen/models/view_details_sql.py +6 -6
  279. shaped/autogen/models/view_status.py +8 -8
  280. shaped/autogen/models/weight_decay.py +1 -1
  281. shaped/autogen/models/whitespace_tokenizer.py +1 -1
  282. shaped/autogen/models/window_size.py +1 -1
  283. shaped/autogen/rest.py +9 -9
  284. shaped/cli/shaped_cli.py +152 -29
  285. shaped/client.py +50 -43
  286. shaped/config_builders.py +110 -100
  287. shaped/query_builder.py +56 -49
  288. {shaped-2.0.2.dist-info → shaped-2.0.4.dist-info}/METADATA +2 -2
  289. shaped-2.0.4.dist-info/RECORD +296 -0
  290. {shaped-2.0.2.dist-info → shaped-2.0.4.dist-info}/WHEEL +1 -1
  291. shaped-2.0.2.dist-info/RECORD +0 -278
  292. {shaped-2.0.2.dist-info → shaped-2.0.4.dist-info}/entry_points.txt +0 -0
  293. {shaped-2.0.2.dist-info → shaped-2.0.4.dist-info}/top_level.txt +0 -0
  294. {shaped-2.0.2.dist-info → shaped-2.0.4.dist-info}/zip-safe +0 -0
@@ -5,7 +5,7 @@
5
5
 
6
6
  Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
7
 
8
- The version of the OpenAPI document: 2.0.0
8
+ The version of the OpenAPI document: 2.0.4
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -19,6 +19,8 @@ import json
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictBool, StrictFloat, StrictInt, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List, Optional, Union
22
+ from shaped.autogen.models.inner_entity_id import InnerEntityId
23
+ from shaped.autogen.models.retrieval_scores_value import RetrievalScoresValue
22
24
  from typing import Optional, Set
23
25
  from typing_extensions import Self
24
26
 
@@ -27,18 +29,17 @@ class EntityJourney(BaseModel):
27
29
  Tracks a single entity's journey through the query pipeline. Shows which retrievers found it, scores at each stage, filtering/reordering impact, and final position. Used in RankQueryConfig queries for both items and users.
28
30
  """ # noqa: E501
29
31
  entity_id: StrictStr = Field(description="External entity identifier (item_id or user_id as a string). This is the original ID format from your dataset.")
30
- inner_entity_id: Optional[StrictInt] = None
32
+ inner_entity_id: Optional[InnerEntityId] = None
31
33
  retrieved_by: Optional[List[StrictStr]] = Field(default=None, description="List of retrieval step names that found this entity. Shows which retrievers contributed this entity to the candidate set.")
32
- retrieval_scores: Optional[Dict[str, Union[StrictFloat, StrictInt]]] = Field(default=None, description="Scores from each retrieval step. Dictionary mapping step names to their scores for this entity.")
34
+ retrieval_scores: Optional[Dict[str, Optional[RetrievalScoresValue]]] = Field(default=None, description="Scores from each retrieval step. Dictionary mapping step names to their scores for this entity.")
33
35
  retrieval_rank: Optional[Dict[str, StrictInt]] = Field(default=None, description="Rank position from each retrieval step. Dictionary mapping step names to their rank positions for this entity.")
34
36
  filter_results: Optional[Dict[str, StrictBool]] = Field(default=None, description="Results from each filter step. Dictionary mapping filter step names to whether this entity passed (true) or failed (false) the filter.")
35
37
  filtered_out_by: Optional[StrictStr] = None
36
38
  score: Optional[Union[StrictFloat, StrictInt]] = None
37
39
  score_rank: Optional[StrictInt] = None
38
- reorder_changes: Optional[List[Optional[Dict[str, Any]]]] = Field(default=None, description="List of position changes from reordering steps. Each entry contains step name, before position, and after position.")
40
+ reorder_changes: Optional[List[Dict[str, Any]]] = None
39
41
  final_position: Optional[StrictInt] = None
40
42
  final_score: Optional[Union[StrictFloat, StrictInt]] = None
41
- additional_properties: Dict[str, Any] = {}
42
43
  __properties: ClassVar[List[str]] = ["entity_id", "inner_entity_id", "retrieved_by", "retrieval_scores", "retrieval_rank", "filter_results", "filtered_out_by", "score", "score_rank", "reorder_changes", "final_position", "final_score"]
43
44
 
44
45
  model_config = ConfigDict(
@@ -71,10 +72,8 @@ class EntityJourney(BaseModel):
71
72
  * `None` is only added to the output dict for nullable fields that
72
73
  were set at model initialization. Other fields with value `None`
73
74
  are ignored.
74
- * Fields in `self.additional_properties` are added to the output dict.
75
75
  """
76
76
  excluded_fields: Set[str] = set([
77
- "additional_properties",
78
77
  ])
79
78
 
80
79
  _dict = self.model_dump(
@@ -82,11 +81,16 @@ class EntityJourney(BaseModel):
82
81
  exclude=excluded_fields,
83
82
  exclude_none=True,
84
83
  )
85
- # puts key-value pairs in additional_properties in the top level
86
- if self.additional_properties is not None:
87
- for _key, _value in self.additional_properties.items():
88
- _dict[_key] = _value
89
-
84
+ # override the default output from pydantic by calling `to_dict()` of inner_entity_id
85
+ if self.inner_entity_id:
86
+ _dict['inner_entity_id'] = self.inner_entity_id.to_dict()
87
+ # override the default output from pydantic by calling `to_dict()` of each value in retrieval_scores (dict)
88
+ _field_dict = {}
89
+ if self.retrieval_scores:
90
+ for _key_retrieval_scores in self.retrieval_scores:
91
+ if self.retrieval_scores[_key_retrieval_scores]:
92
+ _field_dict[_key_retrieval_scores] = self.retrieval_scores[_key_retrieval_scores].to_dict()
93
+ _dict['retrieval_scores'] = _field_dict
90
94
  # set to None if inner_entity_id (nullable) is None
91
95
  # and model_fields_set contains the field
92
96
  if self.inner_entity_id is None and "inner_entity_id" in self.model_fields_set:
@@ -107,6 +111,11 @@ class EntityJourney(BaseModel):
107
111
  if self.score_rank is None and "score_rank" in self.model_fields_set:
108
112
  _dict['score_rank'] = None
109
113
 
114
+ # set to None if reorder_changes (nullable) is None
115
+ # and model_fields_set contains the field
116
+ if self.reorder_changes is None and "reorder_changes" in self.model_fields_set:
117
+ _dict['reorder_changes'] = None
118
+
110
119
  # set to None if final_position (nullable) is None
111
120
  # and model_fields_set contains the field
112
121
  if self.final_position is None and "final_position" in self.model_fields_set:
@@ -130,9 +139,14 @@ class EntityJourney(BaseModel):
130
139
 
131
140
  _obj = cls.model_validate({
132
141
  "entity_id": obj.get("entity_id"),
133
- "inner_entity_id": obj.get("inner_entity_id"),
142
+ "inner_entity_id": InnerEntityId.from_dict(obj["inner_entity_id"]) if obj.get("inner_entity_id") is not None else None,
134
143
  "retrieved_by": obj.get("retrieved_by"),
135
- "retrieval_scores": obj.get("retrieval_scores"),
144
+ "retrieval_scores": dict(
145
+ (_k, RetrievalScoresValue.from_dict(_v))
146
+ for _k, _v in obj["retrieval_scores"].items()
147
+ )
148
+ if obj.get("retrieval_scores") is not None
149
+ else None,
136
150
  "retrieval_rank": obj.get("retrieval_rank"),
137
151
  "filter_results": obj.get("filter_results"),
138
152
  "filtered_out_by": obj.get("filtered_out_by"),
@@ -142,11 +156,6 @@ class EntityJourney(BaseModel):
142
156
  "final_position": obj.get("final_position"),
143
157
  "final_score": obj.get("final_score")
144
158
  })
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
159
  return _obj
151
160
 
152
161
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
7
 
8
- The version of the OpenAPI document: 2.0.0
8
+ The version of the OpenAPI document: 2.0.4
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -5,7 +5,7 @@
5
5
 
6
6
  Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
7
 
8
- The version of the OpenAPI document: 2.0.0
8
+ The version of the OpenAPI document: 2.0.4
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -5,7 +5,7 @@
5
5
 
6
6
  Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
7
 
8
- The version of the OpenAPI document: 2.0.0
8
+ The version of the OpenAPI document: 2.0.4
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -5,7 +5,7 @@
5
5
 
6
6
  Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
7
 
8
- The version of the OpenAPI document: 2.0.0
8
+ The version of the OpenAPI document: 2.0.4
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -5,7 +5,7 @@
5
5
 
6
6
  Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
7
 
8
- The version of the OpenAPI document: 2.0.0
8
+ The version of the OpenAPI document: 2.0.4
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -5,7 +5,7 @@
5
5
 
6
6
  Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
7
 
8
- The version of the OpenAPI document: 2.0.0
8
+ The version of the OpenAPI document: 2.0.4
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -5,7 +5,7 @@
5
5
 
6
6
  Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
7
 
8
- The version of the OpenAPI document: 2.0.0
8
+ The version of the OpenAPI document: 2.0.4
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -5,7 +5,7 @@
5
5
 
6
6
  Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
7
 
8
- The version of the OpenAPI document: 2.0.0
8
+ The version of the OpenAPI document: 2.0.4
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -5,7 +5,7 @@
5
5
 
6
6
  Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
7
 
8
- The version of the OpenAPI document: 2.0.0
8
+ The version of the OpenAPI document: 2.0.4
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -5,7 +5,7 @@
5
5
 
6
6
  Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
7
 
8
- The version of the OpenAPI document: 2.0.0
8
+ The version of the OpenAPI document: 2.0.4
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -19,8 +19,8 @@ import json
19
19
 
20
20
  from pydantic import BaseModel, ConfigDict, Field, StrictStr
21
21
  from typing import Any, ClassVar, Dict, List
22
- from shaped.autogen.models.filter_dataset import FilterDataset
23
- from shaped.autogen.models.type import Type
22
+ from shaped.autogen.models.filter_table import FilterTable
23
+ from shaped.autogen.models.filter_type import FilterType
24
24
  from typing import Optional, Set
25
25
  from typing_extensions import Self
26
26
 
@@ -29,9 +29,9 @@ class FilterConfig(BaseModel):
29
29
  FilterConfig
30
30
  """ # noqa: E501
31
31
  name: StrictStr = Field(description="Unique identifier for the filter.")
32
- filter_dataset: FilterDataset
33
- type: Type
34
- __properties: ClassVar[List[str]] = ["name", "filter_dataset", "type"]
32
+ filter_table: FilterTable
33
+ filter_type: FilterType
34
+ __properties: ClassVar[List[str]] = ["name", "filter_table", "filter_type"]
35
35
 
36
36
  model_config = ConfigDict(
37
37
  populate_by_name=True,
@@ -72,12 +72,12 @@ class FilterConfig(BaseModel):
72
72
  exclude=excluded_fields,
73
73
  exclude_none=True,
74
74
  )
75
- # override the default output from pydantic by calling `to_dict()` of filter_dataset
76
- if self.filter_dataset:
77
- _dict['filter_dataset'] = self.filter_dataset.to_dict()
78
- # override the default output from pydantic by calling `to_dict()` of type
79
- if self.type:
80
- _dict['type'] = self.type.to_dict()
75
+ # override the default output from pydantic by calling `to_dict()` of filter_table
76
+ if self.filter_table:
77
+ _dict['filter_table'] = self.filter_table.to_dict()
78
+ # override the default output from pydantic by calling `to_dict()` of filter_type
79
+ if self.filter_type:
80
+ _dict['filter_type'] = self.filter_type.to_dict()
81
81
  return _dict
82
82
 
83
83
  @classmethod
@@ -91,8 +91,8 @@ class FilterConfig(BaseModel):
91
91
 
92
92
  _obj = cls.model_validate({
93
93
  "name": obj.get("name"),
94
- "filter_dataset": FilterDataset.from_dict(obj["filter_dataset"]) if obj.get("filter_dataset") is not None else None,
95
- "type": Type.from_dict(obj["type"]) if obj.get("type") is not None else None
94
+ "filter_table": FilterTable.from_dict(obj["filter_table"]) if obj.get("filter_table") is not None else None,
95
+ "filter_type": FilterType.from_dict(obj["filter_type"]) if obj.get("filter_type") is not None else None
96
96
  })
97
97
  return _obj
98
98
 
@@ -13,69 +13,83 @@
13
13
 
14
14
 
15
15
  from __future__ import annotations
16
+
16
17
  import json
17
18
  import pprint
18
- from pydantic import BaseModel, ConfigDict, Field, StrictStr, ValidationError, field_validator
19
- from typing import Any, List, Optional
19
+ from typing import Any, Dict, Optional, Set, Union
20
+
21
+ from pydantic import BaseModel, ConfigDict, ValidationError, field_validator
20
22
  from shaped.autogen.models.query_table_config import QueryTableConfig
21
23
  from shaped.autogen.models.reference_table_config import ReferenceTableConfig
22
- from pydantic import StrictStr, Field
23
- from typing import Union, List, Set, Optional, Dict
24
- from typing_extensions import Literal, Self
24
+ from typing_extensions import Self
25
25
 
26
26
  FILTERDATASET_ONE_OF_SCHEMAS = ["QueryTableConfig", "ReferenceTableConfig"]
27
27
 
28
+
28
29
  class FilterDataset(BaseModel):
29
30
  """
30
31
  Dataset configuration for the filter source data.
31
32
  """
33
+
32
34
  # data type: QueryTableConfig
33
35
  oneof_schema_1_validator: Optional[QueryTableConfig] = None
34
36
  # data type: ReferenceTableConfig
35
37
  oneof_schema_2_validator: Optional[ReferenceTableConfig] = None
36
38
  actual_instance: Optional[Union[QueryTableConfig, ReferenceTableConfig]] = None
37
- one_of_schemas: Set[str] = { "QueryTableConfig", "ReferenceTableConfig" }
39
+ one_of_schemas: Set[str] = {"QueryTableConfig", "ReferenceTableConfig"}
38
40
 
39
41
  model_config = ConfigDict(
40
42
  validate_assignment=True,
41
43
  protected_namespaces=(),
42
44
  )
43
45
 
44
-
45
- discriminator_value_class_map: Dict[str, str] = {
46
- }
46
+ discriminator_value_class_map: Dict[str, str] = {}
47
47
 
48
48
  def __init__(self, *args, **kwargs) -> None:
49
49
  if args:
50
50
  if len(args) > 1:
51
- raise ValueError("If a position argument is used, only 1 is allowed to set `actual_instance`")
51
+ raise ValueError(
52
+ "If a position argument is used, only 1 is allowed to set `actual_instance`"
53
+ )
52
54
  if kwargs:
53
- raise ValueError("If a position argument is used, keyword arguments cannot be used.")
55
+ raise ValueError(
56
+ "If a position argument is used, keyword arguments cannot be used."
57
+ )
54
58
  super().__init__(actual_instance=args[0])
55
59
  else:
56
60
  super().__init__(**kwargs)
57
61
 
58
- @field_validator('actual_instance')
62
+ @field_validator("actual_instance")
59
63
  def actual_instance_must_validate_oneof(cls, v):
60
64
  instance = FilterDataset.model_construct()
61
65
  error_messages = []
62
66
  match = 0
63
67
  # validate data type: QueryTableConfig
64
68
  if not isinstance(v, QueryTableConfig):
65
- error_messages.append(f"Error! Input type `{type(v)}` is not `QueryTableConfig`")
69
+ error_messages.append(
70
+ f"Error! Input type `{type(v)}` is not `QueryTableConfig`"
71
+ )
66
72
  else:
67
73
  match += 1
68
74
  # validate data type: ReferenceTableConfig
69
75
  if not isinstance(v, ReferenceTableConfig):
70
- error_messages.append(f"Error! Input type `{type(v)}` is not `ReferenceTableConfig`")
76
+ error_messages.append(
77
+ f"Error! Input type `{type(v)}` is not `ReferenceTableConfig`"
78
+ )
71
79
  else:
72
80
  match += 1
73
81
  if match > 1:
74
82
  # more than 1 match
75
- raise ValueError("Multiple matches found when setting `actual_instance` in FilterDataset with oneOf schemas: QueryTableConfig, ReferenceTableConfig. Details: " + ", ".join(error_messages))
83
+ raise ValueError(
84
+ "Multiple matches found when setting `actual_instance` in FilterDataset with oneOf schemas: QueryTableConfig, ReferenceTableConfig. Details: "
85
+ + ", ".join(error_messages)
86
+ )
76
87
  elif match == 0:
77
88
  # no match
78
- raise ValueError("No match found when setting `actual_instance` in FilterDataset with oneOf schemas: QueryTableConfig, ReferenceTableConfig. Details: " + ", ".join(error_messages))
89
+ raise ValueError(
90
+ "No match found when setting `actual_instance` in FilterDataset with oneOf schemas: QueryTableConfig, ReferenceTableConfig. Details: "
91
+ + ", ".join(error_messages)
92
+ )
79
93
  else:
80
94
  return v
81
95
 
@@ -105,10 +119,16 @@ class FilterDataset(BaseModel):
105
119
 
106
120
  if match > 1:
107
121
  # more than 1 match
108
- raise ValueError("Multiple matches found when deserializing the JSON string into FilterDataset with oneOf schemas: QueryTableConfig, ReferenceTableConfig. Details: " + ", ".join(error_messages))
122
+ raise ValueError(
123
+ "Multiple matches found when deserializing the JSON string into FilterDataset with oneOf schemas: QueryTableConfig, ReferenceTableConfig. Details: "
124
+ + ", ".join(error_messages)
125
+ )
109
126
  elif match == 0:
110
127
  # no match
111
- raise ValueError("No match found when deserializing the JSON string into FilterDataset with oneOf schemas: QueryTableConfig, ReferenceTableConfig. Details: " + ", ".join(error_messages))
128
+ raise ValueError(
129
+ "No match found when deserializing the JSON string into FilterDataset with oneOf schemas: QueryTableConfig, ReferenceTableConfig. Details: "
130
+ + ", ".join(error_messages)
131
+ )
112
132
  else:
113
133
  return instance
114
134
 
@@ -117,17 +137,23 @@ class FilterDataset(BaseModel):
117
137
  if self.actual_instance is None:
118
138
  return "null"
119
139
 
120
- if hasattr(self.actual_instance, "to_json") and callable(self.actual_instance.to_json):
140
+ if hasattr(self.actual_instance, "to_json") and callable(
141
+ self.actual_instance.to_json
142
+ ):
121
143
  return self.actual_instance.to_json()
122
144
  else:
123
145
  return json.dumps(self.actual_instance)
124
146
 
125
- def to_dict(self) -> Optional[Union[Dict[str, Any], QueryTableConfig, ReferenceTableConfig]]:
147
+ def to_dict(
148
+ self,
149
+ ) -> Optional[Union[Dict[str, Any], QueryTableConfig, ReferenceTableConfig]]:
126
150
  """Returns the dict representation of the actual instance"""
127
151
  if self.actual_instance is None:
128
152
  return None
129
153
 
130
- if hasattr(self.actual_instance, "to_dict") and callable(self.actual_instance.to_dict):
154
+ if hasattr(self.actual_instance, "to_dict") and callable(
155
+ self.actual_instance.to_dict
156
+ ):
131
157
  return self.actual_instance.to_dict()
132
158
  else:
133
159
  # primitive type
@@ -136,5 +162,3 @@ class FilterDataset(BaseModel):
136
162
  def to_str(self) -> str:
137
163
  """Returns the string representation of the actual instance"""
138
164
  return pprint.pformat(self.model_dump())
139
-
140
-
@@ -5,7 +5,7 @@
5
5
 
6
6
  Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
7
 
8
- The version of the OpenAPI document: 2.0.0
8
+ The version of the OpenAPI document: 2.0.4
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -5,7 +5,7 @@
5
5
 
6
6
  Welcome to Shaped's API reference docs. These provide a detailed view of the endpoints and CLI commands that Shaped provides and brief explanations of how they should be used. The Shaped API has four main endpoints: **Tables** - Provision and manage batch and real-time data connectors. **Views** - Configure SQL transformations and AI enrichment on your input data. Use SQL to combine multiple data sources or use an LLM to add new categories, extract specific attributes from descriptions, etc. **Engines** - Deploy and manage your relevance engines. The Engine API exposes configuration for indexing logic, input datasets, externam embeddings, and more. **Query** - Execute queries against your engines, to return data based on an input query or rerank an existing list. The Query API exposes the retrieve, filter, score, and ranking steps of the 4-stage ranking architecture. The base URL for each endpoint is: `https://api.shaped.ai/v2`
7
7
 
8
- The version of the OpenAPI document: 2.0.0
8
+ The version of the OpenAPI document: 2.0.4
9
9
  Generated by OpenAPI Generator (https://openapi-generator.tech)
10
10
 
11
11
  Do not edit the class manually.
@@ -0,0 +1,165 @@
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, StrictFloat, StrictInt, StrictStr
21
+ from typing import Any, ClassVar, Dict, List, Optional, Union
22
+ from typing import Optional, Set
23
+ from typing_extensions import Self
24
+
25
+ class FilterStepExplanation(BaseModel):
26
+ """
27
+ Explanation for a filter step.
28
+ """ # noqa: E501
29
+ step_name: Optional[StrictStr] = None
30
+ step_type: Optional[StrictStr] = Field(default='', description="Type of step. Examples: 'column_order', 'similarity', 'text_search', 'prebuilt', 'expression', 'score_ensemble', 'diversity', etc.")
31
+ input_count: Optional[StrictInt] = None
32
+ output_count: Optional[StrictInt] = None
33
+ filtered_count: Optional[StrictInt] = None
34
+ execution_time_ms: Optional[Union[StrictFloat, StrictInt]] = None
35
+ metadata: Optional[Dict[str, Any]] = Field(default=None, description="Additional step-specific metadata. Contains implementation details specific to the step type.")
36
+ filter_type: Optional[StrictStr] = None
37
+ filter_name: Optional[StrictStr] = None
38
+ expression: Optional[StrictStr] = None
39
+ items_filtered: Optional[StrictInt] = None
40
+ additional_properties: Dict[str, Any] = {}
41
+ __properties: ClassVar[List[str]] = ["step_name", "step_type", "input_count", "output_count", "filtered_count", "execution_time_ms", "metadata", "filter_type", "filter_name", "expression", "items_filtered"]
42
+
43
+ model_config = ConfigDict(
44
+ populate_by_name=True,
45
+ validate_assignment=True,
46
+ protected_namespaces=(),
47
+ )
48
+
49
+
50
+ def to_str(self) -> str:
51
+ """Returns the string representation of the model using alias"""
52
+ return pprint.pformat(self.model_dump(by_alias=True))
53
+
54
+ def to_json(self) -> str:
55
+ """Returns the JSON representation of the model using alias"""
56
+ # TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
57
+ return json.dumps(self.to_dict())
58
+
59
+ @classmethod
60
+ def from_json(cls, json_str: str) -> Optional[Self]:
61
+ """Create an instance of FilterStepExplanation from a JSON string"""
62
+ return cls.from_dict(json.loads(json_str))
63
+
64
+ def to_dict(self) -> Dict[str, Any]:
65
+ """Return the dictionary representation of the model using alias.
66
+
67
+ This has the following differences from calling pydantic's
68
+ `self.model_dump(by_alias=True)`:
69
+
70
+ * `None` is only added to the output dict for nullable fields that
71
+ were set at model initialization. Other fields with value `None`
72
+ are ignored.
73
+ * Fields in `self.additional_properties` are added to the output dict.
74
+ """
75
+ excluded_fields: Set[str] = set([
76
+ "additional_properties",
77
+ ])
78
+
79
+ _dict = self.model_dump(
80
+ by_alias=True,
81
+ exclude=excluded_fields,
82
+ exclude_none=True,
83
+ )
84
+ # puts key-value pairs in additional_properties in the top level
85
+ if self.additional_properties is not None:
86
+ for _key, _value in self.additional_properties.items():
87
+ _dict[_key] = _value
88
+
89
+ # set to None if step_name (nullable) is None
90
+ # and model_fields_set contains the field
91
+ if self.step_name is None and "step_name" in self.model_fields_set:
92
+ _dict['step_name'] = None
93
+
94
+ # set to None if input_count (nullable) is None
95
+ # and model_fields_set contains the field
96
+ if self.input_count is None and "input_count" in self.model_fields_set:
97
+ _dict['input_count'] = None
98
+
99
+ # set to None if output_count (nullable) is None
100
+ # and model_fields_set contains the field
101
+ if self.output_count is None and "output_count" in self.model_fields_set:
102
+ _dict['output_count'] = None
103
+
104
+ # set to None if filtered_count (nullable) is None
105
+ # and model_fields_set contains the field
106
+ if self.filtered_count is None and "filtered_count" in self.model_fields_set:
107
+ _dict['filtered_count'] = None
108
+
109
+ # set to None if execution_time_ms (nullable) is None
110
+ # and model_fields_set contains the field
111
+ if self.execution_time_ms is None and "execution_time_ms" in self.model_fields_set:
112
+ _dict['execution_time_ms'] = None
113
+
114
+ # set to None if filter_type (nullable) is None
115
+ # and model_fields_set contains the field
116
+ if self.filter_type is None and "filter_type" in self.model_fields_set:
117
+ _dict['filter_type'] = None
118
+
119
+ # set to None if filter_name (nullable) is None
120
+ # and model_fields_set contains the field
121
+ if self.filter_name is None and "filter_name" in self.model_fields_set:
122
+ _dict['filter_name'] = None
123
+
124
+ # set to None if expression (nullable) is None
125
+ # and model_fields_set contains the field
126
+ if self.expression is None and "expression" in self.model_fields_set:
127
+ _dict['expression'] = None
128
+
129
+ # set to None if items_filtered (nullable) is None
130
+ # and model_fields_set contains the field
131
+ if self.items_filtered is None and "items_filtered" in self.model_fields_set:
132
+ _dict['items_filtered'] = None
133
+
134
+ return _dict
135
+
136
+ @classmethod
137
+ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
138
+ """Create an instance of FilterStepExplanation from a dict"""
139
+ if obj is None:
140
+ return None
141
+
142
+ if not isinstance(obj, dict):
143
+ return cls.model_validate(obj)
144
+
145
+ _obj = cls.model_validate({
146
+ "step_name": obj.get("step_name"),
147
+ "step_type": obj.get("step_type") if obj.get("step_type") is not None else '',
148
+ "input_count": obj.get("input_count"),
149
+ "output_count": obj.get("output_count"),
150
+ "filtered_count": obj.get("filtered_count"),
151
+ "execution_time_ms": obj.get("execution_time_ms"),
152
+ "metadata": obj.get("metadata"),
153
+ "filter_type": obj.get("filter_type"),
154
+ "filter_name": obj.get("filter_name"),
155
+ "expression": obj.get("expression"),
156
+ "items_filtered": obj.get("items_filtered")
157
+ })
158
+ # store additional fields in additional_properties
159
+ for _key in obj.keys():
160
+ if _key not in cls.__properties:
161
+ _obj.additional_properties[_key] = obj.get(_key)
162
+
163
+ return _obj
164
+
165
+