Andrey Vasnetsov
d9393acac6
simplify edge config ( #7933 )
...
* simplify edge config
* Accept default vector config or explicit vector config map when creating `EdgeConfig`
* fixup! Accept default vector config or explicit vector config map when creating `EdgeConfig`
Update examples
* upd tests
* bump edge version to v0.5.0
---------
Co-authored-by: Roman Titov <ffuugoo@users.noreply.github.com >
2026-01-19 18:32:11 +01:00
Roman Titov
9940a4b272
Implement info request for Qdrant Edge ( #7890 )
...
* Implement `edge::Shard::info`
* Add `ReprStr` marker-trait
* Add Python bindings for payload index types
* Implement `PyShard::info`
* fixup! Add Python bindings for payload index types
Add `enable_hnsw` fields
* add __repr__ and exted tests
---------
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com >
2026-01-13 09:30:29 +01:00
Andrey Vasnetsov
a2e31318e0
Add pyo3 signature annotations with default values for all Py* structs ( #7891 )
...
* Add pyo3 signature annotations with default values for all Py* structs
- Added #[pyo3(signature = (...))] attributes to all Py* structs with optional parameters
- Ensured non-default parameters come before parameters with defaults
- Follows the pattern established in PyScrollRequest
- Updated structs: PySearchRequest, PySearchParams, PyQuantizationSearchParams,
PyAcornSearchParams, PyQueryRequest, PyPrefetch, PyOrderBy, PyMmr, PyPoint,
PyFormula, PyShard::load, PySparseVectorDataConfig, PySparseIndexConfig
* fix params ordering
2026-01-12 22:55:17 +01:00
Roman Titov
fb9d36e913
Implement scroll and count requests for Qdrant Edge ( #7880 )
...
* Cleanup `shard` crate module declarations
* Move `ScrollRequestInternal` into `shard` crate
* fixup! Move `ScrollRequestInternal` into `shard` crate
Fix imports
* fixup! Move `ScrollRequestInternal` into `shard` crate
`const fn default_*`
* Implement `edge::Shard::scroll`
* fixup! Implement `edge::Shard::scroll`
Re-export `OrderByInterface`
* Cleanup `edge` module declarations
* Cleanup `qdrant-edge-py` module declarations
* Move `PyWithPayload` and `PyWithVector` into `types::query`
* Add `PyScrollRequest` type
* Implement `PyShard::scroll`
* Move `CountRequestInternal` into `shard` crate
* fixup! Move `CountRequestInternal` into `shard` crate
Fix imports
* fixup! Move `CountRequestInternal` into `shard` crate
Rename `default_exact_count` into `CountRequestInternal::default_exact`
* Implement `edge::Shard::count`
* Implement `PyShard::count`
* review: offset for scroll, default values, examples
* ai review
---------
Co-authored-by: generall <andrey@vasnetsov.com >
2026-01-10 12:20:30 +01:00
Roman Titov
1bf968bd10
Implement __repr__ for Qdrant Edge types ( #7695 )
...
* Refactor `PyUpdateOperation` constructors
* Add default parameters to `PyVectorDataConfig::new`
* Add `Repr` trait and `WriteExt` helper
* Implement `__repr__` for config types
* fixup! Implement `__repr__` for config types
Use `Copy` instead of `Clone`
* fixup! Implement `__repr__` for config types
Add basic test
* Implement `__repr__` for `PyPointId`
* Implement `__repr__` for `PyVector`
* Implement `__repr__` for `PyVectorInternal`
* Implement `__repr__` for `PyPayload`
* Implement `__repr__` for `PyValue`
* Implement `__repr__` for `PyPoint`
* Implement `__repr__` for `PyPointVectors`
* Implement `__repr__` for `PyRecord`
* Move `PyScoredPoint` into a separate file
* Implement `__repr__` for `PyScoredPoint`
* Cleanup examples
* fixup! Implement `__repr__` for `PyScoredPoint`
* Move `PyOrderValue` into separate file
* Add `PyScoredPoint::order_value`
* Implement `pyclass_repr` proc-macro attribute
* Implement `__repr__` for config types using `pyclass_repr` attribute
* Implement `__repr__` for `PySparseVector` using `pyclass_repr` attribute
* Implement `__repr__` for `PyPoint` using `pyclass_repr` attribute
* Implement `__repr__` for `PyPointVectors` using `pyclass_repr` attribute
* Implement `__repr__` for `PyRecord` using `pyclass_repr` attribute
* Implement `__repr__` for `PyScoredPoint` using `pyclass_repr` attribute
* Minor fixes and cleanups
* fixup! Minor fixes and cleanups
* rollback copy for quantization config
* rollback copy for quantization config
---------
Co-authored-by: generall <andrey@vasnetsov.com >
2025-12-16 02:17:37 +01:00
Andrey Vasnetsov
cff49b8f19
Fusion & MMR support in Edge ( #7491 )
...
* introduce rescore stage to handle fusion in shard properly
* make shard-stage and collection-stage rescoring explicit
* review fixes
2025-11-11 00:04:56 +01:00
Roman Titov
5c1adde0c6
Implement PyQuery conversions ( #7481 )
...
* Rename `PyVectorType` into `PyNamedVector` 😠
* Move `PyQuery` into `types::query`
* Implement `PyQuery` conversions
* Use `bytemuck` to safely transmute between `edge-py` wrapper types (#7488 )
2025-11-01 22:37:14 +01:00
Roman Titov
10f3901b39
Improvements to Qdrant Edge Python bindings ( #7473 )
...
* Cleanup `examples/qdrant-edge.py`
* Cleanup `edge_py::types::vector` module
* Cleanup `edge_py::types::filter::condition` module
* Extend `PyWithPayload` type
* Use `from` instead of `into` for conversions
* Assert variants for enum conversions
2025-10-31 10:28:20 +01:00
xzfc
6c4ad118d1
Misc edge dev env fixes ( #7456 )
2025-10-25 10:48:18 +02:00
Andrey Vasnetsov
56a9610e32
edge filter conversions ( #7423 )
...
* initial filter conversion structure
* implement match conditions
* implement range condition
* implement filter condition
* implement geo conditions
* fmt
* finish field conditions
* implement more conditions
* implement nested + expose python exports
* fix spelling
2025-10-20 10:36:12 +02:00
Andrey Vasnetsov
4c95682908
rollback pyvector implementation ( #7422 )
2025-10-19 19:06:13 +02:00
Roman Titov
e7fe24bb1b
More type conversion for Qdrant on Edge Python bindings ( #7372 )
...
* Cleanup `edge::Shard::retrieve`
* Cleanup Python errors
* Cleanup `PointId` conversions
* Rename `ids` into `point_ids` in `PyShard::retrieve`
* WIP: Prototype native conversions for more types
2025-10-10 19:56:05 +02:00
Roman Titov
8141173029
Type conversions into native Python types for Qdrant on Edge ( #7367 )
...
* Cleanup README.md
* Rename `PyResult` into `Result`
* Rename `interface` module into `types` and simplify imports
`wildcard::goes::brrr::*`
* Add `PointId` conversion
* Add `Payload` conversion
* fixup! Add `Payload` conversion
Avoid cloning `Payload` for output conversion
* fixup! Add `PointId` conversion
Fix example
* review fixes #1 : fix uuid parsing, avoid .into, use custom types
* review fixes #2 : rewrite point id to avoid chain if
* review fixes #3 : allow ot use uuid + remove comment
---------
Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com >
2025-10-09 19:19:56 +02:00
Andrey Vasnetsov
96821e0376
edge retrieve api ( #7344 )
...
* refactor: move RecordInternal into Shard crate
* refactor: move retrieve_blocking into Shard crate
* implement retrieve method + move some structures into dedicated files
2025-10-06 19:59:43 +02:00
Roman Titov
4f3855a32c
WIP: Extend Qdrant Edge Python bindings ( #7343 )
2025-10-03 13:14:35 +02:00
Roman Titov
1004b93ae5
Python bindings for Qdrant on Edge ( #7312 )
...
* Qdrant Edge Python binding 🐍 ⛓️ 💥
* fixup! Qdrant Edge Python binding 🐍 ⛓️ 💥
Fix example + cleanup
* review: move QueryEnum + mark search as deprecated
---------
Co-authored-by: generall <andrey@vasnetsov.com >
2025-10-03 12:48:26 +02:00