corvic-engine 0.3.0rc53__tar.gz → 0.3.0rc55__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.
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/Cargo.lock +2 -2
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/Cargo.toml +1 -1
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/PKG-INFO +1 -1
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/pyproject.toml +2 -2
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_completion_model.py +18 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_proto_orm_convert.py +4 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_space.py +33 -2
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/op_graph/encoders.py +48 -1
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/orm/__init__.py +7 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/pa_scalar/_to_value.py +11 -16
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system/in_memory_executor.py +151 -7
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/table/table.py +0 -13
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/model/v1alpha/models_pb2.py +2 -2
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/model/v1alpha/models_pb2.pyi +4 -2
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/table_pb2.py +89 -85
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/table_pb2.pyi +14 -2
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/LICENSE +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/README.md +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/Cargo.toml +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/buf/validate/expression_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/buf/validate/expression_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/buf/validate/expression_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/buf/validate/expression_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/buf/validate/priv/private_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/buf/validate/priv/private_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/buf/validate/priv/private_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/buf/validate/priv/private_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/buf/validate/validate_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/buf/validate/validate_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/buf/validate/validate_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/buf/validate/validate_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/context/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/context/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/embed/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/embed/node2vec.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/embed/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/embedding_metric/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/embedding_metric/embeddings.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/embedding_metric/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/engine/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/engine/_native.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/engine/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_agent.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_base_model.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_defaults.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_errors.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_feature_type.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_feature_view.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_pipeline.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_resource.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_room.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_source.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/op_graph/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/op_graph/_schema.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/op_graph/_transformations.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/op_graph/aggregation.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/op_graph/errors.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/op_graph/feature_types.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/op_graph/ops.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/op_graph/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/op_graph/row_filters/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/op_graph/row_filters/_jsonlogic.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/op_graph/row_filters/_row_filters.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/op_graph/sample_strategy.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/orm/_proto_columns.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/orm/base.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/orm/errors.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/orm/func/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/orm/func/utc_func.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/orm/func/uuid_func.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/orm/ids.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/orm/keys.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/orm/mixins.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/orm/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/pa_scalar/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/pa_scalar/_const.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/pa_scalar/_from_value.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/pa_scalar/_temporal.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/pa_scalar/_types.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/pa_scalar/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/proto_wrapper/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/proto_wrapper/_errors.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/proto_wrapper/_wrappers.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/proto_wrapper/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/result/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/result/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/sql/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/sql/parse_ops.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/sql/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system/_dimension_reduction.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system/_embedder.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system/_image_embedder.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system/_planner.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system/_text_embedder.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system/client.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system/op_graph_executor.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system/staging.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system/storage.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system_sqlite/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system_sqlite/client.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system_sqlite/fs_blob_store.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system_sqlite/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system_sqlite/rdbms_blob_store.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system_sqlite/staging.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/table/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/table/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/version/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/version/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/well_known_types/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/well_known_types/py.typed +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/algorithm/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/algorithm/graph/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/algorithm/graph/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/algorithm/graph/v1/graph_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/algorithm/graph/v1/graph_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/algorithm/graph/v1/graph_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/chat/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/chat/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/chat/v1/service_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/chat/v1/service_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/chat/v1/service_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/chat/v1/service_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/completion/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/completion/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/completion/v1/service_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/completion/v1/service_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/completion/v1/service_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/completion/v1/service_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/config/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/config/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/config/v1/settings_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/config/v1/settings_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/config/v1/settings_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/config/v1/settings_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/embedding/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/embedding/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/embedding/v1/models_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/embedding/v1/models_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/embedding/v1/models_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/embedding/v1/models_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v1/experiment_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v1/experiment_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v1/experiment_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v1/experiment_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v1/space_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v1/space_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v1/space_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v1/space_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v2/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v2/feature_view_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v2/feature_view_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v2/feature_view_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v2/space_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v2/space_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v2/space_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/feature/v2/space_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v1/service_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v1/service_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v1/service_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v1/service_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/pipeline_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/pipeline_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/pipeline_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/quick_mode_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/quick_mode_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/quick_mode_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/resource_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/resource_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/resource_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/resource_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/room_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/room_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/room_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/room_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/source_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/source_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/source_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/source_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/table_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/table_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/table_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/ingest/v2/table_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/model/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/model/v1alpha/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/model/v1alpha/models_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/model/v1alpha/models_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/agent_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/agent_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/agent_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/agent_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/common_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/common_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/common_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/common_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/completion_model_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/completion_model_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/completion_model_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/feature_view_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/feature_view_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/feature_view_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/pipeline_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/pipeline_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/pipeline_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/space_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/space_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/space_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/space_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/table_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/orm/v1/table_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/platform/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/platform/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/platform/v1/platform_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/platform/v1/platform_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/platform/v1/platform_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/platform/v1/platform_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/query/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/query/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/query/v1/query_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/query/v1/query_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/query/v1/query_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/query/v1/query_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/status/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/status/v1/__init__.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/status/v1/event_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/status/v1/event_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/status/v1/event_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/status/v1/event_pb2_grpc.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/status/v1/service_pb2.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/status/v1/service_pb2.pyi +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic_generated/status/v1/service_pb2_grpc.py +0 -0
- {corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/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.
|
25
|
+
version = "0.3.0-rc.55"
|
26
26
|
dependencies = [
|
27
27
|
"numpy",
|
28
28
|
"pyo3",
|
@@ -63,7 +63,7 @@ checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719"
|
|
63
63
|
|
64
64
|
[[package]]
|
65
65
|
name = "engine-walk"
|
66
|
-
version = "0.3.0-rc.
|
66
|
+
version = "0.3.0-rc.55"
|
67
67
|
dependencies = [
|
68
68
|
"version_check",
|
69
69
|
]
|
@@ -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.
|
23
|
+
version = "0.3.0-rc.55" # 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.
|
77
|
+
version = "0.3.0-rc.55"
|
78
78
|
|
79
79
|
[tool.poetry.scripts]
|
80
80
|
check = "corvic_check.cli:main"
|
{corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_completion_model.py
RENAMED
@@ -7,6 +7,7 @@ import datetime
|
|
7
7
|
from collections.abc import Iterable, Sequence
|
8
8
|
from typing import Literal, TypeAlias
|
9
9
|
|
10
|
+
from google.protobuf import timestamp_pb2
|
10
11
|
from sqlalchemy import orm as sa_orm
|
11
12
|
|
12
13
|
from corvic import orm, system
|
@@ -24,6 +25,8 @@ from corvic_generated.orm.v1 import completion_model_pb2
|
|
24
25
|
CompletionModelID: TypeAlias = orm.CompletionModelID
|
25
26
|
OrgID: TypeAlias = orm.OrgID
|
26
27
|
|
28
|
+
UNIX_TIMESTAMP_START_DATETIME = timestamp_pb2.Timestamp(seconds=0, nanos=0)
|
29
|
+
|
27
30
|
|
28
31
|
class CompletionModel(
|
29
32
|
BaseModel[CompletionModelID, models_pb2.CompletionModel, orm.CompletionModel]
|
@@ -112,6 +115,14 @@ class CompletionModel(
|
|
112
115
|
def description(self) -> str:
|
113
116
|
return self.proto_self.description
|
114
117
|
|
118
|
+
@property
|
119
|
+
def last_validation_time(self) -> datetime.datetime | None:
|
120
|
+
if self.proto_self.last_validation_time != UNIX_TIMESTAMP_START_DATETIME:
|
121
|
+
return self.proto_self.last_validation_time.ToDatetime(
|
122
|
+
tzinfo=datetime.timezone.utc
|
123
|
+
)
|
124
|
+
return None
|
125
|
+
|
115
126
|
@classmethod
|
116
127
|
def create(
|
117
128
|
cls,
|
@@ -197,3 +208,10 @@ class CompletionModel(
|
|
197
208
|
proto_self = copy.deepcopy(self.proto_self)
|
198
209
|
proto_self.secret_api_key = secret_api_key
|
199
210
|
return CompletionModel(self.client, proto_self)
|
211
|
+
|
212
|
+
def with_last_validation_time(
|
213
|
+
self, last_validation_time: datetime.datetime
|
214
|
+
) -> CompletionModel:
|
215
|
+
proto_self = copy.deepcopy(self.proto_self)
|
216
|
+
proto_self.last_validation_time.FromDatetime(last_validation_time)
|
217
|
+
return CompletionModel(self.client, proto_self)
|
{corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/model/_proto_orm_convert.py
RENAMED
@@ -241,6 +241,9 @@ def completion_model_orm_to_proto(
|
|
241
241
|
parameters=completion_model_orm.parameters,
|
242
242
|
secret_api_key=completion_model_orm.secret_api_key,
|
243
243
|
created_at=timestamp_orm_to_proto(completion_model_orm.created_at),
|
244
|
+
last_validation_time=timestamp_orm_to_proto(
|
245
|
+
completion_model_orm.last_validation_time
|
246
|
+
),
|
244
247
|
)
|
245
248
|
|
246
249
|
|
@@ -618,6 +621,7 @@ def completion_model_proto_to_orm(
|
|
618
621
|
description=proto_obj.description,
|
619
622
|
parameters=proto_obj.parameters,
|
620
623
|
secret_api_key=proto_obj.secret_api_key,
|
624
|
+
last_validation_time=proto_obj.last_validation_time.ToDatetime(),
|
621
625
|
)
|
622
626
|
return Ok(_add_orm_to_session(orm_obj, proto_obj.org_id, session))
|
623
627
|
|
@@ -694,7 +694,7 @@ class TabularSpace(Space):
|
|
694
694
|
)
|
695
695
|
return Ok(cls(client, proto_self))
|
696
696
|
|
697
|
-
def embeddings_tables( # noqa: C901
|
697
|
+
def embeddings_tables( # noqa: C901, PLR0915
|
698
698
|
self,
|
699
699
|
) -> Ok[Mapping[str, Table]] | InvalidArgumentError:
|
700
700
|
output_sources = self.feature_view.output_sources
|
@@ -750,7 +750,38 @@ class TabularSpace(Space):
|
|
750
750
|
pass
|
751
751
|
case InvalidArgumentError() as err:
|
752
752
|
return err
|
753
|
-
|
753
|
+
case op_graph.feature_type.Timestamp():
|
754
|
+
encoded_column_name = f"__encoded-{uuid.uuid4()}"
|
755
|
+
embedding_column_tmp_names.append(encoded_column_name)
|
756
|
+
match op.encode_columns(
|
757
|
+
[
|
758
|
+
op_graph.encoder.EncodedColumn(
|
759
|
+
column_name=column.name,
|
760
|
+
encoded_column_name=encoded_column_name,
|
761
|
+
encoder=op_graph.encoder.timestamp_encoder(),
|
762
|
+
)
|
763
|
+
]
|
764
|
+
):
|
765
|
+
case Ok(op):
|
766
|
+
pass
|
767
|
+
case InvalidArgumentError() as err:
|
768
|
+
return err
|
769
|
+
case op_graph.feature_type.Text():
|
770
|
+
encoded_column_name = f"__encoded-{uuid.uuid4()}"
|
771
|
+
embedding_column_tmp_names.append(encoded_column_name)
|
772
|
+
match op.encode_columns(
|
773
|
+
[
|
774
|
+
op_graph.encoder.EncodedColumn(
|
775
|
+
column_name=column.name,
|
776
|
+
encoded_column_name=encoded_column_name,
|
777
|
+
encoder=op_graph.encoder.text_encoder(),
|
778
|
+
)
|
779
|
+
]
|
780
|
+
):
|
781
|
+
case Ok(op):
|
782
|
+
pass
|
783
|
+
case InvalidArgumentError() as err:
|
784
|
+
return err
|
754
785
|
case _:
|
755
786
|
continue
|
756
787
|
|
@@ -67,7 +67,19 @@ def from_proto(
|
|
67
67
|
) -> StandardScaler: ...
|
68
68
|
|
69
69
|
|
70
|
+
@overload
|
71
|
+
def from_proto(
|
72
|
+
proto: table_pb2.TimestampEncoder,
|
73
|
+
) -> TimestampEncoder: ...
|
74
|
+
|
75
|
+
|
76
|
+
@overload
|
70
77
|
def from_proto(
|
78
|
+
proto: table_pb2.TextEncoder,
|
79
|
+
) -> TextEncoder: ...
|
80
|
+
|
81
|
+
|
82
|
+
def from_proto( # noqa: C901
|
71
83
|
proto: (
|
72
84
|
table_pb2.Encoder
|
73
85
|
| table_pb2.OneHotEncoder
|
@@ -78,6 +90,8 @@ def from_proto(
|
|
78
90
|
| table_pb2.Binarizer
|
79
91
|
| table_pb2.MaxAbsScaler
|
80
92
|
| table_pb2.StandardScaler
|
93
|
+
| table_pb2.TimestampEncoder
|
94
|
+
| table_pb2.TextEncoder
|
81
95
|
),
|
82
96
|
) -> Encoder:
|
83
97
|
"""Create a Encoder wrapper around a Encoder protobuf message."""
|
@@ -100,6 +114,10 @@ def from_proto(
|
|
100
114
|
return MaxAbsScaler(table_pb2.Encoder(max_abs_scaler=proto))
|
101
115
|
case table_pb2.StandardScaler():
|
102
116
|
return StandardScaler(table_pb2.Encoder(standard_scaler=proto))
|
117
|
+
case table_pb2.TimestampEncoder():
|
118
|
+
return TimestampEncoder(table_pb2.Encoder(timestamp_encoder=proto))
|
119
|
+
case table_pb2.TextEncoder():
|
120
|
+
return TextEncoder(table_pb2.Encoder(text_encoder=proto))
|
103
121
|
|
104
122
|
|
105
123
|
def _from_encoder_type(proto: table_pb2.Encoder):
|
@@ -249,6 +267,22 @@ class StandardScaler(_Base):
|
|
249
267
|
return self._proto.standard_scaler.with_std
|
250
268
|
|
251
269
|
|
270
|
+
class TimestampEncoder(_Base):
|
271
|
+
"""Encode timestamp features into a numeric array."""
|
272
|
+
|
273
|
+
@property
|
274
|
+
def output_dtype(self) -> DataType:
|
275
|
+
return pl.List(pl.Float32())
|
276
|
+
|
277
|
+
|
278
|
+
class TextEncoder(_Base):
|
279
|
+
"""Encode text features into a numeric vector."""
|
280
|
+
|
281
|
+
@property
|
282
|
+
def output_dtype(self) -> DataType:
|
283
|
+
return pl.List(pl.Float32())
|
284
|
+
|
285
|
+
|
252
286
|
def one_hot_encoder():
|
253
287
|
"""Build a OneHotEncoder Encoder."""
|
254
288
|
return from_proto(table_pb2.OneHotEncoder())
|
@@ -316,6 +350,16 @@ def standard_scaler(
|
|
316
350
|
)
|
317
351
|
|
318
352
|
|
353
|
+
def timestamp_encoder():
|
354
|
+
"""Build a TimestampEncoder Encoder."""
|
355
|
+
return from_proto(table_pb2.TimestampEncoder())
|
356
|
+
|
357
|
+
|
358
|
+
def text_encoder():
|
359
|
+
"""Build a TextEncoder Encoder."""
|
360
|
+
return from_proto(table_pb2.TextEncoder())
|
361
|
+
|
362
|
+
|
319
363
|
Encoder = (
|
320
364
|
OneHotEncoder
|
321
365
|
| MinMaxScaler
|
@@ -325,9 +369,10 @@ Encoder = (
|
|
325
369
|
| Binarizer
|
326
370
|
| MaxAbsScaler
|
327
371
|
| StandardScaler
|
372
|
+
| TimestampEncoder
|
373
|
+
| TextEncoder
|
328
374
|
)
|
329
375
|
|
330
|
-
|
331
376
|
_ENCODER_NAME_TO_ENCODER_TYPE: Final = {
|
332
377
|
"one_hot_encoder": OneHotEncoder,
|
333
378
|
"min_max_scaler": MinMaxScaler,
|
@@ -337,6 +382,8 @@ _ENCODER_NAME_TO_ENCODER_TYPE: Final = {
|
|
337
382
|
"binarizer": Binarizer,
|
338
383
|
"max_abs_scaler": MaxAbsScaler,
|
339
384
|
"standard_scaler": StandardScaler,
|
385
|
+
"timestamp_encoder": TimestampEncoder,
|
386
|
+
"text_encoder": TextEncoder,
|
340
387
|
}
|
341
388
|
|
342
389
|
_ENCODER_TYPE_TO_ENCODER_FIELD_NAME: Final[dict[type[Any], str]] = {
|
@@ -2,6 +2,8 @@
|
|
2
2
|
|
3
3
|
from __future__ import annotations
|
4
4
|
|
5
|
+
from datetime import datetime
|
6
|
+
|
5
7
|
import sqlalchemy as sa
|
6
8
|
from sqlalchemy import orm as sa_orm
|
7
9
|
|
@@ -369,6 +371,11 @@ class CompletionModel(SoftDeleteMixin, BelongsToOrgMixin, Base):
|
|
369
371
|
sa_orm.mapped_column(default=None)
|
370
372
|
)
|
371
373
|
secret_api_key: sa_orm.Mapped[str] = sa_orm.mapped_column(sa.Text, default=None)
|
374
|
+
last_validation_time: sa_orm.Mapped[datetime | None] = sa_orm.mapped_column(
|
375
|
+
sa.DateTime(timezone=True),
|
376
|
+
server_default=None,
|
377
|
+
default=None,
|
378
|
+
)
|
372
379
|
|
373
380
|
@property
|
374
381
|
def model_key(self):
|
@@ -414,28 +414,23 @@ def _visit(
|
|
414
414
|
|
415
415
|
|
416
416
|
def to_value(
|
417
|
-
scalar: Scalar |
|
417
|
+
scalar: Scalar | _PyValue | struct_pb2.Value,
|
418
418
|
) -> struct_pb2.Value:
|
419
419
|
"""Convert Scalar (or convenient Scalar equivalents) to struct_pb2.Value."""
|
420
420
|
match scalar:
|
421
|
-
# Order matters: bools are ints but ints are not bools
|
422
|
-
case bool():
|
423
|
-
return struct_pb2.Value(bool_value=scalar)
|
424
|
-
case int():
|
425
|
-
return struct_pb2.Value(string_value=str(scalar))
|
426
|
-
case float():
|
427
|
-
if _is_invalid_float(scalar):
|
428
|
-
return to_value(None)
|
429
|
-
return struct_pb2.Value(number_value=scalar)
|
430
|
-
case str():
|
431
|
-
return struct_pb2.Value(string_value=scalar)
|
432
|
-
case None:
|
433
|
-
return struct_pb2.Value(null_value=struct_pb2.NULL_VALUE)
|
434
421
|
case struct_pb2.Value():
|
435
422
|
return scalar
|
436
|
-
case
|
423
|
+
case pa.Scalar():
|
437
424
|
value = cast(_PyValue, scalar.as_py())
|
438
|
-
return _visit(value, scalar.type)
|
425
|
+
return _visit(value, cast(Scalar, scalar).type)
|
426
|
+
case _:
|
427
|
+
try:
|
428
|
+
# Attempt to convert the python value into a pyarrow scalar and
|
429
|
+
# then go through our visitor
|
430
|
+
pa_value = cast(Scalar, pa.scalar(cast(Any, scalar)))
|
431
|
+
return to_value(pa_value)
|
432
|
+
except Exception:
|
433
|
+
return struct_pb2.Value(null_value=struct_pb2.NULL_VALUE)
|
439
434
|
|
440
435
|
|
441
436
|
def _to_py(scalar: Scalar) -> Any:
|
{corvic_engine-0.3.0rc53 → corvic_engine-0.3.0rc55}/python/corvic/system/in_memory_executor.py
RENAMED
@@ -5,6 +5,7 @@ from __future__ import annotations
|
|
5
5
|
import dataclasses
|
6
6
|
import datetime
|
7
7
|
import functools
|
8
|
+
import math
|
8
9
|
from collections.abc import MutableMapping
|
9
10
|
from contextlib import nullcontext
|
10
11
|
from typing import Any, Final, cast
|
@@ -46,6 +47,9 @@ from corvic_generated.orm.v1 import table_pb2
|
|
46
47
|
|
47
48
|
_logger = structlog.get_logger()
|
48
49
|
|
50
|
+
"""Reference and Maximum number of years for normalizing year in Datetime encoder"""
|
51
|
+
REFERENCE_YEAR: Final = 1900
|
52
|
+
MAX_NUMBER_OF_YEARS: Final = 200
|
49
53
|
|
50
54
|
_MIN_EMBEDDINGS_FOR_EMBEDDINGS_SUMMARY: Final = 3
|
51
55
|
|
@@ -815,7 +819,119 @@ class InMemoryExecutor(OpGraphExecutor):
|
|
815
819
|
)
|
816
820
|
)
|
817
821
|
|
818
|
-
|
822
|
+
@staticmethod
|
823
|
+
def get_cyclic_encoding(
|
824
|
+
series: pl.Series,
|
825
|
+
period: int,
|
826
|
+
) -> tuple[pl.Series, pl.Series]:
|
827
|
+
sine_series = (2 * math.pi * series / period).sin().alias(f"{series.name}_sine")
|
828
|
+
cosine_series = (
|
829
|
+
(2 * math.pi * series / period).cos().alias(f"{series.name}_cosine")
|
830
|
+
)
|
831
|
+
return sine_series, cosine_series
|
832
|
+
|
833
|
+
@staticmethod
|
834
|
+
def encode_datetime(series: pl.Series) -> pl.Series:
|
835
|
+
match series.dtype:
|
836
|
+
case pl.Date | pl.Time:
|
837
|
+
pass
|
838
|
+
case pl.Datetime:
|
839
|
+
series = series.dt.replace_time_zone("UTC")
|
840
|
+
case _:
|
841
|
+
raise ValueError("Invalid arguments, expected a datetime series")
|
842
|
+
|
843
|
+
if series.is_null().all():
|
844
|
+
zero_vector = pl.zeros(11, dtype=pl.Float32, eager=True)
|
845
|
+
return pl.Series([zero_vector] * len(series), dtype=pl.List(pl.Float32))
|
846
|
+
|
847
|
+
n = len(series)
|
848
|
+
year_norm = pl.zeros(n, dtype=pl.Float32, eager=True).alias("year")
|
849
|
+
month_sine = pl.zeros(n, dtype=pl.Float32, eager=True).alias("month_sine")
|
850
|
+
month_cosine = pl.zeros(n, dtype=pl.Float32, eager=True).alias("month_cosine")
|
851
|
+
day_sine = pl.zeros(n, dtype=pl.Float32, eager=True).alias("day_sine")
|
852
|
+
day_cosine = pl.zeros(n, dtype=pl.Float32, eager=True).alias("day_cosine")
|
853
|
+
hour_sine = pl.zeros(n, dtype=pl.Float32, eager=True).alias("hour_sine")
|
854
|
+
hour_cosine = pl.zeros(n, dtype=pl.Float32, eager=True).alias("hour_cosine")
|
855
|
+
minute_sine = pl.zeros(n, dtype=pl.Float32, eager=True).alias("minute_sine")
|
856
|
+
minute_cosine = pl.zeros(n, dtype=pl.Float32, eager=True).alias("minute_cosine")
|
857
|
+
second_sine = pl.zeros(n, dtype=pl.Float32, eager=True).alias("second_sine")
|
858
|
+
second_cosine = pl.zeros(n, dtype=pl.Float32, eager=True).alias("second_cosine")
|
859
|
+
|
860
|
+
if series.dtype in [pl.Date, pl.Datetime]:
|
861
|
+
try:
|
862
|
+
year = series.dt.year().cast(pl.Float32).alias("year")
|
863
|
+
month = series.dt.month().cast(pl.Float32).alias("month")
|
864
|
+
day = series.dt.day().cast(pl.Float32).alias("day")
|
865
|
+
|
866
|
+
year_norm = (year - REFERENCE_YEAR) / MAX_NUMBER_OF_YEARS
|
867
|
+
month_sine, month_cosine = InMemoryExecutor.get_cyclic_encoding(
|
868
|
+
month, 12
|
869
|
+
)
|
870
|
+
day_sine, day_cosine = InMemoryExecutor.get_cyclic_encoding(day, 31)
|
871
|
+
except pl.exceptions.PanicException as e:
|
872
|
+
_logger.exception("Error extracting datetime", exc_info=e)
|
873
|
+
|
874
|
+
if series.dtype in [pl.Time, pl.Datetime]:
|
875
|
+
try:
|
876
|
+
hour = series.dt.hour().cast(pl.Float32).alias("hour")
|
877
|
+
minute = series.dt.minute().cast(pl.Float32).alias("minute")
|
878
|
+
second = series.dt.second().cast(pl.Float32).alias("second")
|
879
|
+
|
880
|
+
hour_sine, hour_cosine = InMemoryExecutor.get_cyclic_encoding(hour, 24)
|
881
|
+
minute_sine, minute_cosine = InMemoryExecutor.get_cyclic_encoding(
|
882
|
+
minute, 60
|
883
|
+
)
|
884
|
+
second_sine, second_cosine = InMemoryExecutor.get_cyclic_encoding(
|
885
|
+
second, 60
|
886
|
+
)
|
887
|
+
except pl.exceptions.PanicException as e:
|
888
|
+
_logger.exception("Error extracting datetime", exc_info=e)
|
889
|
+
|
890
|
+
return pl.DataFrame(
|
891
|
+
[
|
892
|
+
year_norm.fill_null(0.0),
|
893
|
+
month_sine.fill_null(0.0),
|
894
|
+
month_cosine.fill_null(0.0),
|
895
|
+
day_sine.fill_null(0.0),
|
896
|
+
day_cosine.fill_null(0.0),
|
897
|
+
hour_sine.fill_null(0.0),
|
898
|
+
hour_cosine.fill_null(0.0),
|
899
|
+
minute_sine.fill_null(0.0),
|
900
|
+
minute_cosine.fill_null(0.0),
|
901
|
+
second_sine.fill_null(0.0),
|
902
|
+
second_cosine.fill_null(0.0),
|
903
|
+
]
|
904
|
+
).select(pl.concat_list(pl.all()).alias(series.name))[series.name]
|
905
|
+
|
906
|
+
@staticmethod
|
907
|
+
def encode_duration(series: pl.Series) -> pl.Series:
|
908
|
+
if series.dtype != pl.Duration:
|
909
|
+
raise ValueError("Invalid arguments, expected a duration series")
|
910
|
+
if series.is_null().all():
|
911
|
+
return pl.zeros(len(series), dtype=pl.Float32, eager=True)
|
912
|
+
|
913
|
+
return series.dt.total_seconds().cast(pl.Float32).fill_null(0.0)
|
914
|
+
|
915
|
+
@staticmethod
|
916
|
+
def encode_text(series: pl.Series) -> pl.Series:
|
917
|
+
match series.dtype:
|
918
|
+
case pl.String:
|
919
|
+
pass
|
920
|
+
case pl.Binary:
|
921
|
+
series = series.map_elements(
|
922
|
+
lambda x: x.decode("utf-8", errors="replace"),
|
923
|
+
return_dtype=pl.String,
|
924
|
+
)
|
925
|
+
case _:
|
926
|
+
raise ValueError("Invalid arguments, expected a string series")
|
927
|
+
series = series.fill_null(" ").replace("", " ")
|
928
|
+
return pl.Series(
|
929
|
+
series.name,
|
930
|
+
[[1 / (len(doc) + 1)] for doc in series],
|
931
|
+
pl.List(pl.Float32),
|
932
|
+
)
|
933
|
+
|
934
|
+
def _execute_encode_columns( # noqa: C901, PLR0915
|
819
935
|
self, op: op_graph.op.EncodeColumns, context: _InMemoryExecutionContext
|
820
936
|
):
|
821
937
|
match self._execute(op.source, context):
|
@@ -903,9 +1019,12 @@ class InMemoryExecutor(OpGraphExecutor):
|
|
903
1019
|
from sklearn.preprocessing import MaxAbsScaler
|
904
1020
|
|
905
1021
|
encoder = MaxAbsScaler()
|
906
|
-
|
907
|
-
|
908
|
-
|
1022
|
+
try:
|
1023
|
+
encoded = encoder.fit_transform(
|
1024
|
+
np.nan_to_num(to_encode.to_numpy()).reshape(-1, 1)
|
1025
|
+
).flatten()
|
1026
|
+
except ValueError:
|
1027
|
+
encoded = np.array([])
|
909
1028
|
|
910
1029
|
case op_graph.encoder.StandardScaler():
|
911
1030
|
from sklearn.preprocessing import StandardScaler
|
@@ -917,6 +1036,28 @@ class InMemoryExecutor(OpGraphExecutor):
|
|
917
1036
|
encoded = encoder.fit_transform(
|
918
1037
|
to_encode.to_numpy().reshape(-1, 1)
|
919
1038
|
).flatten()
|
1039
|
+
|
1040
|
+
case op_graph.encoder.TimestampEncoder():
|
1041
|
+
if to_encode.dtype == pl.datatypes.Duration:
|
1042
|
+
encoded = self.encode_duration(to_encode)
|
1043
|
+
else:
|
1044
|
+
encoded = self.encode_datetime(to_encode)
|
1045
|
+
source_df = source_df.with_columns(
|
1046
|
+
encoded.rename(encoder_arg.encoded_column_name).cast(
|
1047
|
+
encoder_arg.encoder.output_dtype
|
1048
|
+
)
|
1049
|
+
)
|
1050
|
+
continue
|
1051
|
+
|
1052
|
+
case op_graph.encoder.TextEncoder():
|
1053
|
+
encoded = self.encode_text(to_encode)
|
1054
|
+
source_df = source_df.with_columns(
|
1055
|
+
encoded.rename(encoder_arg.encoded_column_name).cast(
|
1056
|
+
encoder_arg.encoder.output_dtype
|
1057
|
+
)
|
1058
|
+
)
|
1059
|
+
continue
|
1060
|
+
|
920
1061
|
source_df = source_df.with_columns(
|
921
1062
|
pl.Series(
|
922
1063
|
name=encoder_arg.encoded_column_name,
|
@@ -1158,9 +1299,12 @@ class InMemoryExecutor(OpGraphExecutor):
|
|
1158
1299
|
case err:
|
1159
1300
|
return err
|
1160
1301
|
source_df = _as_df(source_batches)
|
1161
|
-
|
1162
|
-
|
1163
|
-
|
1302
|
+
if len(source_df):
|
1303
|
+
existing_length = get_polars_embedding_length(
|
1304
|
+
source_df, op.column_name
|
1305
|
+
).unwrap_or_raise()
|
1306
|
+
else:
|
1307
|
+
existing_length = 0
|
1164
1308
|
head_length = (
|
1165
1309
|
op.target_column_length
|
1166
1310
|
if existing_length >= op.target_column_length
|
@@ -62,9 +62,6 @@ _TM = TypeVar("_TM", bound=TypedMetadata)
|
|
62
62
|
|
63
63
|
_logger = structlog.get_logger()
|
64
64
|
|
65
|
-
CORVIC_RESERVED_PREFIX = "__corvic"
|
66
|
-
CORVIC_SURROGATE_ID = f"{CORVIC_RESERVED_PREFIX}_surrogate_id"
|
67
|
-
|
68
65
|
|
69
66
|
@dataclasses.dataclass
|
70
67
|
class DataclassAsTypedMetadataMixin:
|
@@ -366,16 +363,6 @@ class Table:
|
|
366
363
|
case Ok(op):
|
367
364
|
pass
|
368
365
|
|
369
|
-
# For internally added columns we can set custom feature types
|
370
|
-
if CORVIC_SURROGATE_ID in schema:
|
371
|
-
match op.update_feature_types(
|
372
|
-
{CORVIC_SURROGATE_ID: op_graph.feature_type.identifier()}
|
373
|
-
):
|
374
|
-
case InvalidArgumentError() as error:
|
375
|
-
return error
|
376
|
-
case Ok(op):
|
377
|
-
pass
|
378
|
-
|
379
366
|
return Ok(cls.from_ops(client, op))
|
380
367
|
|
381
368
|
def to_bytes(self):
|
@@ -22,7 +22,7 @@ from corvic_generated.status.v1 import event_pb2 as corvic_dot_status_dot_v1_dot
|
|
22
22
|
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
|
23
23
|
|
24
24
|
|
25
|
-
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!corvic/model/v1alpha/models.proto\x12\x14\x63orvic.model.v1alpha\x1a\x19\x63orvic/orm/v1/agent.proto\x1a$corvic/orm/v1/completion_model.proto\x1a corvic/orm/v1/feature_view.proto\x1a\x1c\x63orvic/orm/v1/pipeline.proto\x1a\x19\x63orvic/orm/v1/space.proto\x1a\x19\x63orvic/orm/v1/table.proto\x1a\x1c\x63orvic/status/v1/event.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x90\x01\n\x04Room\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x15\n\x06org_id\x18\x03 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_at\"\xd8\x03\n\x08Resource\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmime_type\x18\x04 \x01(\tR\x08mimeType\x12\x10\n\x03url\x18\x05 \x01(\tR\x03url\x12\x12\n\x04size\x18\x06 \x01(\x04R\x04size\x12\x10\n\x03md5\x18\x07 \x01(\tR\x03md5\x12#\n\roriginal_path\x18\x08 \x01(\tR\x0coriginalPath\x12\x17\n\x07room_id\x18\t \x01(\tR\x06roomId\x12\x15\n\x06org_id\x18\x0b \x01(\tR\x05orgId\x12\x1f\n\x0bpipeline_id\x18\r \x01(\tR\npipelineId\x12.\n\x13pipeline_input_name\x18\x0f \x01(\tR\x11pipelineInputName\x12<\n\rrecent_events\x18\x0e \x03(\x0b\x32\x17.corvic.status.v1.EventR\x0crecentEvents\x12>\n\ncreated_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_at\"\x91\x02\n\x06Source\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x43\n\x0etable_op_graph\x18\x03 \x01(\x0b\x32\x1d.corvic.orm.v1.TableComputeOpR\x0ctableOpGraph\x12\x17\n\x07room_id\x18\x04 \x01(\tR\x06roomId\x12\x15\n\x06org_id\x18\x06 \x01(\tR\x05orgId\x12\x1f\n\x0bpipeline_id\x18\x08 \x01(\tR\npipelineId\x12>\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_at\"\xe9\x03\n\x08Pipeline\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\t \x01(\tR\x0b\x64\x65scription\x12\x17\n\x07room_id\x18\x03 \x01(\tR\x06roomId\x12X\n\x0esource_outputs\x18\x05 \x03(\x0b\x32\x31.corvic.model.v1alpha.Pipeline.SourceOutputsEntryR\rsourceOutputs\x12^\n\x17pipeline_transformation\x18\x06 \x01(\x0b\x32%.corvic.orm.v1.PipelineTransformationR\x16pipelineTransformation\x12\x15\n\x06org_id\x18\x07 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x1a^\n\x12SourceOutputsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x32\n\x05value\x18\x02 \x01(\x0b\x32\x1c.corvic.model.v1alpha.SourceR\x05value:\x02\x38\x01\x42\r\n\x0b_created_at\"\xca\x02\n\x11\x46\x65\x61tureViewSource\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x34\n\x06source\x18\x02 \x01(\x0b\x32\x1c.corvic.model.v1alpha.SourceR\x06source\x12\x43\n\x0etable_op_graph\x18\x03 \x01(\x0b\x32\x1d.corvic.orm.v1.TableComputeOpR\x0ctableOpGraph\x12+\n\x11\x64rop_disconnected\x18\x04 \x01(\x08R\x10\x64ropDisconnected\x12\x15\n\x06org_id\x18\x05 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x12\x17\n\x07room_id\x18\x07 \x01(\tR\x06roomIdB\r\n\x0b_created_at\"\x9c\x03\n\x0b\x46\x65\x61tureView\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x17\n\x07room_id\x18\x04 \x01(\tR\x06roomId\x12P\n\x13\x66\x65\x61ture_view_output\x18\x05 \x01(\x0b\x32 .corvic.orm.v1.FeatureViewOutputR\x11\x66\x65\x61tureViewOutput\x12Y\n\x14\x66\x65\x61ture_view_sources\x18\x06 \x03(\x0b\x32\'.corvic.model.v1alpha.FeatureViewSourceR\x12\x66\x65\x61tureViewSources\x12\x1b\n\tspace_ids\x18\x07 \x03(\tR\x08spaceIds\x12\x15\n\x06org_id\x18\x08 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_at\"\xfa\x02\n\x05Space\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x17\n\x07room_id\x18\x04 \x01(\tR\x06roomId\x12I\n\x10space_parameters\x18\x05 \x01(\x0b\x32\x1e.corvic.orm.v1.SpaceParametersR\x0fspaceParameters\x12\x44\n\x0c\x66\x65\x61ture_view\x18\x06 \x01(\x0b\x32!.corvic.model.v1alpha.FeatureViewR\x0b\x66\x65\x61tureView\x12\x1b\n\tauto_sync\x18\t \x01(\x08R\x08\x61utoSync\x12\x15\n\x06org_id\x18\x07 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_at\"\x85\x02\n\x05\x41gent\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x17\n\x07room_id\x18\x03 \x01(\tR\x06roomId\x12I\n\x10\x61gent_parameters\x18\x04 \x01(\x0b\x32\x1e.corvic.orm.v1.AgentParametersR\x0f\x61gentParameters\x12\x15\n\x06org_id\x18\x05 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_atJ\x04\x08\x06\x10\x07R\x08messages\"\
|
25
|
+
DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!corvic/model/v1alpha/models.proto\x12\x14\x63orvic.model.v1alpha\x1a\x19\x63orvic/orm/v1/agent.proto\x1a$corvic/orm/v1/completion_model.proto\x1a corvic/orm/v1/feature_view.proto\x1a\x1c\x63orvic/orm/v1/pipeline.proto\x1a\x19\x63orvic/orm/v1/space.proto\x1a\x19\x63orvic/orm/v1/table.proto\x1a\x1c\x63orvic/status/v1/event.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x90\x01\n\x04Room\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x15\n\x06org_id\x18\x03 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_at\"\xd8\x03\n\x08Resource\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x1b\n\tmime_type\x18\x04 \x01(\tR\x08mimeType\x12\x10\n\x03url\x18\x05 \x01(\tR\x03url\x12\x12\n\x04size\x18\x06 \x01(\x04R\x04size\x12\x10\n\x03md5\x18\x07 \x01(\tR\x03md5\x12#\n\roriginal_path\x18\x08 \x01(\tR\x0coriginalPath\x12\x17\n\x07room_id\x18\t \x01(\tR\x06roomId\x12\x15\n\x06org_id\x18\x0b \x01(\tR\x05orgId\x12\x1f\n\x0bpipeline_id\x18\r \x01(\tR\npipelineId\x12.\n\x13pipeline_input_name\x18\x0f \x01(\tR\x11pipelineInputName\x12<\n\rrecent_events\x18\x0e \x03(\x0b\x32\x17.corvic.status.v1.EventR\x0crecentEvents\x12>\n\ncreated_at\x18\x0c \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_at\"\x91\x02\n\x06Source\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x43\n\x0etable_op_graph\x18\x03 \x01(\x0b\x32\x1d.corvic.orm.v1.TableComputeOpR\x0ctableOpGraph\x12\x17\n\x07room_id\x18\x04 \x01(\tR\x06roomId\x12\x15\n\x06org_id\x18\x06 \x01(\tR\x05orgId\x12\x1f\n\x0bpipeline_id\x18\x08 \x01(\tR\npipelineId\x12>\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_at\"\xe9\x03\n\x08Pipeline\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\t \x01(\tR\x0b\x64\x65scription\x12\x17\n\x07room_id\x18\x03 \x01(\tR\x06roomId\x12X\n\x0esource_outputs\x18\x05 \x03(\x0b\x32\x31.corvic.model.v1alpha.Pipeline.SourceOutputsEntryR\rsourceOutputs\x12^\n\x17pipeline_transformation\x18\x06 \x01(\x0b\x32%.corvic.orm.v1.PipelineTransformationR\x16pipelineTransformation\x12\x15\n\x06org_id\x18\x07 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x1a^\n\x12SourceOutputsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x32\n\x05value\x18\x02 \x01(\x0b\x32\x1c.corvic.model.v1alpha.SourceR\x05value:\x02\x38\x01\x42\r\n\x0b_created_at\"\xca\x02\n\x11\x46\x65\x61tureViewSource\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x34\n\x06source\x18\x02 \x01(\x0b\x32\x1c.corvic.model.v1alpha.SourceR\x06source\x12\x43\n\x0etable_op_graph\x18\x03 \x01(\x0b\x32\x1d.corvic.orm.v1.TableComputeOpR\x0ctableOpGraph\x12+\n\x11\x64rop_disconnected\x18\x04 \x01(\x08R\x10\x64ropDisconnected\x12\x15\n\x06org_id\x18\x05 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x12\x17\n\x07room_id\x18\x07 \x01(\tR\x06roomIdB\r\n\x0b_created_at\"\x9c\x03\n\x0b\x46\x65\x61tureView\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x17\n\x07room_id\x18\x04 \x01(\tR\x06roomId\x12P\n\x13\x66\x65\x61ture_view_output\x18\x05 \x01(\x0b\x32 .corvic.orm.v1.FeatureViewOutputR\x11\x66\x65\x61tureViewOutput\x12Y\n\x14\x66\x65\x61ture_view_sources\x18\x06 \x03(\x0b\x32\'.corvic.model.v1alpha.FeatureViewSourceR\x12\x66\x65\x61tureViewSources\x12\x1b\n\tspace_ids\x18\x07 \x03(\tR\x08spaceIds\x12\x15\n\x06org_id\x18\x08 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_at\"\xfa\x02\n\x05Space\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x17\n\x07room_id\x18\x04 \x01(\tR\x06roomId\x12I\n\x10space_parameters\x18\x05 \x01(\x0b\x32\x1e.corvic.orm.v1.SpaceParametersR\x0fspaceParameters\x12\x44\n\x0c\x66\x65\x61ture_view\x18\x06 \x01(\x0b\x32!.corvic.model.v1alpha.FeatureViewR\x0b\x66\x65\x61tureView\x12\x1b\n\tauto_sync\x18\t \x01(\x08R\x08\x61utoSync\x12\x15\n\x06org_id\x18\x07 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_at\"\x85\x02\n\x05\x41gent\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x17\n\x07room_id\x18\x03 \x01(\tR\x06roomId\x12I\n\x10\x61gent_parameters\x18\x04 \x01(\x0b\x32\x1e.corvic.orm.v1.AgentParametersR\x0f\x61gentParameters\x12\x15\n\x06org_id\x18\x05 \x01(\tR\x05orgId\x12>\n\ncreated_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x42\r\n\x0b_created_atJ\x04\x08\x06\x10\x07R\x08messages\"\x99\x03\n\x0f\x43ompletionModel\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12 \n\x0b\x64\x65scription\x18\x03 \x01(\tR\x0b\x64\x65scription\x12\x15\n\x06org_id\x18\x04 \x01(\tR\x05orgId\x12H\n\nparameters\x18\x05 \x01(\x0b\x32(.corvic.orm.v1.CompletionModelParametersR\nparameters\x12$\n\x0esecret_api_key\x18\x06 \x01(\tR\x0csecretApiKey\x12>\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\tcreatedAt\x88\x01\x01\x12Q\n\x14last_validation_time\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\x12lastValidationTime\x88\x01\x01\x42\r\n\x0b_created_atB\x17\n\x15_last_validation_timeb\x06proto3')
|
26
26
|
|
27
27
|
_globals = globals()
|
28
28
|
_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
|
@@ -50,5 +50,5 @@ if _descriptor._USE_C_DESCRIPTORS == False:
|
|
50
50
|
_globals['_AGENT']._serialized_start=2825
|
51
51
|
_globals['_AGENT']._serialized_end=3086
|
52
52
|
_globals['_COMPLETIONMODEL']._serialized_start=3089
|
53
|
-
_globals['_COMPLETIONMODEL']._serialized_end=
|
53
|
+
_globals['_COMPLETIONMODEL']._serialized_end=3498
|
54
54
|
# @@protoc_insertion_point(module_scope)
|
@@ -181,7 +181,7 @@ class Agent(_message.Message):
|
|
181
181
|
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., room_id: _Optional[str] = ..., agent_parameters: _Optional[_Union[_agent_pb2.AgentParameters, _Mapping]] = ..., org_id: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|
182
182
|
|
183
183
|
class CompletionModel(_message.Message):
|
184
|
-
__slots__ = ("id", "name", "description", "org_id", "parameters", "secret_api_key", "created_at")
|
184
|
+
__slots__ = ("id", "name", "description", "org_id", "parameters", "secret_api_key", "created_at", "last_validation_time")
|
185
185
|
ID_FIELD_NUMBER: _ClassVar[int]
|
186
186
|
NAME_FIELD_NUMBER: _ClassVar[int]
|
187
187
|
DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
|
@@ -189,6 +189,7 @@ class CompletionModel(_message.Message):
|
|
189
189
|
PARAMETERS_FIELD_NUMBER: _ClassVar[int]
|
190
190
|
SECRET_API_KEY_FIELD_NUMBER: _ClassVar[int]
|
191
191
|
CREATED_AT_FIELD_NUMBER: _ClassVar[int]
|
192
|
+
LAST_VALIDATION_TIME_FIELD_NUMBER: _ClassVar[int]
|
192
193
|
id: str
|
193
194
|
name: str
|
194
195
|
description: str
|
@@ -196,4 +197,5 @@ class CompletionModel(_message.Message):
|
|
196
197
|
parameters: _completion_model_pb2.CompletionModelParameters
|
197
198
|
secret_api_key: str
|
198
199
|
created_at: _timestamp_pb2.Timestamp
|
199
|
-
|
200
|
+
last_validation_time: _timestamp_pb2.Timestamp
|
201
|
+
def __init__(self, id: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., org_id: _Optional[str] = ..., parameters: _Optional[_Union[_completion_model_pb2.CompletionModelParameters, _Mapping]] = ..., secret_api_key: _Optional[str] = ..., created_at: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., last_validation_time: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
|