Official Python client for the Qdrant vector search engine. Supports both remote server (gRPC or REST) and local in-memory/on-disk mode without a running server. All data operations use query_points() as the unified interface as of 1.10+. Prior search/recommend/discover methods removed in 1.14.0. Bundles FastEmbed for optional local embedding generation. Async support via AsyncQdrantClient.
pip install qdrant-clientVerified import paths — ran on the pinned version, not inferred.
query_points() is the unified search interface in 1.10+. upload_points() replaces the removed upload_records().
Replace all with client.query_points(). For batch: client.query_batch_points(). Migration guide: qdrant.tech/documentation/concepts/search/
Replace with client.upload_points() using PointStruct(id=..., vector=..., payload=...) objects.
Use client.update_collection_aliases() or migrate data manually if you were using init_from for collection cloning.
Pin pydantic to either >=1.10,<2.0 or >=2.2.1. Avoid 2.0.0–2.2.0.
For production or multi-process access, run a Qdrant server (Docker or binary) and connect via QdrantClient(url='http://localhost:6333').
Apply offset only at the top-level query_points() call, not in nested prefetch structures.
Use AsyncQdrantClient for async gRPC operations. Do not attempt to access .grpc_* methods from the synchronous QdrantClient.