83 Commits

Author SHA1 Message Date
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
f994dcf6e7 new: bump fastembed to 0.8.0 (#1176) 2026-05-11 20:49:29 +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
2c45a53615 new: adjust numpy versioning (#1132) 2025-12-12 17:17:19 +07:00
kurtqq
8f175fb93d Relax allowed version of portalocker (#1034)
* Relax minmum version of portalocker

* Update pyproject.toml

* upd poetry lock

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2025-07-18 11:58:08 +03:00
George
e89c7390c5 new: update fastembed to ^0.7 (#1026)
* new: update fastembed to ^0.7

* fix: update poetry lock
2025-06-16 13:25:25 +04:00
George
92b918c72d new: update readme, move pre-commit to pyproject.toml (#984) 2025-06-14 00:38:18 +04: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
05b1251a94 Remove multitask models list (#945)
* new: remove multitask embedding list

* new: update fastembed
2025-04-22 15:43:03 +03:00
George
7143b21f92 new: forbid pydantic >2.0,<2.2.1 due to bug in update_forward_refs (#943) 2025-04-22 15:42:40 +03:00
tellet-q
a7d78d378f 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-04-22 15:35:48 +03:00
George
011f692d3d fix: fix poetry version constraint bug (#899)
* fix: fix poetry version constraint bug

* fix: update poetry lock
2025-04-22 15:33:59 +03:00
George
972ff61b32 new: remove grpcio tools from dependencies, add protobuf (#896) 2025-04-22 15:33:25 +03:00
George Panchuk
eaee466fca bump version to v1.13.3 2025-03-05 22:51:35 +01:00
George
fb9e2d08b4 update clients (#880)
* update clients

* new: update conversions

* fix: update inspection cache

* update grpc

* bump fastembed to 0.5.1

* update poetry lock

* update poetry lock
2025-01-16 13:39:12 +01:00
George
9b89888355 Fastembed 0.5.0 (#870)
* new: update fastembed to 0.5.0, update numpy version mapping, bump qdrant-client to v1.12.2

* new: update qdrant version in integration tests

* update lock

* drop python3.8

* fix numpy for type checkers

* fix netlify

* fix netlify
2024-12-27 17:37:36 +01:00
George Panchuk
e39c7afb03 bump version to 1.12.1 2024-10-29 15:44:42 +01:00
George
4a2c0abce5 bump to v1.12.0 (#803) 2024-10-08 17:41:26 +02:00
George
d3643cadbd new: update fastembed to 0.3.6 (#753) 2024-08-23 22:33:59 +02:00
George Panchuk
8054380c26 bump version to v1.11.0 2024-08-12 16:47:51 +02:00
Hossam Hagag
ca2e1ed22a added new to type stub + fixed type hinting (#717)
* added new to type stub + fixed type hinting

* unlocked pyright + updated type_stub

* updated poetry lock

* fix: fix local collection upsert type hint

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2024-08-12 16:29:35 +02:00
George
814ef0ed4d new: set idf modifier in fastembed mixin for bm models (#686)
* new: set idf modifier in fastembed mixin for bm models

* fix: update poetry lock

* fix: tmp fix, restrict pyright version

* refactor: update bm model extraction, update fastembed

* fix: fix list of bm models

* fix: fix default bm models list value

* refactoring: remove redundant import
2024-08-09 23:37:43 +02:00
Andrey Vasnetsov
0470536bbf Drop black (#623)
* replace black with ruff

* use line length

* remove isort

* regen async

* regen async

* fix ruff version [no-ci]
2024-06-20 13:00:51 +02:00
George
b488e17c33 new: add gpu support for fastembed, add fastembed providers (#612)
* new: add gpu support for fastembed, add fastembed providers

* new: update fastembed, add fastembed-gpu, add type alias for onnx providers

* new: update readme

* fix: fix poetry.lock
2024-06-20 13:00:44 +02:00
George Panchuk
d18cb1702f bump to v1.9.0 2024-05-03 21:13:31 +02:00
George
e0820e08ff fix: align formatters versions (#602) 2024-04-22 12:31:21 +02:00
George
79acb74c7c new: update fastembed with fix for sparse models parallelism (#584) 2024-04-16 16:11:47 +02:00
George Panchuk
71255c287c bump version to v1.8.1 2024-03-27 14:13:29 +01:00
Andrey Vasnetsov
0d7e46ce63 WIP: hybrid search with fastembed (#553)
* WIP: hybrid search with fastembed

* hybrid queries with fastembed

* test for hybrid

* fix typo

* new: extend hybrid search tests, fix mypy, small refactoring (#554)

* refactor: align model name parameters in setters, update tests

* fix: fix async

* fix: add a good test, fix sparse vectors in query batch

* refactoring: reduce branching, refactor fastembed tests

---------

Co-authored-by: George <george.panchuk@qdrant.tech>
2024-03-27 14:01:53 +01:00
George
40a34c4d7d new: propagate timeout from methods to httpx (#534)
* new: propagate timeout from methods to httpx

* refactor: refactor timeout propagation (#535)

* tests: add timeout test

* refactor: remove redundant kwargs
2024-03-27 14:01:42 +01:00
George
c63c62e6df bump version to v1.8.0 (#526) 2024-03-06 13:32:06 +01:00
Nirant
cb0aa80e8e 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:23:28 +01:00
Armaghan
4aea36fcea 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-04 19:09:14 +01:00
Luis Cossío
ee22ab2919 Local mode of order_by parameter in scroll + datetime support (#491)
* generate rest client (only points_api)

* generate grpc client (points part only)

* add local mode implementation

* update collections_api.py

* add grpc conversions

* fix problematic StartFrom Union order

* add basic congruence test

* route order_by in qdrant clients

* fix local mode `start_from` logic

* add library stubs for dateutil

* generate async client

* generate the rest of the rest client 👻

* test datetime values too

* add int Range and int StartFrom

* update points.proto and points_pb2.py

* fix conversion of range interface

* add conversion fixtures and use better conversion of datetime to timestamp

* remove integer range

* restore `value_by_key()`

* OrderBy grpc to rest conversions

* generate async client

* use `OrderByInterface` instead of only `OrderBy`

* - use equivalent qdrant core datetime parsing,
- use type alias for OrderingValue, instead of custom class,
- better random date generation

* Drop custom datetime parser implementation

* nit fixes

* fix flakiness of the congruence test by subsorting

* better datetime to timestamp conversion

* uncomment conversion fixtures, add Direction

* restore poetry.lock and remove dateutil dep

* poetry lock --no-update

* rename datetime.py to datetime_utils.py

* add StrictInt to StartFrom union

* use more date formats in fixtures

* move conversion test to `test_validate_conversions.py`

* drop `%:z` formats

* add more complex timezones to payload fixtures, fix deserialization

* update datetime parsing test
2024-03-04 19:07:31 +01:00
George Panchuk
eda201a1db Bump version to v1.7.3 2024-02-08 18:30:22 +01:00
George Panchuk
ce5b0db7d8 bump version to v1.7.1 2024-01-19 21:50:39 +01:00
George
cef5bfd35c new: unlock python upper cap (#419) 2024-01-19 21:44:27 +01:00
Luis Cossío
298e67bcdc 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-12-07 13:32:55 +01:00
generall
e207d1de41 bump version 1.6.5 2023-11-15 11:27:53 +01:00
Nirant
86b38a1cd4 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-03 18:39:20 +01:00
Nirant
bd8549ee27 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-11-03 18:37:01 +01:00
George Panchuk
6875996cad Bump version to 1.6.4 2023-10-26 14:12:55 +02:00
Andrey Vasnetsov
0cfc45a340 update interface and version for fastembed (#340)
* update interface and version for fastembed

* fix types

* fix types

* regen async

* use python 3.11 to check compatibility

* fix docstring

* regen async

* propagate batch size
2023-10-16 19:00:47 +02:00
George
2a07215787 Async qdrant client (#319)
* new: manually implemented async qdrant client

* fix: remove await before sync call

* fix: make upload collection, records and migrate synchronous

* fix: add init method to async client base

* refactoring: remove redundant import

* new: add super().__init__ in qdrant remote, update import in http

* new: mvp async qdrant client generator

* new: fix mypy, update generator script, refactoring

* fix: fix test script

* new: update generator launch script, update async files

* new: refactor async client generator

* refactoring: remove redundant operations, add comments, refactor

* new: add isort, black and autoflake to dev dependencies

* fix: add more checks, fix type hints

* fix: do not check types in async client generator for python3.8

* new: do not type check async_qdrant_fastembed

* fix: fix pyright run

* new: update async client tests

* fix: update versions in CI

* new: update pre-commit python version, update autogenerated files

* new: update generated files, add tests for async generator, update generator script

* fix: exclude generator test from 3.8

* fix: fix python version condition

* fix: add python target version for black

* fix: generate async client only on python 3.9
2023-10-16 19:00:21 +02:00
Arnaud Gourlay
5b155f833f Geo polygons support (#325)
* regenerate client

* regen grpc client

* document build process

* work from Zein in https://github.com/qdrant/qdrant-client/pull/272

* update rest client with optional field

* code refactor and better naming

* remove shapely as a dependency

* fix typing

---------

Co-authored-by: zzzz-vincent <wenzishen.vincent@hotmail.com>
Co-authored-by: generall <andrey@vasnetsov.com>
2023-10-06 22:12:35 +02:00
Andrey Vasnetsov
d2a8b43a1b python 3.12 support (#326) 2023-10-06 22:08:43 +02:00
generall
9777800694 bump version 1.5.3 2023-09-12 20:37:19 +02:00
Andrey Vasnetsov
27d4e2197b fix fastembed for pydantic 1.x (#285)
* fix fastembed for pydantic 1.x

* add extras setup in readme

* move fastembed from group to extras

* lock
2023-09-11 17:19:57 +04:00
Andrey Vasnetsov
c1e640ff25 V1.5.0 (#281)
* up version

* up integration tests version
2023-09-07 12:37:35 +02:00
Nirant
536b0eeb22 Add fastembed integration (#210)
* Add skeleton for fastvector registration

* * fix(qdrant_client.py): fix import statement for QdrantClientMixin from fastembed instead of fastvector
* fix(qdrant_client.py): remove unnecessary print statement

* * chore(README.md): add bullet point for extensive test coverage
* feat(README.md): add section for Fast Embeddings + Simpler API
* fix(README.md): fix formatting of code block and update code example for Qdrant Client usage
*

* * fix(qdrant_client.py): remove unused imports and code
* feat(qdrant_client.py): add support for adding and querying documents with fastembed installed
* test(qdrant_client.py): add tests for adding and querying documents with and without fastembed installed

* * feat(qdrant_client.py): add support for fastembed.qdrant_mixin.QdrantAPIExtensions for upsert_docs and search_docs methods

* * fix(qdrant_client.py): remove unused import of SearchParams
* feat(qdrant_client.py): add return type hint to QdrantClient.search_docs method

* * fix(qdrant_client.py): fix import statement for SearchParams class in qdrant_client.py

* * feat(models.py): add QueryResponse model for handling query responses

* * feat(qdrant_client.py): add batch_iterable method to QdrantClient class

* * chore(qdrant_client.py): reformat code for better readability

* * chore(test_qdrant_client.py): add type hinting to fastembed_setup fixture
* test(test_qdrant_client.py): add test for client_close function

* * chore(.gitignore): add pattern for ignoring .tar.gz files

* * refactor(test_qdrant_client.py): remove unused imports and variables
* chore(test_qdrant_client.py): reformat import statements for better readability

* * chore(test_qdrant_client.py): remove unused fixtures and test cases

* * chore(qdrant_client.py): remove unused imports

* Add test skeleton

* * chore(.gitignore): add local_cache/*/* to ignore local cache files

* * fix(qdrant_client.py): change import statement for fastembed to use DefaultEmbedding instead of FlagEmbedding
* refactor(qdrant_client.py): refactor code to remove unnecessary loop

* * fix(qdrant_client.py): import missing models in qdrant_client.py
* feat(qdrant_client.py): add support for search parameters in search method
* refactor(qdrant_client.py): refactor indexing logic to handle embeddings correctly

* * test(test_fast_embed.py): add assertion to verify count of documents in collection
* test(test_fast_embed.py): remove unused code
* test(test_fast_embed.py): add TODO comment for future assertions

* * chore(pyproject.toml): add optional fastembed group to poetry dependencies
* feat(pyproject.toml): add fastembed dependency to fastembed group

* * chore(qdrant_client.py): add check for fastembed installation in QdrantClient constructor

* * fix(test_fast_embed.py): skip test if FastEmbed is not installed
* fix(test_fast_embed.py): add default values for test_no_install parameters
* fix(test_fast_embed.py): skip test if FastEmbed is installed

* Delete unused usage file

* * chore(models.py): remove unused QueryResponse class
* feat(qdrant_client.py): add QueryResponse class

* * refactor(qdrant_client.py): organize imports and fix type hinting for QueryResponse class

* review fixes

* make mypy happy

* review fixes

* fix mypy

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2023-08-18 15:17:46 +02:00