n_vectors = 1000
d_vectors = 128
n_queries = 5
vectors = np.random.randn(n_vectors, d_vectors)
payloads = [{'rand':np.random.rand(), 'item' : str(np.random.randint(0, 1e6))} for i in range(n_vectors)]
queries = np.random.randn(n_queries, d_vectors)
client = QdrantClient(host="localhost", port=6333)
client.recreate_collection(
collection_name="test_collection",
vectors_config=models.VectorParams(size=d_vectors, distance=models.Distance.EUCLID),
)
operation_info = client.upsert(
collection_name="test_collection",
points=models.Batch(
ids=[i for i in range(n_vectors)],
payloads=payloads,
vectors=vectors.tolist()
)
)
client.update_collection(
collection_name='test_collection',
optimizer_config=models.OptimizersConfigDiff(
indexing_threshold=1
)
)
search_filter = models.Filter(
must=[
models.FieldCondition(
key="rand",
range=models.Range(
gt=None,
gte=None,
lt=None,
lte=0.8,
),
)
]
)
data_function = QdrantDataPlugin(5, "test_collection", client, item_key='item',
search_request_kwargs={'filter' : search_filter})
data_module = DataSourceModule(data_function)
batch = build_batch_from_embeddings(queries)
batch2 = data_module(batch)
for q in batch2:
for r in q:
assert r.internal.parent_id == q.idQdrant Plugins
Qdrant functions and classes
Qdrant Data Plugin
QdrantDataPlugin integrates with a Qdrant database. search_request_kwargs can be any valid inputs to a Qdrant SearchRequest
QdrantDataPlugin
QdrantDataPlugin (k:int, collection_name:str, qdrant_client:qdrant_client.qdrant_client.QdrantClient, item_key:Optional[str]=None, search_request_kwargs:Optional[dict]=None, distance_cutoff:Optional[float]=None)
QdrantDataPlugin - data plugin for working with a qdrant vector database.
The data query will run k nearest neighbors against the qdrant collection collection_name
Optionally, item_key denotes the key in an object’s payload corresponding to the item value
search_request_kwargs are optional kwargs sent to models.SearchRequest
if distance_cutoff is specified, query results with a distance greater than distance_cutoff are ignored
| Type | Default | Details | |
|---|---|---|---|
| k | int | k nearest neighbors to return | |
| collection_name | str | qdrant collection name | |
| qdrant_client | QdrantClient | qdrant client | |
| item_key | typing.Optional[str] | None | key in qdrant payload denoting item value |
| search_request_kwargs | typing.Optional[dict] | None | optional kwargs for SearchRequest |
| distance_cutoff | typing.Optional[float] | None | query to result distance cutoff |