Commit Graph

33 Commits

Author SHA1 Message Date
Andrey Vasnetsov
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
George
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 Vasnetsov
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 Mohamedali
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
Nirant
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
Armaghan
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 Gourlay
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
George
f9a0c9e7dd new: async local mode generator (#345) 2023-10-20 15:57:07 +02:00
Andrey Vasnetsov
0f32e578ec 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 18:13:52 +02:00
George
278a68d297 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-13 22:26:53 +02:00
Arnaud Gourlay
93edff8f97 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 21:43:25 +02:00
generall
6f8c5172d7 sync indexed_only and binary quant params 2023-08-21 23:15:00 +02:00
generall
395321d8c6 init dev commit - do not cherry-pick 2023-08-21 14:08:08 +02:00
Luis Cossío
0777ea88cb Add gnu-sed instructions for macOS in DEVELOPMENT.md (#181)
* Add gnu-sed instructions for macOS in DEVELOPMENT.md

* new: extend mac os sed instructions

---------

Co-authored-by: George Panchuk <george.panchuk@qdrant.tech>
2023-07-08 16:49:39 +04:00
Andrey Vasnetsov
071b190573 test for large vectors persistence (#167)
* test for large vectors persistence

* large vectors for tests

* use sqlite for persistence

* mypy + migration error reporting

* fix sphinx version

* Local persistence test fixes (#169)

* Reload the collections to support multiple clients

* Extend the test_local_persistence.py with assertions

* prevent parallel access

* fix types

---------

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>

---------

Co-authored-by: Kacper Łukawski <kacperlukawski@users.noreply.github.com>
2023-05-09 17:38:17 +02:00
Arnaud Gourlay
ddd24214b8 v0.10.0 (#71)
* generate gRPC client

* generate REST client

* draft

* wip

* fix conversion test

* old api compatible

* clean deprecated

* batch search + reco tests

* multi-vector test

* full-text filtering

* Fast protobuf (#67)

* generate grpc client

use new grpc client in qdrant methods

fix grpc parallel issue

remove betterproto

remove betterproto

remove betterproto type annotation

extend test coverage

upd protobuf to master

* rm eventloop

* upd version

* shortcut for models

* v0.10.1 compatibility hotfix: make deprecated ram_data_size optional

Co-authored-by: Andrey Vasnetsov <andrey@vasnetsov.com>
2022-09-19 12:59:29 +02:00
Andrey Vasnetsov
09cb61e8c3 v0.8.3 (#49)
* v0.8.3

* upd dockerhub tag
2022-06-28 13:13:39 +02:00
Andrey Vasnetsov
eb15dc373c V0.8.0 (#45)
* updates for v0.8.0

* update dependencies

* fix: use strict bool
2022-06-08 13:43:47 +02:00
Andrey Vasnetsov
0b499b0fd5 Upd version - 0.7.0 (#26)
* upd version

* enable CI on all PRs

* update client - json as a payload + typed index (#31)

* update client - json as a payload + typed index

* refactor

* upd docker version in tests

* New condition filters (#33)

* upd rest for new filter conditions

* update gprc client

* proper shutdown on upload error

* rm debug print
2022-04-13 09:49:31 +02:00
Andrey Vasnetsov
9731ec5b1e fix netlify deploy 2022-04-12 22:57:51 +02:00
Andrey Vasnetsov
301c52ce9c fix netlify deploy 2022-04-12 22:52:01 +02:00
Andrey Vasnetsov
c803a93194 fix theme download 2022-04-12 22:46:37 +02:00
Andrey Vasnetsov
f8233a6014 netlify script 2022-04-12 22:34:52 +02:00
Andrey Vasnetsov
5c82cdc316 Update generate_grpc_client.sh (#32) 2022-03-30 10:16:04 +02:00
Andrey Vasnetsov
3424eed762 clients update instruction (#30) 2022-03-25 17:38:52 +01:00
Andrey Vasnetsov
621e885968 upload collection with gPRC (#28)
* grpc client generator

* grpc: upload data with grpc

* integration test

* allow-prerelease

* upd poetry

* fix review
2022-03-09 14:10:32 +01:00