Commit Graph
639 Commits
Author SHA1 Message Date
As 17c761f08e docs: restore local mode image missing from master (#1406) 2026-09-10 15:22:31 +07:00
George 550484d767 new: add dependabot config (#1314) 2026-08-04 23:37:23 +07:00
George Panchuk 425840be98 bump version to v1.19.0 v1.19.0 2026-08-04 21:20:14 +07:00
George 34dbb37a55 fix: fix nested payload local mode (#1312)
* fix: fix nested payload local mode

* test: update test data in complex filter
2026-08-04 21:17:34 +07:00
George da58e7d492 deprecate: remove max_disk_usage_percent, deprecate max_resident_memory_percent (#1311) 2026-08-04 21:17:11 +07:00
Nazrul Ansari efc46195e1 fix: values_count bounds must be satisfied by a single value in local mode (#1293) 2026-08-04 21:17:06 +07:00
George 589aece6f5 new: 1.19.0 updates (#1298)
* new: 1.19.0 updates

* fix: fix search params as a dict in local mode

* fix: update qdrant backward compatibility version

* fix: add version check to the test

* fix: add version check to the test
2026-08-04 21:16:58 +07:00
George 24bd6bf314 fix: add limit > 0 rules in local mode (#1281) 2026-08-04 21:16:09 +07:00
Madan kumarandGeorge Panchuk 715b48b720 Preserve proto3 field presence for falsy values in REST/gRPC conversion (#1260)
Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2026-08-04 21:16:04 +07:00
ErenAta16 5a0e0d00fb fix: do not drop falsy shard keys in convert_points_update_operation (#1279) 2026-08-04 21:15:39 +07:00
George 2257c55b99 fix: fix embed paths (#1278)
* fix: fix embed paths

* tests: add local inference test for complex prefetch
2026-08-04 21:15:23 +07:00
Madhan Kumar ReddyandGeorge Panchuk f28634c053 Warn that search_params is ignored in local mode instead of silently dropping it (#1083) (#1247)
Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2026-08-04 21:15:15 +07:00
Madan kumarandGeorge Panchuk 53c81ee2c8 Fix local mode filters cross-matching booleans and integers (#1259)
* Fix local mode filters cross-matching booleans and integers

Python treats bool as a subclass of int (True == 1, False == 0), but Qdrant
keeps booleans and integers as distinct payload value types. Local mode
compared them with a plain `==` / `in` / `isinstance(value, (int, float))`, so:

- MatchValue(value=1) matched a payload of True, and MatchValue(value=True)
  matched a payload of 1 (same for 0 / False)
- MatchAny / MatchExcept cross-matched the same way
- Range matched booleans as if they were 0 / 1

The server never cross-matches these (its ValueVariants keeps Integer and Bool
distinct, and booleans are not numeric for range conditions). Add a type-aware
equality helper used by the value-match conditions, and exclude booleans from
range checks. Adds an in-memory regression test.

* Cover MatchExcept in the bool/int cross-match test

MatchExcept also routes through values_match, so assert that except=[1]
keeps the True payload (bool is not the integer 1).

* Add isolated MatchAny and range asserts to the bool/int cross-match test

Lock the single-value MatchAny path and the check_range bool guard against
regressions, in addition to the existing combined-condition coverage.

* fix: handle floats in cross-match local mode filters, add congruence tests

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2026-08-04 21:15:10 +07:00
GeorgeandHassan Zafar 800017d527 fix: do not include local test files into the distribution (#1277)
Co-authored-by: Hassan Zafar <hassanzafar619@gmail.com>
2026-08-04 21:15:05 +07:00
GeorgeandEren Ata 6f0d9bec8c fix: fix local mode set payload shared nested object #1271 (#1276)
Co-authored-by: Eren Ata <erena6466@gmail.com>
2026-08-04 21:14:59 +07:00
George 152b6cec84 Fix env installation (#1255)
* 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

* new: update local mode values count filter behaviour
2026-08-04 21:14:51 +07:00
Charles DuffyandGeorge Panchuk 64c766a963 fix: spurious async client tests failures (#1181)
* 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>
2026-08-04 21:14:44 +07:00
George 62bd70f23a fix: fix persistence test in test query (#1245) 2026-08-04 21:14:38 +07:00
George b4ef6a4ff4 fix: fix update vectors in local mode (#1244) 2026-08-04 21:14:32 +07:00
George 397df8b596 fix: fix persistence in local mode multivector tests (#1243) 2026-08-04 21:14:25 +07:00
Alok TripathiandGeorge Panchuk 7bd755bf32 fix: check_match() raises TypeError when MatchText applied to non-string field (#1224)
* 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>
2026-08-04 21:14:07 +07:00
George 8409ae34b5 fix: update poetry lock (#1242)
* 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
2026-08-04 21:13:59 +07:00
Esteban Yusunguaira 2e03ad3f58 ci: update all actions to node 24 (#1216) 2026-08-04 21:10:34 +07:00
George b09b2131ae new: remove add and query methods (#1210)
* new: deprecate add and query methods

* fix: update async client generator
2026-08-04 21:10:18 +07:00
Esteban Yusunguaira f569ead5a7 ci: update github actions to node 24 (#1212) 2026-08-04 21:10:04 +07:00
George 37d59107ef new: check the package is importable before publish (#1207) 2026-08-04 21:09:49 +07:00
Mohamed Arbi 0559a7c274 docs: Add docstring for ParallelWorkerPool class (#1199) 2026-08-04 21:09:42 +07:00
Mohamed Arbi fd8de6a46a fix: use HasVectorCondition in local search_distance_matrix (#1197) 2026-08-04 21:09:37 +07:00
Solaris-star 200d865d0d docs: correct default gRPC timeout description (#1282)
The client docstrings claimed gRPC timeout was unlimited, but
QdrantRemote.DEFAULT_GRPC_TIMEOUT is 5 seconds and is applied when
timeout=None. Align docs with implementation.

Fixes #1023
2026-07-24 12:59:47 +07:00
George Panchuk 326adefcc2 bump version to v1.18.0 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 VasnetsovandGeorge Panchuk 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 beb9ae5b90 new: remove python docs in favour of qdrant.tech (#1174)
* new: remove python docs in favour of qdrant.tech

* fix: docs redirect

* fix: fix netlify

* fix: fix netlify
2026-05-11 20:53:29 +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
estebany-qdandGeorge Panchuk 504ba7b74e ci: Pin all gh actions to commit SHAs (#1179)
* 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>
2026-05-11 20:51:30 +07:00
George f994dcf6e7 new: bump fastembed to 0.8.0 (#1176) 2026-05-11 20:49:29 +07:00
George Panchuk cd5eb259dd bump version to v1.17.1 v1.17.1 2026-03-13 22:09:58 +07:00
AnushandGeorge Panchuk 1699d30899 feat: Add support for custom headers (#1162)
* 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>
2026-03-13 22:09:05 +07:00
GeorgeandJiangNan a410b9d602 fix: do not modify payload filters in local mode in-place (#1169)
Co-authored-by: JiangNan <1394485448@qq.com>
2026-03-13 22:08:59 +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 27633971df fix: fix type hint union with grpc enum with old protobuf (#1157)
* fix: fix type hint union with grpc enum with old protobuf

* fix: add type ignore
2026-03-13 22:08:39 +07:00
George Panchuk e7101dc5ba bump version to v1.17.0 v1.17.0 2026-02-19 22:38:17 +07:00
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 CoutinhoandGeorge Panchuk 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 v1.16.2 2025-12-12 17:29:22 +07:00
5bd87e4918 Fix/lazy load local mode (#1134)
* 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>
2025-12-12 17:21:24 +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
Georgeandgenerall 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