Commit Graph

45 Commits

Author SHA1 Message Date
Kartik Gupta
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
Luis Cossío
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 Hagag
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ío
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
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