Commit Graph
69 Commits
Author SHA1 Message Date
qdrant-cloud-bot 75bdd8edcc feat(serverless): sync collections API pagination and text options
Align with the latest public-api collections.proto: paginated
ListCollections (limit/offset_token/next_offset_token) plus keyword
prefix and text analysis fields (stopwords, stemmer, ascii_folding).
2026-09-15 07:35:03 +02:00
generallandClaude Fable 5 e6da4c4e59 new: generate AsyncQdrantServerless from the sync serverless client
Same approach as the regular client: the sync client is the source of
truth and tools/async_client_generator produces the async version.
The serverless generator delegates to AsyncQdrantRemote, awaits the
CollectionsService stub RPCs (awaitable on the aio channel the async
remote already builds), and drops the sync context manager. The file is
covered by the async-client-consistency-check like the other generated
clients.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R25zh9xS78xMHgPcoFaUdw
2026-09-15 07:35:03 +02:00
generallandClaude Fable 5 ccf38827a5 new: add QdrantServerless client prototype
Serverless exposes the same point-level API as a regular cluster (minus
read consistency, shard selection, write ordering and filtered updates),
but a simplified tenant-facing collection management API.

- qdrant_client/serverless: dedicated module, nothing added to the
  top-level package
- gRPC stubs generated from qdrant-cloud-public-api's
  serverless/collections.proto (renamed to serverless_collections.proto
  to avoid a descriptor-pool filename clash with the regular client's
  collections.proto), kept internal
- hand-written pydantic models for the serverless collection config,
  reusing the existing Distance/TokenizerType enums
- point operations delegate to an internal QdrantRemote(prefer_grpc=True)
  with trimmed signatures; collection operations talk to the serverless
  CollectionsService on the same channel

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R25zh9xS78xMHgPcoFaUdw
2026-09-15 07:35:03 +02:00
George 272d7a9e47 deprecate: remove max_disk_usage_percent, deprecate max_resident_memory_percent (#1311) 2026-08-04 17:38:02 +07:00
George 790328b1aa new: remove add and query methods (#1210)
* new: deprecate add and query methods

* fix: update async client generator
2026-05-20 22:48:47 +07:00
George d72554e640 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-09 01:09:54 +07:00
Andrey VasnetsovandGeorge Panchuk ddfdcf4cf0 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-08 00:37:59 +07:00
George 7974c06de6 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-06 18:38:36 +07:00
63f69540a6 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:32:01 +07:00
Georgeandgenerall a8beff7c96 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-05 16:32:24 +07:00
Georgeandgenerall 27acfd0d75 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 17:01:17 +07:00
JojiiandGeorge b9fb4923fa Connection pooling (#1071)
* 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>
2025-09-19 14:38:36 +02:00
Luis CossíoandGeorge Panchuk 85b86f7db8 [gen grpc] Include pyi grpc files (#917)
* generate grpc client with pyi files

* poetry lock

* new: do not include pyi files into the package

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2025-04-07 13:03:03 +03:00
GeorgeandLuis Cossío 5a454a7402 Recommend sum score (#940)
* new: add sum_scores strategy, fix lookup from in query_batch_points, fix euclid between multivectors local mode

* new: recommend average multivectors, fix tests, add new tests for multivectors

* fix: address review comments

* fix: regen async

* tests: uncomment tests

* new: update poetry lock, require pydantic >=2.11 for populate inspection cache

* fix: tmp disable euclidean multivec search tests, fix multivec with nan test

* fix: align euclid and manhattan with core, add tests

* fix: fix type hints

* tests: use atol in comparison

* tests: remove manhattan tests

* tests: reduce number of multivectors

* remove float comparison relaxation

* explain why it is different for euclid and manhattan

---------

Co-authored-by: Luis Cossío <luis.cossio@outlook.com>
2025-04-07 11:45:33 +03:00
74c32f006e Rest & grpc client generation fix (#938)
* rest client in separate env generation

* rest client in separate env generation

* GRPC generation
Two options for it to work:
Manually switch to python 3.10 using poetry env use python3.10 or just have python3.10 available in PATH explicitly

* Rebuild to venv management

* Create new env using venv & install & clean up

* nit: some generators improvements (#941)

* nit: some generators improvements

* fix: check which python is available in generators

* fix: address AI comments

* fix: address ai comments

---------

Co-authored-by: d.rudenko <dimitriyrudenk@gmail.com>
Co-authored-by: George <george.panchuk@qdrant.tech>
2025-04-03 13:46:53 +03:00
Luis CossíoandGeorge Panchuk 983fce8a1b [score boosting] support decay functions (#929)
* update grpc client

* generate rest client

* add decay expressions evaluation and fixtures

* add conversions

* validate in formula and fix test

* add fixtures

* new: update inspection cache

* Review remarks

* review nit

* fix rebase

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2025-03-24 15:38:22 -03:00
tellet-qandGeorge Panchuk 635457b47c new: Support for too many requests (#914)
* Update grpc client

* Update rest client and add new exception

* Ensure uploaders continue after wait

* Update

* Address coderabitai review

* Fix tests

* Re-generate clients

* Address review

* Revert attempt handling

* Add new exception

* Add tests

* Do not throw ResourceQuotaExceeded

* Add support for async grpc

* Remove iscoroutine check and more

* update models

* Address some coderabbitai comments

* Address review

* Fix test

* Fix backwards compatibility tests

* Address review

* Get rid of redundant code

* Address ai review

* refactoring: refactor tests

* refactoring: do not inherit resource exhausted from aiorpcerror

* fix: remove redundant import

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2025-03-24 18:05:15 +03:00
George 499d12ad9f fix: model fields set and model config access (#918) 2025-03-16 22:08:44 +03:00
George 6d8509afee optimize schema parser recursion calls, update models (#924)
* fix: optimize schema parser recursive calls

* fix: fix mypy

* new: update models, regenerate cache (#925)

* new: update models, regenerate cache

* new: update conversions

* fix: fix strict mode config in migrate

* new: update field condition conversion with is_null, is_empty

* fix: apply ruff
2025-03-16 19:59:55 +03:00
Arnaud Gourlayandgenerall 321d2a8073 Regen REST and gRPC clients (#903)
* Regen REST and gRPC clients

* update inspection cache

* update dev doc

* add conversions for new strict mode fields

* handle empty strict mode fields + test

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2025-02-17 18:32:17 +01:00
GeorgeandAndrey Vasnetsov b4ae703d1b Local inference upload collection and upload records (#862)
* wip: add draft implementation of batch processing

* fix: embed dict and list of docs, remove redundant code

* new: regen async, small refactor

* refactor: add docstrings, rename methods

* Upload points local inference (#881)

* new: separate single and plural model embeddings

* fix: fix lazy embed models

* new: add inference object inspections to upload methods

* wip: local inference upload parallel

* new: add local inference to upload points and upload collection, refactor mixin

* fix: remove redundant code

* redundant import

* tests: check is query for query points batch

* refactor: refactor semi ordered map

* tests: add test for local inference with batches with docs and vectors

* tests: check the order of dict processing

* new: distinguish models by options

* fix: fix typing

* fix: fix types

* new: embed batches with different options

* tests: add tests for batch with different options

* fix: ignore ide incorrect type inspection

* tests: wait for points to be inserted

* fix: set threads to 1 in parallel inference

* new: adjust max internal batch size

* fix: fix type hints

* function to get embeddings size (#892)

* function to get embeddings size

* async client

* keep sync

* new: extend embedding size to support image and late interaction models

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>

* new: add local inference batch size (#894)

---------

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2025-01-29 15:53:24 +01:00
Hossam HagagandGeorge 47ff758c56 refactor: Refactored the way of warnings (#864)
* refactor: Refactored the way of warnings

* remove unused imports

* fix: Fix stacklevel in warnings

* regenerated async

* nit

* Updated some warnings with show once

* fix: Fix stack levels

* Updated async

* Update qdrant_client/qdrant_remote.py

Co-authored-by: George <george.panchuk@qdrant.tech>

* Update async client

* Updated warnings

* Updated warnings

* Updated warnings

* fix: fix warning level

* fix: fix warning level in async

* fix: revert append payload condition

---------

Co-authored-by: George <george.panchuk@qdrant.tech>
2025-01-06 16:44:06 +01:00
Dmitrii Ognandd.rudenko 3fbdf04f9e Removed async_grpc (#866)
* Removed async_grpc

* Removal of asyncio

* Return needed test

* Proper fix of renaming

---------

Co-authored-by: d.rudenko <dimitriyrudenk@gmail.com>
2024-12-27 14:46:18 +01:00
George baa3e264c8 Drop python 3.8 (#848)
* new: drop python 3.8 support, update type hints

* fix: remove 3.8 from ci

* fix: update type hints

* fix: make netlify use python3.10

* fix: try python3.9 for sphinx

* debug: try updating sphinx

* new: bump ffastembed to 0.4.2

* fix: install numpy<2 for mypy

* fix: install numpy via poetry
2024-11-15 15:54:32 +01:00
Kartik GuptaandAnush008 06041473f0 Tag remap (#801)
* remap tag with api.qdrant.tech

* re re-gen

* fix: Updated accessors

* regen with py 3.10.15

---------

Co-authored-by: Anush008 <anushshetty90@gmail.com>
2024-10-29 15:48:52 +01:00
George c152e3c7bf Agnostic local inference (#799)
* new: update previous qdrant version

* new: rollback rest client as types moved to the core

* new: add model_fields_set pydantic compat

* new: add Document to models

* new: add local inference inspectors

* new: add inference functionality to qdrant client

* fix: fix type hints

* fix: fix type hints

* fix: fix type hints

* new: remove _cloud_inference arg from methods

* refactor

* tests: update tests, add path check

* fix: fix type hint

* fix: fix type hint

* fix: resolve plain query

* fix: remove redundant checks

* fix: fix resolve query doc

* tests: add test case for several docs in prefetch

* fix: fix tests

* new: forbid cloud inference with local mode

* fix: fix is_query assignment, fix embed dict

* tests: fix sparse vector values comparison

* fix: regen async

* fix: embed batch

* tests: extend local inference tests

* tests: add update operations and update vectors tests

* tests: remove redundant tests, add plain query points test

* fix: fix type hint

* fix: add missing import

* fix: yet another type hint fix

* tests: add query points groups and query batch points tests

* fix: do not try to embed a vector, comment missed disabled test stmt

* new: add late interaction embeddings without add and query methods

* fix: fix LITE import

* fix: fix problem with retrieving not available path, enable tests

* fix: fix exception message

* refactor: update type hint

* fix: update type hints

* chore: add docstrings to embed methods

* refactor: simplify inspector init

* fix: fix type hint

* new: reuse parser, fix type import

* refactor: rename parser, add docstrings

* fix: fix type hint

* fix: fix type hint

* fix: fix type hint

* refactor: smol refactor, docstrings

* fix: fix inspect embed

* deprecation warning for grpc.PointStruct

* new: populate inspections cache (#823)

* new: populate inspections cache

* fix: fix type hints

* fix: regen async

* fix: fix type hint

* fix: fix typo in filename

* fix: fix points check

* fix: fix type hint
2024-10-29 15:48:23 +01:00
George 649cbcfdb8 fix: fix poetry installation in netlify (#819) 2024-10-25 15:07:32 +02:00
George 8abfd0e6cd fix: fix docstrings to make sphinx happy (#814)
* fix: fix docstrings to make sphinx happy

* debug: downgrade poetry version

* fix: update virtualenv

* debug: remove debug line
2024-10-18 10:55:50 +04:00
George c6adbc7853 fix: fix async grpc info (#800) 2024-10-07 08:41:27 +02:00
a6e2324884 chore: Update clients (#758)
* update rest client

* update grpc client with grpcio 1.65.4

* update grpc client with grpcio==1.49.1

* generate grpc client with grpcio==1.48.2

* generate grpc client with grpcio==1.66.1 and mypy-protobuf extension

* add mypy-protobuf to pyproject

* relax version for grpcio, but keep grpcio-tools at 1.48.2

* improve generation script

* fix bash script comment

Co-authored-by: George <george.panchuk@qdrant.tech>

* use old grpcio to generate client

* rollbakc mypy-protobuf

* regenerate with distance matrix

* new: update clients (#774)

* new: update clients

* rollback grpcio version

* feature: Facets (#759)

* facet in local_collection.py

* replace usages of calculate_payload_mask

* - qdrant remote
- qdrant base
- qdrant client
- conversions

* congruence tests + local mode fixes

* generate async client

* add type stubs and misc fixes

* fix mypy in Python 3.8

* generate async client

* review remarks

* gen async client

* update for bool facets

* Feature: Distance Matrix API (#769)

* add remote impls

* add client impl

* regen async client

* start local

* regen async

* local mode

* start congruence

* Fix local mode

* regen async of course

* test filtering

* fix min samples count

* simplify comparaison loop

* simplify samples loop

* add rest/gRPC conversion tests

* fix conversions + tests

---------

Co-authored-by: George <george.panchuk@qdrant.tech>
Co-authored-by: generall <andrey@vasnetsov.com>
Co-authored-by: Arnaud Gourlay <arnaud.gourlay@gmail.com>
2024-10-05 23:03:13 +02:00
Hossam Hagag 5d93e5e57a fix: handle type_params for Python 3.12+ (#739)
* fix: handle type_params for Python 3.12+
Refs: #725

* refactor: use kwargs in visit_FunctionDef while handling type_params for Python 3.12+

- Refactored visit_FunctionDef to utilize **kwargs for argument handling.

* refactor: pass positional arguments for AsyncFunctionDef with conditional type_params handling

- Refactored visit_FunctionDef to pass parameters as positional arguments to AsyncFunctionDef.
2024-08-15 15:27:38 +02:00
George 04845eeba0 new: remove default hybrid search for query_points with fastembed (#735)
* new: remove default hybrid search for query_points with fastembed

* tmp: disable query extension for vector input, etc
2024-08-12 16:14:32 +02:00
Hossam HagagandGeorge Panchuk f1da81dfe6 Change upload points async (#730)
* made upload_points sync

* updated base_client_generator

* fix: remove excess file

* refactoring: fix timeout type, remove redundant import

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2024-08-09 21:19:45 +02:00
George 59a1569438 new: add info endpoint (#678)
* new: add info endpoint

* fix: fix async generator

* fix: remove crutch, update openapi

* fix: regen async

* fix: regen client with recommend strategy fix
2024-08-08 16:56:21 +02:00
George fb8dfecbb0 new: extend query interface with documents (#707)
* new: extend query interface with documents

* new: add named additional types

* fix: add missing changes to generator

* new: modify openapi instead of models py

* fix: avoid wildcard interpretation by shell

* new: replace structure extension method

* fix: update embed models and type aliases

* fix: add accidentally removed file

* fix: r u happy mypy?

* fix: fix branch name in generator
2024-08-08 16:55:29 +02:00
Luis CossíoandGeorge Panchuk a5023f6cf7 Bump to v1.10.2-dev (#657)
* fix typo, bump version

* new: update version

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2024-07-10 20:06:22 +03:00
6ff600c94b rollback fast-embed query method (#658)
* rollback fastembed query method

* un-deprecate query

* fix: regen async, roll back generator tmp workaround

* fix: don't skip fastembed tests

* new: add query batch points interface, fix minor bugs (#660)

* new: add query batch points interface, fix minor bugs

* fix: do not exclude ids from lookup collection from search (#661)

* Update qdrant_client/qdrant_client.py

Co-authored-by: Luis Cossío <luis.cossio@outlook.com>

---------

Co-authored-by: Luis Cossío <luis.cossio@outlook.com>

* fix: regen async

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
Co-authored-by: Luis Cossío <luis.cossio@outlook.com>
2024-06-26 17:13:40 +03:00
Georgeandgenerall 00da88e947 new: add query interface draft (#655)
* new: add query interface draft

* fix: temporarily update fastembed generator

* review fixes

* generate async client

* generate async client

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2024-06-25 09:21:28 +02:00
Andrey Vasnetsov 8556cc86d6 Drop black (#623)
* replace black with ruff

* use line length

* remove isort

* regen async

* regen async

* fix ruff version [no-ci]
2024-05-07 20:47:27 +02:00
Andrey VasnetsovandGeorge Panchuk 720746321f V1.9.x (#608)
* update models

* up backward compatibility version

* refactoring: address review comment

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2024-04-22 14:28:02 +02:00
George 9ef5c0afc4 fix: fix set_parse_model property in async (#583)
* fix: fix set_parse_model property in async

* fix: fix remaining async methods
2024-04-10 18:48:19 +02:00
Yasyf MohamedaliandGeorge Panchuk 07404f2e8b Remove async from sparse_embedding_model_name property (#581)
* Remove async from sparse_embedding_model_name property

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2024-04-05 19:19:35 +02:00
fc4b3cf9e2 Upgrade FastEmbed Version (#493)
* Update fastembed to v0.2.1

* chore(qdrant_fastembed.py): update DEFAULT_EMBEDDING_MODEL

* fix(fastembed integration): upgrade to latest version

* Prefer black over ruff

* Prefer black over ruff

* Remove hardcoded directory structure from Qdrant Client checks

* new: deprecate current default model, deprecate max token length, update fastembed

* fix: make embedding_model_name method sync

* fix: update poetry lock

* refactor: use list_supported_models() (#501)

* fix: fix fastembed check

* fix: fix fastembed class var assignment

* fix: remove fastembed deprecation from qdrant client (#524)

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
Co-authored-by: Anush <anushshetty90@gmail.com>
2024-03-05 21:09:31 +01:00
ArmaghanandGeorge Panchuk 3ad05b3671 feat: Expose Setting for GRPC Channel-Level Compression at Client Side (#480)
* expose grpc channel-level compression settings in base functions

* expose grpc channel-level compression settings in remote classes

* expose grpc channel-level compression settings in client

* raise TypeError for compression

* added test cases for grcp channel-level compression

* move grpc_compression parameter from client's signature to **kwargs

* use grpc.Compression instead of creating new enum qdrant.grpc.Compression in qdrant/grpc/__init__.py

* refactor grpc_compression type hint

* fix: Compression instead of grpc.Compression in type hint

* tests: move and update tests

* chore: remove magic method

* fix: fix async client generator, update precommit dependencies

* fix: update isort options

* fix: update dev dependencies

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2024-03-01 18:31:16 +01:00
George 696291ba39 new: add wait parameters to snapshots, update status codes, update type hints, remove excess asserts (#370)
* wip: add wait parameters to snapshots, update type hints, remove excess assert statements

* fix: fix mypy

* new: fix async client generator, update async client

* fix: update snapshot recover docstrings

* new: update async client

* new: update response code in models

* new: regen async client
2023-12-06 20:15:40 +01:00
Arnaud Gourlayandgenerall 016032c28f Sparse vectors API and local mode (#378)
* draft

* thread sparse_vectors_config through

* test ingest sparse data

* make async_client consistent for create collection

* regen async

* align client hierarchy

* do not give up

* disable async consistency check for now

* regen

* workaround async client breakage

* generate gRPC

* new healtcheck proto files

* fix gen branch

* fix grpc generation - had to reinstall to downgrade grpcio

* bump test docker image

* wait for update when migrating

* regen REST + update config

* add sparse search congruence

* congruence scroll sparse vectors

* congruence test retrieve sparse

* more sparse tests and waiting on remote

* remove healthcheck service

* misc

* reinstate len check

* fix scoring if no overlap

* sparse distance as numpy float without rounding

* fix payload selector

* fix payload exclude

* dedicated collection name to not collide with openapi engine tests

* fix with_vector, scoring no overlap, closeness assetion

* convert float only once

* regen gRPC to exclude health_check

* code review cleanup

* validate and sort sparse vector before persistence

* regen REST

* test deletes and update with fix

* fix async client

* fix batch size

* fix async client

* don't give up

* remove validated todo

* fix sparse vectors loading test

* fix sparse vectors loading test

* rm empty

* mention sparse vectors in the fake local info

* fix upload collection wait propagation

* fix async. init_from tests

* resync async

* rework test sparse vector generation

* regen clients

* update to dev

* update REST models

* async client

* do not change it yet

* fix migration test

* do not create a sparse configuration by default

* fix backward compatibility by disabling serialization of none fields

* fix type imports

* regen gRPC

* test BatchVectorStruct REST to gRPC conversion

* test gRPC->REST conversion

* sparse grpc tests and conversions fix

* generate async client

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2023-12-02 20:45:49 +01:00
Luis Cossío d3332eae2a Add Discovery API and local mode (#368)
* add score calculations

* fix type errors, route scorers accordingly

* generate grpc client (only discovery stuff)

* generate rest client

* discover preprocessing + local mode handling

* implement discover for remote client

* add failing tests, fix some stuff

* update rest client and local mode

* fixes and more tests

* fix mypy errors

* generate async client

* tiny edit docstring

* simplify custom distance calculation,
fix euclidean case for recommend best score

* fix python version for generating grpc client

* update grpc (select only discovery changes)

* generate grpc: add also ShardKey changes,
fix conversion changes for deprecated PointsUpdateOperation operations

* fix coverage on conversions

* generate async client

* generate async client with python 3.11

* change dict -> typings.Dict

* add deprecated field handling for grpc.PointsUpdateOperation

* update grpc client

* fix grpc conversion issues and review comments

* increase coverage

* also test for prefer_grpc = True

* fix has_field

* unflake test_context_many_pairs

* don't convert if None in model conversions

* move docstring to qdrant_client.py

* handle request timeout on all other interfaces

* oopsie: define timeout param in search_batch

* generate async client
2023-11-22 16:02:41 -03:00
Nirant 76c3168f4d Add New API to Docs (#361)
* * chore(.gitignore): add docs/source/examples/*/*/* to ignore list

* * feat(docs): add new modules and subpackages to qdrant_client documentation

* * docs(qdrant_client): update QdrantClient documentation to include information about async versions

* * docs(index.rst): update link to complete client API docs

* * chore(pyproject.toml): remove unused dependencies from dev group
* feat(pyproject.toml): add dependencies for documentation group

* * chore(pyproject.toml): update ipython dependency version to 8
* fix(pyproject.toml): fix typo in Pygments dependency version

* * chore(generate_docs_netlify.sh): remove unnecessary pip installations and fix newline at end of file

* * docs(index.rst): update Qdrant Client Documentation title to include [Python]
* docs(index.rst): update Qdrant Client Documentation description to include vector search engine
* docs(index.rst): update recreate_collection code example to include vectors_config parameter

* * docs(index.rst): add code samples for async client support

* * chore(conf.py): exclude grpc and tests directories from documentation build

* * docs(index.rst): fix title of Qdrant Python Client Documentation
* docs(index.rst): remove unnecessary link to test file in async mode section
* docs(index.rst): add missing classes to API Reference section

* * chore(conf.py): exclude local directory from documentation generation

* * docs(quickstart.ipynb): update section title from "Points, Upsert and Search without `fastembed`" to "Qdrant without `fastembed`"

* * chore(conf.py): exclude tests from documentation by updating exclude_patterns
2023-11-01 20:14:32 +05:30
Nirant ef49b6f1e6 Rewrite Docstrings + Change Netlify build to branch from Pip (#359)
* * chore(qdrant_client.py): update ordering parameter description

* * fix(qdrant_client.py): fix docstring formatting and add missing type hints in the update_point method

* * chore(async_qdrant_client.py): update docstring for `upsert` method

* * chore(qdrant_client.py): reformat and clarify ordering parameter description

* * chore(async_qdrant_client.py): update method signatures and add missing docstring for `insert` and `update` methods
* chore(qdrant_client.py): update method signatures and add missing docstring for `insert` and `update` methods

* *chore(qdrant_client.py): fix indentation errors

* *chore(async_qdrant_client.py): fix indentation errors

* * chore(.gitignore): add ignore rules for local_cache and db directories in docs/source/examples

* * chore(generate_docs_netlify.sh): add Pygments package as a dependency for generating docs

* * chore(conf.py): add IPython.sphinxext.ipython_console_highlighting to the list of extensions

* * chore(generate_docs_netlify.sh): add ipython package to the dependencies

* * chore(generate_docs_netlify.sh): update pip install command to install project in editable mode

* * chore(generate_docs_netlify.sh): update script to use poetry for dependency management

* * chore(generate_docs_netlify.sh): add export PATH command to include /opt/buildhome/.local/bin in the PATH

* * chore(async_qdrant_client.py, qdrant_client.py): update documentation for scroll

* * chore(async_qdrant_client.py): update consistency parameter docs
* chore(qdrant_client.py): update consistency parameter docs

* * chore(qdrant_client): fix priority indentation in docstrings

* * docs(index.rst): update reference link for DataTypes aka Models to Models
2023-10-31 19:24:14 +05:30
Nirant b8ea4fbe62 Add Executable Quickstart Example (#352)
* * chore(docs): add nbsphinx extension to Sphinx configuration
* chore(pyproject.toml): add nbsphinx package to project dependencies

* * docs(source/examples/install.rst): delete install.rst file
* docs(source/examples/quickstart.ipynb): create quickstart.ipynb file
* docs(source/index.rst): update examples section to include quickstart.ipynb

* * attempt(generate_docs.sh): add pandoc installation step

* * chore(generate_docs_netlify.sh): add installation of pandoc package

* * chore(generate_docs.sh): comment out the installation of pandoc
* chore(generate_docs_netlify.sh): comment out the installation of pandoc

* * chore(generate_docs_netlify.sh): add nbsphinx package installation
* chore(generate_docs_netlify.sh): install pandoc using apt-get

* * chore(generate_docs_netlify.sh): change installation command for pandoc from 'sudo apt-get install' to 'apt-get install'

* * chore(generate_docs.sh): add pandoc installation and configuration

* * chore(generate_docs.sh): remove unused code and comments
* feat(generate_docs_netlify.sh): add pandoc installation and configuration

* * chore(generate_docs_netlify.sh): update script to install pandoc using brew
* chore(generate_docs_netlify.sh): update script to install qdrant-client using pip

* * docs(index.rst): update API references in the documentation

* * docs(source/index.rst): remove append_payload and limit parameters from code examples

* * fix(docs): fix incorrect argument name in code example

* * fix(quickstart.ipynb): add limit parameter to the queries

* * fix(docs): update comments in code examples for clarity and consistency

* * docs(index.rst): remove unnecessary API references and sections

* * docs(index.rst): add highlighted classes section with relevant classes

* * fix(generate_docs.sh): install pandoc using apt-get before running sphinx-apidoc

* * docs(index.rst): update root `toctree` directive
2023-10-26 20:17:00 +05:30