corvic-engine 0.3.0rc42__tar.gz → 0.3.0rc44__tar.gz

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 (251) hide show
  1. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/Cargo.lock +2 -2
  2. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/Cargo.toml +1 -1
  3. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/PKG-INFO +19 -19
  4. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/pyproject.toml +2 -2
  5. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/embedding_metric/embeddings.py +30 -6
  6. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/_completion_model.py +46 -16
  7. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/_feature_view.py +1 -0
  8. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/_proto_orm_convert.py +22 -9
  9. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/_space.py +56 -39
  10. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/orm/__init__.py +27 -44
  11. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/orm/base.py +4 -0
  12. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system/_dimension_reduction.py +37 -5
  13. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system/in_memory_executor.py +14 -7
  14. corvic_engine-0.3.0rc44/python/corvic_generated/model/v1alpha/models_pb2.py +68 -0
  15. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/model/v1alpha/models_pb2.pyi +21 -14
  16. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/agent_pb2.py +2 -2
  17. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/agent_pb2.pyi +2 -0
  18. corvic_engine-0.3.0rc44/python/corvic_generated/orm/v1/completion_model_pb2.py +30 -0
  19. corvic_engine-0.3.0rc44/python/corvic_generated/orm/v1/completion_model_pb2.pyi +33 -0
  20. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/platform/v1/platform_pb2.py +17 -5
  21. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/platform/v1/platform_pb2.pyi +20 -0
  22. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/platform/v1/platform_pb2_grpc.py +66 -0
  23. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/platform/v1/platform_pb2_grpc.pyi +28 -0
  24. corvic_engine-0.3.0rc44/python/corvic_generated/status/v1/event_pb2_grpc.py +4 -0
  25. corvic_engine-0.3.0rc44/python/corvic_generated/status/v1/event_pb2_grpc.pyi +17 -0
  26. corvic_engine-0.3.0rc42/python/corvic_generated/model/v1alpha/models_pb2.py +0 -67
  27. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/LICENSE +0 -0
  28. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/README.md +0 -0
  29. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/Cargo.toml +0 -0
  30. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/buf/validate/expression_pb2.py +0 -0
  31. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/buf/validate/expression_pb2.pyi +0 -0
  32. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/buf/validate/expression_pb2_grpc.py +0 -0
  33. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/buf/validate/expression_pb2_grpc.pyi +0 -0
  34. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/buf/validate/priv/private_pb2.py +0 -0
  35. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/buf/validate/priv/private_pb2.pyi +0 -0
  36. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/buf/validate/priv/private_pb2_grpc.py +0 -0
  37. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/buf/validate/priv/private_pb2_grpc.pyi +0 -0
  38. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/buf/validate/validate_pb2.py +0 -0
  39. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/buf/validate/validate_pb2.pyi +0 -0
  40. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/buf/validate/validate_pb2_grpc.py +0 -0
  41. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/buf/validate/validate_pb2_grpc.pyi +0 -0
  42. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/context/__init__.py +0 -0
  43. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/context/py.typed +0 -0
  44. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/embed/__init__.py +0 -0
  45. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/embed/node2vec.py +0 -0
  46. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/embed/py.typed +0 -0
  47. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/embedding_metric/__init__.py +0 -0
  48. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/embedding_metric/py.typed +0 -0
  49. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/engine/__init__.py +0 -0
  50. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/engine/_native.pyi +0 -0
  51. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/engine/py.typed +0 -0
  52. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/__init__.py +0 -0
  53. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/_agent.py +0 -0
  54. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/_base_model.py +0 -0
  55. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/_defaults.py +0 -0
  56. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/_errors.py +0 -0
  57. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/_feature_type.py +0 -0
  58. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/_pipeline.py +0 -0
  59. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/_resource.py +0 -0
  60. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/_room.py +0 -0
  61. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/_source.py +0 -0
  62. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/model/py.typed +0 -0
  63. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/op_graph/__init__.py +0 -0
  64. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/op_graph/_schema.py +0 -0
  65. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/op_graph/_transformations.py +0 -0
  66. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/op_graph/aggregation.py +0 -0
  67. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/op_graph/encoders.py +0 -0
  68. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/op_graph/errors.py +0 -0
  69. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/op_graph/feature_types.py +0 -0
  70. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/op_graph/ops.py +0 -0
  71. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/op_graph/py.typed +0 -0
  72. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/op_graph/row_filters/__init__.py +0 -0
  73. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/op_graph/row_filters/_jsonlogic.py +0 -0
  74. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/op_graph/row_filters/_row_filters.py +0 -0
  75. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/op_graph/sample_strategy.py +0 -0
  76. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/orm/_proto_columns.py +0 -0
  77. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/orm/errors.py +0 -0
  78. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/orm/func/__init__.py +0 -0
  79. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/orm/func/utc_func.py +0 -0
  80. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/orm/func/uuid_func.py +0 -0
  81. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/orm/ids.py +0 -0
  82. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/orm/keys.py +0 -0
  83. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/orm/mixins.py +0 -0
  84. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/orm/py.typed +0 -0
  85. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/pa_scalar/__init__.py +0 -0
  86. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/pa_scalar/_const.py +0 -0
  87. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/pa_scalar/_from_value.py +0 -0
  88. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/pa_scalar/_temporal.py +0 -0
  89. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/pa_scalar/_to_value.py +0 -0
  90. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/pa_scalar/_types.py +0 -0
  91. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/pa_scalar/py.typed +0 -0
  92. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/proto_wrapper/__init__.py +0 -0
  93. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/proto_wrapper/_errors.py +0 -0
  94. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/proto_wrapper/_wrappers.py +0 -0
  95. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/proto_wrapper/py.typed +0 -0
  96. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/result/__init__.py +0 -0
  97. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/result/py.typed +0 -0
  98. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/sql/__init__.py +0 -0
  99. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/sql/parse_ops.py +0 -0
  100. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/sql/py.typed +0 -0
  101. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system/__init__.py +0 -0
  102. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system/_embedder.py +0 -0
  103. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system/_image_embedder.py +0 -0
  104. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system/_planner.py +0 -0
  105. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system/_text_embedder.py +0 -0
  106. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system/client.py +0 -0
  107. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system/op_graph_executor.py +0 -0
  108. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system/py.typed +0 -0
  109. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system/staging.py +0 -0
  110. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system/storage.py +0 -0
  111. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system_sqlite/__init__.py +0 -0
  112. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system_sqlite/client.py +0 -0
  113. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system_sqlite/fs_blob_store.py +0 -0
  114. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system_sqlite/py.typed +0 -0
  115. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system_sqlite/rdbms_blob_store.py +0 -0
  116. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/system_sqlite/staging.py +0 -0
  117. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/table/__init__.py +0 -0
  118. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/table/py.typed +0 -0
  119. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/table/table.py +0 -0
  120. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/version/__init__.py +0 -0
  121. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/version/py.typed +0 -0
  122. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/well_known_types/__init__.py +0 -0
  123. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic/well_known_types/py.typed +0 -0
  124. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/__init__.py +0 -0
  125. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/algorithm/__init__.py +0 -0
  126. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/algorithm/graph/__init__.py +0 -0
  127. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/algorithm/graph/v1/__init__.py +0 -0
  128. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/algorithm/graph/v1/graph_pb2.py +0 -0
  129. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/algorithm/graph/v1/graph_pb2.pyi +0 -0
  130. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.py +0 -0
  131. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.pyi +0 -0
  132. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/chat/__init__.py +0 -0
  133. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/chat/v1/__init__.py +0 -0
  134. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/chat/v1/service_pb2.py +0 -0
  135. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/chat/v1/service_pb2.pyi +0 -0
  136. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/chat/v1/service_pb2_grpc.py +0 -0
  137. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/chat/v1/service_pb2_grpc.pyi +0 -0
  138. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/completion/__init__.py +0 -0
  139. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/completion/v1/__init__.py +0 -0
  140. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/completion/v1/service_pb2.py +0 -0
  141. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/completion/v1/service_pb2.pyi +0 -0
  142. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/completion/v1/service_pb2_grpc.py +0 -0
  143. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/completion/v1/service_pb2_grpc.pyi +0 -0
  144. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/config/__init__.py +0 -0
  145. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/config/v1/__init__.py +0 -0
  146. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/config/v1/settings_pb2.py +0 -0
  147. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/config/v1/settings_pb2.pyi +0 -0
  148. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/config/v1/settings_pb2_grpc.py +0 -0
  149. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/config/v1/settings_pb2_grpc.pyi +0 -0
  150. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/embedding/__init__.py +0 -0
  151. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/embedding/v1/__init__.py +0 -0
  152. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/embedding/v1/models_pb2.py +0 -0
  153. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/embedding/v1/models_pb2.pyi +0 -0
  154. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/embedding/v1/models_pb2_grpc.py +0 -0
  155. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/embedding/v1/models_pb2_grpc.pyi +0 -0
  156. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/__init__.py +0 -0
  157. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v1/__init__.py +0 -0
  158. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v1/experiment_pb2.py +0 -0
  159. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v1/experiment_pb2.pyi +0 -0
  160. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v1/experiment_pb2_grpc.py +0 -0
  161. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v1/experiment_pb2_grpc.pyi +0 -0
  162. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v1/space_pb2.py +0 -0
  163. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v1/space_pb2.pyi +0 -0
  164. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v1/space_pb2_grpc.py +0 -0
  165. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v1/space_pb2_grpc.pyi +0 -0
  166. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v2/__init__.py +0 -0
  167. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v2/feature_view_pb2.py +0 -0
  168. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v2/feature_view_pb2.pyi +0 -0
  169. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.py +0 -0
  170. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.pyi +0 -0
  171. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v2/space_pb2.py +0 -0
  172. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v2/space_pb2.pyi +0 -0
  173. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v2/space_pb2_grpc.py +0 -0
  174. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/feature/v2/space_pb2_grpc.pyi +0 -0
  175. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/__init__.py +0 -0
  176. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v1/__init__.py +0 -0
  177. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v1/service_pb2.py +0 -0
  178. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v1/service_pb2.pyi +0 -0
  179. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v1/service_pb2_grpc.py +0 -0
  180. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v1/service_pb2_grpc.pyi +0 -0
  181. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/__init__.py +0 -0
  182. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/pipeline_pb2.py +0 -0
  183. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/pipeline_pb2.pyi +0 -0
  184. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.py +0 -0
  185. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.pyi +0 -0
  186. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/quick_mode_pb2.py +0 -0
  187. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/quick_mode_pb2.pyi +0 -0
  188. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.py +0 -0
  189. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.pyi +0 -0
  190. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/resource_pb2.py +0 -0
  191. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/resource_pb2.pyi +0 -0
  192. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/resource_pb2_grpc.py +0 -0
  193. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/resource_pb2_grpc.pyi +0 -0
  194. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/room_pb2.py +0 -0
  195. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/room_pb2.pyi +0 -0
  196. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/room_pb2_grpc.py +0 -0
  197. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/room_pb2_grpc.pyi +0 -0
  198. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/source_pb2.py +0 -0
  199. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/source_pb2.pyi +0 -0
  200. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/source_pb2_grpc.py +0 -0
  201. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/source_pb2_grpc.pyi +0 -0
  202. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/table_pb2.py +0 -0
  203. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/table_pb2.pyi +0 -0
  204. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/table_pb2_grpc.py +0 -0
  205. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/ingest/v2/table_pb2_grpc.pyi +0 -0
  206. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/model/__init__.py +0 -0
  207. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/model/v1alpha/__init__.py +0 -0
  208. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/model/v1alpha/models_pb2_grpc.py +0 -0
  209. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/model/v1alpha/models_pb2_grpc.pyi +0 -0
  210. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/__init__.py +0 -0
  211. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/__init__.py +0 -0
  212. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/agent_pb2_grpc.py +0 -0
  213. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/agent_pb2_grpc.pyi +0 -0
  214. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/common_pb2.py +0 -0
  215. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/common_pb2.pyi +0 -0
  216. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/common_pb2_grpc.py +0 -0
  217. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/common_pb2_grpc.pyi +0 -0
  218. /corvic_engine-0.3.0rc42/python/corvic_generated/orm/v1/feature_view_pb2_grpc.py → /corvic_engine-0.3.0rc44/python/corvic_generated/orm/v1/completion_model_pb2_grpc.py +0 -0
  219. /corvic_engine-0.3.0rc42/python/corvic_generated/orm/v1/feature_view_pb2_grpc.pyi → /corvic_engine-0.3.0rc44/python/corvic_generated/orm/v1/completion_model_pb2_grpc.pyi +0 -0
  220. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/feature_view_pb2.py +0 -0
  221. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/feature_view_pb2.pyi +0 -0
  222. /corvic_engine-0.3.0rc42/python/corvic_generated/orm/v1/pipeline_pb2_grpc.py → /corvic_engine-0.3.0rc44/python/corvic_generated/orm/v1/feature_view_pb2_grpc.py +0 -0
  223. /corvic_engine-0.3.0rc42/python/corvic_generated/orm/v1/pipeline_pb2_grpc.pyi → /corvic_engine-0.3.0rc44/python/corvic_generated/orm/v1/feature_view_pb2_grpc.pyi +0 -0
  224. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/pipeline_pb2.py +0 -0
  225. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/pipeline_pb2.pyi +0 -0
  226. /corvic_engine-0.3.0rc42/python/corvic_generated/orm/v1/space_pb2_grpc.py → /corvic_engine-0.3.0rc44/python/corvic_generated/orm/v1/pipeline_pb2_grpc.py +0 -0
  227. /corvic_engine-0.3.0rc42/python/corvic_generated/orm/v1/space_pb2_grpc.pyi → /corvic_engine-0.3.0rc44/python/corvic_generated/orm/v1/pipeline_pb2_grpc.pyi +0 -0
  228. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/space_pb2.py +0 -0
  229. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/space_pb2.pyi +0 -0
  230. /corvic_engine-0.3.0rc42/python/corvic_generated/status/v1/event_pb2_grpc.py → /corvic_engine-0.3.0rc44/python/corvic_generated/orm/v1/space_pb2_grpc.py +0 -0
  231. /corvic_engine-0.3.0rc42/python/corvic_generated/status/v1/event_pb2_grpc.pyi → /corvic_engine-0.3.0rc44/python/corvic_generated/orm/v1/space_pb2_grpc.pyi +0 -0
  232. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/table_pb2.py +0 -0
  233. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/table_pb2.pyi +0 -0
  234. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/table_pb2_grpc.py +0 -0
  235. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/orm/v1/table_pb2_grpc.pyi +0 -0
  236. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/platform/__init__.py +0 -0
  237. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/platform/v1/__init__.py +0 -0
  238. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/query/__init__.py +0 -0
  239. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/query/v1/__init__.py +0 -0
  240. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/query/v1/query_pb2.py +0 -0
  241. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/query/v1/query_pb2.pyi +0 -0
  242. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/query/v1/query_pb2_grpc.py +0 -0
  243. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/query/v1/query_pb2_grpc.pyi +0 -0
  244. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/status/__init__.py +0 -0
  245. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/status/v1/__init__.py +0 -0
  246. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/status/v1/event_pb2.py +0 -0
  247. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/status/v1/event_pb2.pyi +0 -0
  248. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/status/v1/service_pb2.py +0 -0
  249. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/status/v1/service_pb2.pyi +0 -0
  250. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/status/v1/service_pb2_grpc.py +0 -0
  251. {corvic_engine-0.3.0rc42 → corvic_engine-0.3.0rc44}/python/corvic_generated/status/v1/service_pb2_grpc.pyi +0 -0
@@ -22,7 +22,7 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
22
22
 
23
23
  [[package]]
24
24
  name = "corvic-engine"
25
- version = "0.3.0-rc.42"
25
+ version = "0.3.0-rc.44"
26
26
  dependencies = [
27
27
  "numpy",
28
28
  "pyo3",
@@ -63,7 +63,7 @@ checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
63
63
 
64
64
  [[package]]
65
65
  name = "engine-walk"
66
- version = "0.3.0-rc.42"
66
+ version = "0.3.0-rc.44"
67
67
  dependencies = [
68
68
  "version_check",
69
69
  ]
@@ -3,7 +3,7 @@ resolver = "2"
3
3
  members = ["python"]
4
4
 
5
5
  [workspace.package]
6
- version = "0.3.0-rc.42"
6
+ version = "0.3.0-rc.44"
7
7
  edition = "2021"
8
8
  publish = false
9
9
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: corvic-engine
3
- Version: 0.3.0rc42
3
+ Version: 0.3.0rc44
4
4
  Classifier: Environment :: Console
5
5
  Classifier: License :: Other/Proprietary License
6
6
  Classifier: Programming Language :: Python :: Implementation :: CPython
@@ -11,25 +11,25 @@ Classifier: Programming Language :: Python :: 3.12
11
11
  Classifier: Programming Language :: Python :: 3.13
12
12
  Classifier: Programming Language :: Rust
13
13
  Classifier: Topic :: Scientific/Engineering
14
- Requires-Dist: cachetools >=5
15
- Requires-Dist: duckdb >=1.0.0
16
- Requires-Dist: more-itertools >=10
17
- Requires-Dist: numpy >=1.26
18
- Requires-Dist: polars >=1.7.1
19
- Requires-Dist: protobuf >=4.25
20
- Requires-Dist: protovalidate >=0.3
21
- Requires-Dist: pyarrow >=17
22
- Requires-Dist: sqlalchemy >=2
23
- Requires-Dist: sqlglot >=25.6.0, <26
24
- Requires-Dist: structlog >=24
14
+ Requires-Dist: cachetools>=5
15
+ Requires-Dist: duckdb>=1.0.0
16
+ Requires-Dist: more-itertools>=10
17
+ Requires-Dist: numpy>=1.26
18
+ Requires-Dist: polars>=1.7.1
19
+ Requires-Dist: protobuf>=4.25
20
+ Requires-Dist: protovalidate>=0.3
21
+ Requires-Dist: pyarrow>=17
22
+ Requires-Dist: sqlalchemy>=2
23
+ Requires-Dist: sqlglot>=25.6.0,<26
24
+ Requires-Dist: structlog>=24
25
25
  Requires-Dist: tqdm
26
- Requires-Dist: typing-extensions >=4.9
27
- Requires-Dist: umap-learn >=0.5.5 ; extra == 'ml'
28
- Requires-Dist: pillow >=10.0.0 ; extra == 'ml'
29
- Requires-Dist: scikit-learn >=1.4.0 ; extra == 'ml'
30
- Requires-Dist: transformers[torch] >=4.45.0 ; extra == 'ml'
31
- Requires-Dist: opentelemetry-api >=1.20.0 ; extra == 'telemetry'
32
- Requires-Dist: opentelemetry-sdk >=1.20.0 ; extra == 'telemetry'
26
+ Requires-Dist: typing-extensions>=4.9
27
+ Requires-Dist: umap-learn>=0.5.5 ; extra == 'ml'
28
+ Requires-Dist: pillow>=10.0.0 ; extra == 'ml'
29
+ Requires-Dist: scikit-learn>=1.4.0 ; extra == 'ml'
30
+ Requires-Dist: transformers[torch]>=4.45.0 ; extra == 'ml'
31
+ Requires-Dist: opentelemetry-api>=1.20.0 ; extra == 'telemetry'
32
+ Requires-Dist: opentelemetry-sdk>=1.20.0 ; extra == 'telemetry'
33
33
  Provides-Extra: ml
34
34
  Provides-Extra: telemetry
35
35
  License-File: LICENSE
@@ -20,7 +20,7 @@ authors = [
20
20
  ]
21
21
  readme = "README.md"
22
22
  description = "Seamless embedding generation and retrieval."
23
- version = "0.3.0-rc.42" # sync this with tool.poetry.version below
23
+ version = "0.3.0-rc.44" # sync this with tool.poetry.version below
24
24
 
25
25
  # TODO(ddn): Pull dependencies from tool.poetry.dependencies. We use maturin as
26
26
  # the build system but poetry for the development environment.
@@ -74,7 +74,7 @@ packages = [
74
74
  ]
75
75
  description = ""
76
76
  authors = []
77
- version = "0.3.0-rc.42"
77
+ version = "0.3.0-rc.44"
78
78
 
79
79
  [tool.poetry.scripts]
80
80
  check = "corvic_check.cli:main"
@@ -84,8 +84,21 @@ def stable_rank(
84
84
  case Ok():
85
85
  pass
86
86
 
87
- numerator = norm(embeddings, order="fro")
88
- denominator = norm(embeddings, order=2) ** 2
87
+ try:
88
+ numerator = norm(embeddings, order="fro")
89
+ denominator = norm(embeddings, order=2) ** 2
90
+ except np.linalg.LinAlgError as err:
91
+ return InvalidArgumentError.from_(err)
92
+
93
+ if not np.isfinite(numerator):
94
+ return InvalidArgumentError("embeddings norm_fro is not finite")
95
+
96
+ if not np.isfinite(denominator):
97
+ return InvalidArgumentError("embeddings norm_2 is not finite")
98
+
99
+ if not denominator:
100
+ return InvalidArgumentError("embeddings norm_2 is zero")
101
+
89
102
  metric = numerator / denominator
90
103
  if normalize:
91
104
  metric = 1 - 1 / (1 + metric)
@@ -162,7 +175,10 @@ def ne_sum(
162
175
  pass
163
176
 
164
177
  covariance = np.cov(embeddings.T)
165
- eigenvalues = linalg.eigvals(covariance)
178
+ try:
179
+ eigenvalues = linalg.eigvals(covariance)
180
+ except np.linalg.LinAlgError as err:
181
+ return InvalidArgumentError.from_(err)
166
182
 
167
183
  # Discard imaginary part
168
184
  eigenvalues = eigenvalues.real
@@ -172,7 +188,7 @@ def ne_sum(
172
188
  eigenvalues = eigenvalues[sorted_indices]
173
189
 
174
190
  if eigenvalues[0] == 0:
175
- return Ok(0)
191
+ return Ok(0.0)
176
192
 
177
193
  ne_sum_value = float(np.sum(eigenvalues) / eigenvalues[0])
178
194
  if normalize:
@@ -227,7 +243,11 @@ def condition_number(
227
243
  case Ok():
228
244
  pass
229
245
 
230
- metric = float(np.linalg.cond(embeddings, p=p))
246
+ try:
247
+ metric = float(np.linalg.cond(embeddings, p=p))
248
+ except np.linalg.LinAlgError as err:
249
+ return InvalidArgumentError.from_(err)
250
+
231
251
  if normalize:
232
252
  metric = 1 - 1 / (1 + metric)
233
253
  return Ok(metric)
@@ -246,7 +266,11 @@ def rcondition_number(
246
266
  case Ok():
247
267
  pass
248
268
 
249
- metric = float(1 / np.linalg.cond(embeddings, p=p))
269
+ try:
270
+ metric = float(1 / np.linalg.cond(embeddings, p=p))
271
+ except np.linalg.LinAlgError as err:
272
+ return InvalidArgumentError.from_(err)
273
+
250
274
  if normalize:
251
275
  metric = 1 - 1 / (1 + metric)
252
276
  return Ok(metric)
@@ -5,7 +5,7 @@ from __future__ import annotations
5
5
  import copy
6
6
  import datetime
7
7
  from collections.abc import Iterable, Sequence
8
- from typing import TypeAlias
8
+ from typing import Literal, TypeAlias
9
9
 
10
10
  from sqlalchemy import orm as sa_orm
11
11
 
@@ -19,6 +19,7 @@ from corvic.model._proto_orm_convert import (
19
19
  )
20
20
  from corvic.result import InvalidArgumentError, NotFoundError, Ok
21
21
  from corvic_generated.model.v1alpha import models_pb2
22
+ from corvic_generated.orm.v1 import completion_model_pb2
22
23
 
23
24
  CompletionModelID: TypeAlias = orm.CompletionModelID
24
25
  OrgID: TypeAlias = orm.OrgID
@@ -62,12 +63,46 @@ class CompletionModel(
62
63
  return OrgID(self.proto_self.org_id)
63
64
 
64
65
  @property
65
- def model_name(self) -> str:
66
- return self.proto_self.model_name
66
+ def provider(self) -> Literal["openai-generic", "azure-openai"] | None:
67
+ match self.proto_self.parameters.WhichOneof("params"):
68
+ case "azure_openai_parameters":
69
+ return "azure-openai"
70
+ case "generic_openai_parameters":
71
+ return "openai-generic"
72
+ case _:
73
+ return None
67
74
 
68
75
  @property
69
- def endpoint(self) -> str:
70
- return self.proto_self.endpoint
76
+ def parameters(
77
+ self,
78
+ ) -> (
79
+ completion_model_pb2.AzureOpenAIParameters
80
+ | completion_model_pb2.GenericOpenAIParameters
81
+ | None
82
+ ):
83
+ match self.provider:
84
+ case "azure-openai":
85
+ return self.azure_openai_parameters
86
+ case "openai-generic":
87
+ return self.generic_openai_parameters
88
+ case None:
89
+ return None
90
+
91
+ @property
92
+ def azure_openai_parameters(
93
+ self,
94
+ ) -> completion_model_pb2.AzureOpenAIParameters | None:
95
+ if self.proto_self.parameters.HasField("azure_openai_parameters"):
96
+ return self.proto_self.parameters.azure_openai_parameters
97
+ return None
98
+
99
+ @property
100
+ def generic_openai_parameters(
101
+ self,
102
+ ) -> completion_model_pb2.GenericOpenAIParameters | None:
103
+ if self.proto_self.parameters.HasField("generic_openai_parameters"):
104
+ return self.proto_self.parameters.generic_openai_parameters
105
+ return None
71
106
 
72
107
  @property
73
108
  def secret_api_key(self) -> str:
@@ -83,8 +118,7 @@ class CompletionModel(
83
118
  *,
84
119
  name: str,
85
120
  description: str,
86
- model_name: str,
87
- endpoint: str,
121
+ parameters: completion_model_pb2.CompletionModelParameters,
88
122
  secret_api_key: str,
89
123
  client: system.Client | None = None,
90
124
  ):
@@ -94,8 +128,7 @@ class CompletionModel(
94
128
  models_pb2.CompletionModel(
95
129
  name=name,
96
130
  description=description,
97
- model_name=model_name,
98
- endpoint=endpoint,
131
+ parameters=parameters,
99
132
  secret_api_key=secret_api_key,
100
133
  ),
101
134
  )
@@ -153,14 +186,11 @@ class CompletionModel(
153
186
  proto_self.description = description
154
187
  return CompletionModel(self.client, proto_self)
155
188
 
156
- def with_model_name(self, model_name: str) -> CompletionModel:
157
- proto_self = copy.deepcopy(self.proto_self)
158
- proto_self.model_name = model_name
159
- return CompletionModel(self.client, proto_self)
160
-
161
- def with_endpoint(self, endpoint: str) -> CompletionModel:
189
+ def with_parameters(
190
+ self, parameters: completion_model_pb2.CompletionModelParameters
191
+ ) -> CompletionModel:
162
192
  proto_self = copy.deepcopy(self.proto_self)
163
- proto_self.endpoint = endpoint
193
+ proto_self.parameters.CopyFrom(parameters)
164
194
  return CompletionModel(self.client, proto_self)
165
195
 
166
196
  def with_secret_api_key(self, secret_api_key: str) -> CompletionModel:
@@ -1075,6 +1075,7 @@ class FeatureView(BaseModel[FeatureViewID, models_pb2.FeatureView, orm.FeatureVi
1075
1075
  )
1076
1076
 
1077
1077
  proto_feature_view_source = models_pb2.FeatureViewSource(
1078
+ room_id=str(source.room_id),
1078
1079
  table_op_graph=new_table.op_graph.to_proto(),
1079
1080
  drop_disconnected=drop_disconnected,
1080
1081
  source=source.proto_self,
@@ -66,6 +66,7 @@ def _translate_orm_ids(
66
66
  | models_pb2.Space()
67
67
  | models_pb2.Agent()
68
68
  | models_pb2.Pipeline()
69
+ | models_pb2.FeatureViewSource()
69
70
  ):
70
71
  room_id = orm.RoomID(proto_obj.room_id)
71
72
  match room_id.to_db():
@@ -73,7 +74,7 @@ def _translate_orm_ids(
73
74
  return err
74
75
  case Ok():
75
76
  pass
76
- case models_pb2.FeatureViewSource() | models_pb2.CompletionModel():
77
+ case models_pb2.CompletionModel():
77
78
  room_id = None
78
79
  case models_pb2.Room():
79
80
  room_id = cast(orm.RoomID, obj_id)
@@ -146,6 +147,7 @@ def feature_view_source_orm_to_proto(
146
147
  ) -> models_pb2.FeatureViewSource:
147
148
  return models_pb2.FeatureViewSource(
148
149
  id=str(feature_view_source_orm.id),
150
+ room_id=str(feature_view_source_orm.room_id),
149
151
  source=source_orm_to_proto(feature_view_source_orm.source),
150
152
  table_op_graph=feature_view_source_orm.table_op_graph,
151
153
  drop_disconnected=feature_view_source_orm.drop_disconnected,
@@ -225,8 +227,7 @@ def completion_model_orm_to_proto(
225
227
  name=completion_model_orm.name,
226
228
  description=completion_model_orm.description,
227
229
  org_id=str(completion_model_orm.org_id),
228
- model_name=completion_model_orm.model_name,
229
- endpoint=completion_model_orm.endpoint,
230
+ parameters=completion_model_orm.parameters,
230
231
  secret_api_key=completion_model_orm.secret_api_key,
231
232
  created_at=timestamp_orm_to_proto(completion_model_orm.created_at),
232
233
  )
@@ -263,7 +264,9 @@ def resource_proto_to_orm(
263
264
  latest_event=proto_obj.recent_events[-1] if proto_obj.recent_events else None,
264
265
  room_id=ids.room_id,
265
266
  source_associations=[
266
- orm.SourceResourceAssociation(source_id=src_id, resource_id=ids.obj_id)
267
+ orm.SourceResourceAssociation(
268
+ room_id=ids.room_id, source_id=src_id, resource_id=ids.obj_id
269
+ )
267
270
  for src_id in source_ids
268
271
  ],
269
272
  )
@@ -317,7 +320,10 @@ def pipeline_proto_to_orm( # noqa: C901
317
320
  session.add(resource_orm)
318
321
  session.merge(
319
322
  orm.PipelineInput(
320
- pipeline=orm_obj, resource=resource_orm, name=name
323
+ room_id=resource_orm.room_id,
324
+ pipeline=orm_obj,
325
+ resource=resource_orm,
326
+ name=name,
321
327
  )
322
328
  )
323
329
 
@@ -333,7 +339,12 @@ def pipeline_proto_to_orm( # noqa: C901
333
339
  else:
334
340
  session.add(source_orm)
335
341
  session.merge(
336
- orm.PipelineOutput(pipeline=orm_obj, source=source_orm, name=name)
342
+ orm.PipelineOutput(
343
+ room_id=source_orm.room_id,
344
+ pipeline=orm_obj,
345
+ source=source_orm,
346
+ name=name,
347
+ )
337
348
  )
338
349
  if proto_obj.org_id:
339
350
  org_id = orm.OrgID(proto_obj.org_id)
@@ -356,7 +367,9 @@ def source_proto_to_orm(
356
367
  resource_id = orm.ResourceID(proto_obj.resource_id)
357
368
  if resource_id:
358
369
  associations = [
359
- orm.SourceResourceAssociation(source_id=ids.obj_id, resource_id=resource_id)
370
+ orm.SourceResourceAssociation(
371
+ room_id=ids.room_id, source_id=ids.obj_id, resource_id=resource_id
372
+ )
360
373
  ]
361
374
  else:
362
375
  associations = list[orm.SourceResourceAssociation]()
@@ -499,6 +512,7 @@ def feature_view_source_proto_to_orm(
499
512
  else:
500
513
  session.add(source)
501
514
  orm_obj = orm.FeatureViewSource(
515
+ room_id=source.room_id,
502
516
  table_op_graph=proto_obj.table_op_graph,
503
517
  drop_disconnected=proto_obj.drop_disconnected,
504
518
  source=source,
@@ -543,8 +557,7 @@ def completion_model_proto_to_orm(
543
557
  id=ids.obj_id,
544
558
  name=proto_obj.name,
545
559
  description=proto_obj.description,
546
- model_name=proto_obj.model_name,
547
- endpoint=proto_obj.endpoint,
560
+ parameters=proto_obj.parameters,
548
561
  secret_api_key=proto_obj.secret_api_key,
549
562
  )
550
563
 
@@ -782,50 +782,67 @@ class TabularSpace(Space):
782
782
 
783
783
  embedding_column_tmp_name = f"__embed-{uuid.uuid4()}"
784
784
 
785
- op = (
786
- op.concat_list(
787
- column_names=embedding_column_tmp_names,
788
- concat_list_column_name=embedding_column_tmp_name,
789
- )
790
- .and_then(
791
- lambda t,
792
- embedding_column_name=embedding_column_tmp_name: op_graph.op.coordinates_from_embedding( # noqa: E501
793
- table=t,
794
- embedding_column_name=embedding_column_name,
795
- output_dims=parameters.ndim,
796
- )
785
+ # Avoid 0 padding for spaces with small numbers of columns
786
+ target_list_length = min(parameters.ndim, len(embedding_column_tmp_names))
787
+
788
+ def reduce_dimension(
789
+ op: op_graph.Op,
790
+ embedding_column_tmp_name=embedding_column_tmp_name,
791
+ target_list_length=target_list_length,
792
+ ):
793
+ return op.truncate_list(
794
+ list_column_name=embedding_column_tmp_name,
795
+ target_list_length=target_list_length,
796
+ padding_value=0,
797
797
  )
798
- .and_then(
799
- lambda t,
800
- pk_field=pk_field,
801
- embedding_column_tmp_name=embedding_column_tmp_name,
802
- output_source=output_source: t.select_columns(
803
- [pk_field.name, embedding_column_tmp_name]
804
- )
798
+
799
+ def select_columns(
800
+ op: op_graph.Op,
801
+ pk_field=pk_field,
802
+ embedding_column_tmp_name=embedding_column_tmp_name,
803
+ ):
804
+ return op.select_columns([pk_field.name, embedding_column_tmp_name])
805
+
806
+ def update_feature_types(
807
+ op: op_graph.Op,
808
+ embedding_column_tmp_name=embedding_column_tmp_name,
809
+ ):
810
+ return op.update_feature_types(
811
+ {embedding_column_tmp_name: op_graph.feature_type.embedding()}
805
812
  )
806
- .and_then(
807
- lambda t,
808
- embedding_column_tmp_name=embedding_column_tmp_name: t.update_feature_types( # noqa: E501
809
- {embedding_column_tmp_name: op_graph.feature_type.embedding()}
810
- )
813
+
814
+ def rename_columns(
815
+ op: op_graph.Op,
816
+ pk_field=pk_field,
817
+ embedding_column_tmp_name=embedding_column_tmp_name,
818
+ ):
819
+ return op.rename_columns(
820
+ {
821
+ pk_field.name: "entity_id",
822
+ embedding_column_tmp_name: "embedding",
823
+ }
811
824
  )
812
- .and_then(
813
- lambda t,
814
- pk_field=pk_field,
815
- embedding_column_tmp_name=embedding_column_tmp_name: t.rename_columns( # noqa: E501
816
- {
817
- pk_field.name: "entity_id",
818
- embedding_column_tmp_name: "embedding",
819
- }
820
- )
825
+
826
+ def add_literal_column(
827
+ op: op_graph.Op,
828
+ output_source=output_source,
829
+ ):
830
+ return op.add_literal_column(
831
+ "source_id",
832
+ str(output_source.id),
833
+ pa.string(),
821
834
  )
822
- .and_then(
823
- lambda t, output_source=output_source: t.add_literal_column(
824
- "source_id",
825
- str(output_source.id),
826
- pa.string(),
827
- )
835
+
836
+ op = (
837
+ op.concat_list(
838
+ column_names=embedding_column_tmp_names,
839
+ concat_list_column_name=embedding_column_tmp_name,
828
840
  )
841
+ .and_then(reduce_dimension)
842
+ .and_then(select_columns)
843
+ .and_then(update_feature_types)
844
+ .and_then(rename_columns)
845
+ .and_then(add_literal_column)
829
846
  )
830
847
 
831
848
  match op: