* fix: spurious async client tests failures
* skip cluster-only test when server is standalone
* increase timeout for unit test performing multiple snapshot operations
* clean up stale snapshots left by previous runs
* fix: remove deleted methods, add/update cluster checks
* fix: remove unused import
* fix: remove redundant indent
---------
Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
* fix: check_match() raises TypeError when MatchText applied to non-string field
* tests: move non-string match test to test_nested_filter, cover MatchText and MatchTextAny
---------
Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
* fix: update poetry lock
* fix: add type annotations, update poetry.lock
* fix: fix local persistence tests
* fix: replace del client with client.close in local mode persistence tests
* ci: Pin all gh actions to commit SHAs
* new: update checkout to v2 in type check ci
---------
Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
* feat: Add support for custom headers
Signed-off-by: Anush008 <mail@anush.sh>
* add warnings when user provides user-agent or api-key in headers or options
* fix: fix is none condition
---------
Signed-off-by: Anush008 <mail@anush.sh>
Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
* new: run server version check in a thread, don't check bm25 availability as it was introduced in 1.15.3
* fix: fix tests for auth
* fix: fix test for auth again
* fix: update stacklevel for in-thread warnings
* fix: fix auth token test for sync client
* tests: remove outdated tests
* new: update models, add conversions, add conversion tests
* new: add list shard keys, add get_optimizations
* new: add weights to rrf
* new: add cluster telemetry
* new: add update_mode usage
* fix: fix mypy
* fix: populate inspection cache
* use RRF ranking as in the core
* timeouts propagation
* gen async clients
* implement score threshold for formular
* new: add tests for update mode
* fix: fix test skip comment
* Relevance feedback local mode (#1152)
* AI: implement local computation
prompt: Considering the implementation in the server, make the local
python implementation of the same scores calculation in this file:
[@distances.py](...), consider that the local mode calculates for all
points at once, while the server does it point by point.
Server impl:
```
...
```
* use constant for MARGIN
* relevance feedback integration and test
* do not exclude relevance context from result
* Revert "do not exclude relevance context from result"
This reverts commit 9c2a5cedc0.
---------
Co-authored-by: generall <andrey@vasnetsov.com>
* fix: fix conversion test
---------
Co-authored-by: generall <andrey@vasnetsov.com>
Co-authored-by: Luis Cossío <luis.cossio@qdrant.com>
* fix: apply score_threshold filtering after fusion queries in local mode
The local/memory client was not applying score_threshold filtering after
RRF and DBSF fusion operations. This caused query_points with prefetch
and fusion queries to return results below the specified score_threshold.
This fix adds score_threshold filtering after fusion results are computed,
matching the behavior of the remote Qdrant server.
* tests: simplify score threshold tests, add formula threshold test
---------
Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
* Fix: Lazy load QdrantLocal to support read-only envs
* Fix: Lazy load QdrantLocal to support read-only envs
* Fix: Regenerate async client using Python 3.10 to match CI
* chore: add comments to portalocker import
---------
Co-authored-by: Kirstin <kirstin.taufertshoefer@qdrant.com>
Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
* new: remove vectors_count, update http and grpc models
* fix: update inspection cache
* new: add conversions and update interface
* fix: fix some conversions
* fix: fix typo
* fix: fix isinstance
* fix: regen async
* fix: fix update_filter usage, fix isinstance
* tests: collection metadata test
* fix: address backward compatibility in test
* new: update models, add max payload index count and copy vectors
* fix; update _inspection_cache
* new: add read consistency to count points
* Allow uuids in interface (#1085)
* new: direct uuid support
* tests: add uuid tests
* fix: update inspection cache
* new: add collection metadata and tests to local mode (#1089)
* new: add collection metadata and tests to local mode
* fix: regen async client
* new: implement parametrized rrf in local mode (#1087)
* new: implement parametrized rrf in local mode
* refactoring: use a variable for a magic value
* fix: adjust conversion according to AI
* Update filter (#1090)
* new: add missing update_filter, implement it in local mode
* fix: fix type hint, fix update operation, fix rest uploader, add tests
* fix: fix update filter is None case
* fix: mypy was not a good boy
* Text any filter (#1091)
* new: add match text any local mode
* tests: add match text any tests
* new: update models, remove init_from and locks (#1100)
* new: update models, remove init_from and locks
* deprecate: remove init from tests
* deprecate: remove lock tests
* new: convert ascii_folding
* fix: fix type stub
* new: convert acorn
* new: convert shard key with fallback
* new: update grpcio and grpcio tools in generator (#1106)
* new: update grpcio and grpcio tools in generator
* fix: bind grpcio and tools versions to 1.62.0 in generator
* Remove deprecated methods (#1103)
* deprecate: remove old api methods
* deprecate: remove type stub for removed methods
* deprecate: remove old api methods from test_qdrant_client
* deprecate: replace search with query points in test_in_memory
* deprecate: replace search methods in fastembed mixin with query points
* deprecate: replace old api methods in test async qdrant client
* deprecate: replace search with query points in test delete points
* deprecate: replace discover and context with query points in test_discovery
* deprecate: replace recommend_groups with query_points_groups in test_group_recommend
* deprecate: replace search_groups in test_group_search
* deprecate: replace recommend with query points in test_recommendation
* deprecate: replace search with query points in test search
* deprecate: replace context and discover with query points in test sparse discovery
* deprecate: replace search with query points in test sparse idf search
* deprecate: replace recommend with query points in test sparse recommend
* deprecate: replace search with query points in test sparse search
* deprecate: replace missing search request with query request in qdrant_fastembed
* deprecate: replace search with query points in test multivector search queries
* deprecate: replace upload records with upload points in test_updates
* deprecate: remove redundant structs (#1104)
* deprecate: remove redundant structs
* fix: do not use removed conversions in local mode
* fix: remove redundant conversions, simplify types.QueryRequest
* deprecate: replace old style grpc vector conversion to a new one (#1105)
* deprecate: replace old style grpc vector conversion to a new one
* fix: ignore union attr in conversion
* review fixes
---------
Co-authored-by: generall <andrey@vasnetsov.com>
---------
Co-authored-by: generall <andrey@vasnetsov.com>
---------
Co-authored-by: generall <andrey@vasnetsov.com>
* new: deprecate add, query, query_batch in fastembed mixin (#1102)
* new: deprecate add, query, query_batch in fastembed mixin
* 1.16 -> 1.17
---------
Co-authored-by: generall <andrey@vasnetsov.com>
---------
Co-authored-by: generall <andrey@vasnetsov.com>
* new: yet another update
* new: add initial_state to create shard key (#1109)
* new: drop python3.9, replace union and optional with | where possible
* fix: fix missing type hints, regen async
* fix: remove redundant optional
* fix: fix ai comments
* fix: update type hints from merge
* new: update pyproject and lock
* new: replace optional and union with |
* new: remove optional and union from qdrant local
* new: replace union with | in client classes
* fix: replace remaining union, optional, etc, address review comments
* new: adjust numpy versioning
---------
Co-authored-by: generall <andrey@vasnetsov.com>
* fix: do not try to check compatibility in test_client_init
* tests: remove sparse-code vectors (10_000 dim), remove euclid recommend methods as non-applicable for sparse
* tests: add payload indexes to query group test
* debug: add durations=0 to pytest
* debug: test only test query group
* debug: try adding payload indexes to query group test
* rollback test launch
* new: remove vectors_count, update http and grpc models
* fix: update inspection cache
* new: add conversions and update interface
* fix: fix some conversions
* fix: fix typo
* fix: fix isinstance
* fix: regen async
* fix: fix update_filter usage, fix isinstance
* tests: collection metadata test
* fix: address backward compatibility in test
* new: update models, add max payload index count and copy vectors
* fix; update _inspection_cache
* new: add read consistency to count points
* Allow uuids in interface (#1085)
* new: direct uuid support
* tests: add uuid tests
* fix: update inspection cache
* new: add collection metadata and tests to local mode (#1089)
* new: add collection metadata and tests to local mode
* fix: regen async client
* new: implement parametrized rrf in local mode (#1087)
* new: implement parametrized rrf in local mode
* refactoring: use a variable for a magic value
* fix: adjust conversion according to AI
* Update filter (#1090)
* new: add missing update_filter, implement it in local mode
* fix: fix type hint, fix update operation, fix rest uploader, add tests
* fix: fix update filter is None case
* fix: mypy was not a good boy
* Text any filter (#1091)
* new: add match text any local mode
* tests: add match text any tests
* new: update models, remove init_from and locks (#1100)
* new: update models, remove init_from and locks
* deprecate: remove init from tests
* deprecate: remove lock tests
* new: convert ascii_folding
* fix: fix type stub
* new: convert acorn
* new: convert shard key with fallback
* new: update grpcio and grpcio tools in generator (#1106)
* new: update grpcio and grpcio tools in generator
* fix: bind grpcio and tools versions to 1.62.0 in generator
* Remove deprecated methods (#1103)
* deprecate: remove old api methods
* deprecate: remove type stub for removed methods
* deprecate: remove old api methods from test_qdrant_client
* deprecate: replace search with query points in test_in_memory
* deprecate: replace search methods in fastembed mixin with query points
* deprecate: replace old api methods in test async qdrant client
* deprecate: replace search with query points in test delete points
* deprecate: replace discover and context with query points in test_discovery
* deprecate: replace recommend_groups with query_points_groups in test_group_recommend
* deprecate: replace search_groups in test_group_search
* deprecate: replace recommend with query points in test_recommendation
* deprecate: replace search with query points in test search
* deprecate: replace context and discover with query points in test sparse discovery
* deprecate: replace search with query points in test sparse idf search
* deprecate: replace recommend with query points in test sparse recommend
* deprecate: replace search with query points in test sparse search
* deprecate: replace missing search request with query request in qdrant_fastembed
* deprecate: replace search with query points in test multivector search queries
* deprecate: replace upload records with upload points in test_updates
* deprecate: remove redundant structs (#1104)
* deprecate: remove redundant structs
* fix: do not use removed conversions in local mode
* fix: remove redundant conversions, simplify types.QueryRequest
* deprecate: replace old style grpc vector conversion to a new one (#1105)
* deprecate: replace old style grpc vector conversion to a new one
* fix: ignore union attr in conversion
* review fixes
---------
Co-authored-by: generall <andrey@vasnetsov.com>
---------
Co-authored-by: generall <andrey@vasnetsov.com>
---------
Co-authored-by: generall <andrey@vasnetsov.com>
* new: deprecate add, query, query_batch in fastembed mixin (#1102)
* new: deprecate add, query, query_batch in fastembed mixin
* 1.16 -> 1.17
---------
Co-authored-by: generall <andrey@vasnetsov.com>
---------
Co-authored-by: generall <andrey@vasnetsov.com>
* new: yet another update
* new: add initial_state to create shard key (#1109)
* chore: remove obsolete imports
* fix: add metadata parameter to recreate collection in local
* fix: fix metadata handling in local more
---------
Co-authored-by: generall <andrey@vasnetsov.com>
* Implement passing certificates cres to grpc channels
* Refactor and fix AI reviewer suggestions
* Refactor and fix AI reviewer suggestions
* minor fix
* refactor: refactor options parsing a bit
* fix: fix options is None
* fix: fix warning id
---------
Co-authored-by: Дащинский Иван Андреевич <iadashchinskiy@sbertech.ru@WL-3e6f71e6.sbertech.local>
Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
* Connection pooling in GRPC
* Undo auto formattings
* Make next_grpc_client() protected
* Prevent partial initialization of grpc clients on channel creation error
* also apply pool_size to rest client
* Fix using non clamped pool_size in httpx
* Review remarks
* fix: fix minor things (#1075)
---------
Co-authored-by: George <george.panchuk@qdrant.tech>