Skip to main content

An integration of Qdrant ANN vector database backend with Haystack

Project description

qdrant-haystack

An integration of Qdrant vector database with Haystack by deepset.

The library finally allows using Qdrant as a document store, and provides an in-place replacement for any other vector embeddings store. Thus, you should expect any kind of application to be working smoothly just by changing the provider to QdrantDocumentStore.

Installation

qdrant-haystack might be installed as any other Python library, using pip or poetry:

pip install qdrant-haystack
poetry add qdrant-haystack

Usage

Once installed, you can already start using QdrantDocumentStore as any other store that supports embeddings.

from qdrant_haystack import QdrantDocumentStore

document_store = QdrantDocumentStore(
    "localhost",
    index="Document",
    embedding_dim=512,
    recreate_index=True,
    hnsw_config={"m": 16, "ef_construct": 64}  # Optional
)

The list of parameters accepted by QdrantDocumentStore is complementary to those used in the official Python Qdrant client.

Using local in-memory / disk-persisted mode

Qdrant Python client, from version 1.1.1, supports local in-memory/disk-persisted mode. That's a good choice for any test scenarios and quick experiments in which you do not plan to store lots of vectors. In such a case spinning a Docker container might be even not required.

The local mode was also implemented in qdrant-haystack integration.

In-memory storage

In case you want to have a transient storage, for example in case of automated tests launched during your CI/CD pipeline, using Qdrant Local mode with in-memory storage might be a preferred option. It might be simply enabled by passing :memory: as first parameter, while creating an instance of QdrantDocumentStore.

from qdrant_haystack import QdrantDocumentStore

document_store = QdrantDocumentStore(
    ":memory:",
    index="Document",
    embedding_dim=512,
    recreate_index=True,
    hnsw_config={"m": 16, "ef_construct": 64}  # Optional
)

On disk storage

However, if you prefer to keep the vectors between different runs of your application, it might be better to use on disk storage and pass the path that should be used to persist the data.

from qdrant_haystack import QdrantDocumentStore

document_store = QdrantDocumentStore(
    path="/home/qdrant/storage_local",
    index="Document",
    embedding_dim=512,
    recreate_index=True,
    hnsw_config={"m": 16, "ef_construct": 64}  # Optional
)

Connecting to Qdrant Cloud cluster

If you prefer not to manage your own Qdrant instance, Qdrant Cloud might be a better option.

from qdrant_haystack import QdrantDocumentStore

document_store = QdrantDocumentStore(
    "https://YOUR-CLUSTER-URL.aws.cloud.qdrant.io",
    index="Document",
    api_key="<< YOUR QDRANT CLOUD API KEY >>",
    embedding_dim=512,
    recreate_index=True,
)

There is no difference in terms of functionality between local instances and cloud clusters.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qdrant_haystack-1.0.3.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

qdrant_haystack-1.0.3-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file qdrant_haystack-1.0.3.tar.gz.

File metadata

  • Download URL: qdrant_haystack-1.0.3.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.17

File hashes

Hashes for qdrant_haystack-1.0.3.tar.gz
Algorithm Hash digest
SHA256 6e6577a58cecfbc94d9c4834c7abfeb5f5c8fc70052c7c7480f230f74b80d77b
MD5 0cf2976e39d75c553ed3c8bb1bdda5ed
BLAKE2b-256 cf69b74bdc07c6069760c9f02d0a13a1b75c2c222fa94ed4b6e87ad7bea7f834

See more details on using hashes here.

File details

Details for the file qdrant_haystack-1.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for qdrant_haystack-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 0c329e5ffa3a96f1c4b4e4c3579d4f64ea7fd5c97b672485cfc89e440a817524
MD5 5e22f281dbabb7119dec71fba4e599ed
BLAKE2b-256 4ff5c61237f7a393eff062edf829a823f558533b9b78468fcac4a87c21579423

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page