306 Commits

Author SHA1 Message Date
George Panchuk
326adefcc2 bump version to v1.18.0 2026-05-11 20:59:32 +07:00
George
e9ec2c0d2b new: update models to 1.18, add create_named_vector and delete_named_vector (#1201)
* new: update models to 1.18, add create_named_vector and delete_named_vector

* fix: add missing strict mode config updates

* fix: fix local mode create and delete vector name

* new: update turbo quant fields

* fix: persist vector deletion
2026-05-11 20:53:44 +07:00
Andrey Vasnetsov
07f19f7dee Per-request custom headers for tracing (#1173)
* implement thread-local header overwrite for setting headers for individual requests

* mypy

* fix: remove redundant import in init, remove redundant import in qdrant remote

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2026-05-11 20:53:38 +07:00
George
e191b02f90 fix: fix geo bounding box filters on edges (#1190)
* fix: fix geo bounding box filters on edges

* tests: add test
2026-05-11 20:51:43 +07:00
George
d1d25a2fd3 fix: fix local mode values count (#1191) 2026-05-11 20:51:37 +07:00
George
7a01e54e9a new: run server version check in a thread, don't check bm25 availabil… (#1168)
* 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
2026-03-13 22:08:53 +07:00
George
cb4af4f657 deprecate: completely replace fastembed bm25 with qdrant core bm25 in hosted qdrant (#1166)
* deprecate: completely replace fastembed bm25 with qdrant core bm25

* fix: fix param name in embedder, accept lower case bm25 model name

* tests: enable skipped tests, add bm25 core usage tests

* fix: fix ci, run fastembed tests in integration tests

* fix: fix pip uninstall prompt

* tests: log message when running tests wo fastembed
2026-03-13 22:08:47 +07:00
George Panchuk
e7101dc5ba bump version to v1.17.0 2026-02-19 22:38:17 +07:00
George
e50eb17f49 Update models 1.17 (#1154)
* 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>
2026-02-19 22:33:00 +07:00
Chris Coutinho
52344500a5 fix: apply score_threshold filtering after fusion queries in local mode (#1138)
* 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>
2026-02-19 22:32:50 +07:00
George Panchuk
49fa101696 bump version to 1.16.2 2025-12-12 17:29:22 +07:00
George
1b142af0f1 fix: propagate lookup from correctly in query_points_groups (#1133)
* fix: propagate lookup from correctly in query_points_groups

* tests: add test from lookup_from
2025-12-12 17:21:18 +07:00
George
9e61a69652 Drop python3.9 (#1110)
* 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>
2025-12-12 17:21:08 +07:00
George
67836fc367 tests: speed up tests (#1130)
* 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
2025-12-12 17:17:13 +07:00
George
18ec0adb48 new: expose the remaining cluster methods (#1123)
* new: expose the remaining cluster methods

* fix: fix type hints

* new: add deadline info to the first hw

* fix: fix review comments
2025-11-24 20:12:46 +07:00
George
6773480b36 new: convert cluster operations to grpc (#1116)
* new: convert cluster operations to grpc

* fix: rollback coverage html

* fix: address ai comments

* fix: address review comments
2025-11-24 20:12:26 +07:00
George
93af1b8457 bump version to v1.16.0 (#1111) 2025-11-17 19:56:18 +07:00
George
02b8ce4071 new: expose cluster operations (#1114)
* new: expose cluster operations

* fix: fix cluster collection update return result, add tests

* fix test

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2025-11-14 20:29:41 +01:00
George
0cbb174b56 new: remove vectors_count, update http and grpc models (#1069)
* 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>
2025-11-14 18:06:31 +07:00
George
207e2a70aa fix: fix overriding prefetch limit in local mode (#1081)
* fix: fix overriding prefetch limit in local mode

* fix: replace recursion with a while loop in prefetch
2025-11-14 18:06:19 +07:00
George
b3c4cf7181 new: queryless score 1 (#1088)
* new: queryless score 1

* Reduce hf requests (#1092)

* tests: remove redundant test

* new: improve caching, reduce number of hf requests

* fix: fix possible cache_dir key error
2025-11-14 18:06:12 +07:00
George
9a7a1d2d06 wip: builtin bm25 support (#1060)
* wip: builtin bm25 support

* remove debug print

* new: add builtin embedder, add server version check for inference

* fix: regen async

* fix: fix fastembed import

* fix: regen async

* tests: add tests for builtin inference

* fix: fix fastembed checks, improve exceptions
2025-11-14 18:05:59 +07:00
George Panchuk
981117a506 bump version to v1.15.1 2025-07-31 21:06:24 +03:00
George
2b0160126a tests: extend remote inference tests (#1055) 2025-07-31 21:04:33 +03:00
George
755d78884f fix: fix grpc document, image, inference object without options conversion (#1052) 2025-07-31 21:04:19 +03:00
Luis Cossío
1097540893 better FieldCondition conversion (#1051) 2025-07-31 21:04:15 +03:00
George
e280256382 bump version to v1.15.0 2025-07-18 12:35:46 +03:00
Luis Cossío
58452b31b5 MMR integration and local mode (#1044)
* generate rest client

* gen grpc client

* conversions

* inpection cache

* wip implement mmr

* upd openapi models

* tests: add mmr tests

* wip: implement mmr

* new: use postprocessed scores

* fix maxsim asymmetry and empty sparse intersection

* fix: fix conversions

* fix: fix type hints

* chore: update inspection cache

* fix: revert changes to add points and update named vectors

---------

Co-authored-by: generall <andrey@vasnetsov.com>
Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2025-07-18 12:29:08 +03:00
George
317726757a fix uploading snapshot in ci (#1043)
* debug

* debug

* omg mypy

* fix: remove trap around pytest

* wip

* remove debug code
2025-07-18 11:52:20 +03:00
George
952e559292 new: add b64 encoding function (#1031)
* new: add b64 encoding function

* tests: remove garbage

* refactor base64 function name and params

* manual test for remove iamge inference with base64

* use tempfile

* fix: rename remove_inference->remote_inference

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2025-07-18 11:52:15 +03:00
George
cdc6cc92ef new: update models for v1.15, add conversions (#1038)
* new: update models for v1.15, add conversions

* rename SnowballParameters to SnowballParams

---------

Co-authored-by: Luis Cossío <luis.cossio@outlook.com>
2025-07-18 11:52:10 +03:00
George
2432de8be4 tests: relax test comparison for distance matrix test (#1042) 2025-07-18 11:52:04 +03:00
George
b64d63c822 new: relax test comparison (#1039)
* new: relax test comparison

* rollback: rollback is context search addition

* rollback: return redundant parentheses

* Sparse no overlap distance computation (#1040)

* fix: fix sparse distance computation for recommend, discovery and context queries

* fix: use empty_is_zero

* add zero case to score cmp

* add snapshot saving on failure

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2025-07-18 11:51:58 +03:00
George
c58790df25 fix: fix edge case in upsert, fix multivec update, add tests (#1030)
* fix: fix edge case in upsert, fix multivec update, add tests

* fix: fix tests
2025-07-18 11:51:52 +03:00
Tim Visée
7be5cc568c Change user agent to python-client (#1028) 2025-07-18 11:51:48 +03:00
George Panchuk
ac6f6cd2ce bump version to v1.14.3 2025-06-16 14:01:16 +04:00
George
f4981d6b6c Fix urljoin (#996)
* fix: fix urljoin usage

* fix: do not modify rest_uri, add tests
2025-06-14 00:39:07 +04:00
George
bd3dec59cd new: move fastembed imports and constants into a class to support cus… (#994)
* new: move fastembed imports and constants into a class to support custom models and improve exceptions

* new: add is_supported model to FastEmbedMisc

* fix: fix types
2025-06-14 00:39:00 +04:00
George
7aa97098c4 fix: init_options should not crush with unpickleable objects (#993)
* fix: init_options should not crush with unpickleable objects

* fix: regen async

* fix: do not deepcopy kwargs

* Update tests/test_qdrant_client.py

---------

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2025-06-14 00:38:53 +04:00
George
89283a1c5c fix: fix set payload in batch update points, fix operation conversion… (#977)
* fix: fix set payload in batch update points, fix operation conversions, add tests

* new: add some checks

* add comments to test cases

* fix: return comment

* tests: uncomment test due to a fix in core
2025-06-14 00:38:44 +04:00
George
d90e704da3 tests: catch math domain error, catch abrupted error message in remote (#989) 2025-06-14 00:37:59 +04:00
George
b2af969c15 fix: fix local inference on list of prefetches (#965) 2025-04-24 17:35:07 +03:00
George
eef5e2560e fix: set default limit in query batch points in local mode (#967) 2025-04-24 17:34:59 +03:00
Luis Cossío
e1b793f1b3 dedup order_by by value and id (#959)
* dedup order_by by value and id

* fix: fill order_value when order_by is used

* tests: add tests for duplicated values, fix payload value comparison

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2025-04-24 17:34:54 +03:00
George
5beca2ae63 fix: fix bm25 search on empty collection (#966) 2025-04-24 17:34:47 +03:00
George Panchuk
6cb0a602ee bump version to v1.14.0 2025-04-22 18:25:32 +03:00
George
8f02f3d1fe Rethink offset prefetch (#955)
* fix: fix local mode offset in sample random

* fix: fix random sampling, do not propagate offset into prefetches

* fix: ignore offset in random sampling
2025-04-22 18:24:22 +03:00
George
944dd1cfb8 refactor: refactor test local inference (#952) 2025-04-22 15:43:24 +03:00
George
ef99fa6b04 new: support multimodal embeddings (#908)
* new: support multimodal embeddings

* fix: fix embed when model name is present in both text and image supported models

* fix: fix type checkers

* refactor: split multimodal embed into embed text and embed image

* chore: comment batch separation

* chore: rollback formatting
2025-04-22 15:43:13 +03:00
George
b6e175ddac fix: non-list conditions in filter clauses (#949)
* fix: non-list conditions in filter clauses

* r u happy mypy?
2025-04-22 15:43:08 +03:00