Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Ask DeepWiki

ovos-qdrant-embeddings-plugin

Qdrant-backed EmbeddingsDB vector store plugin for OpenVoiceOS.

Install

pip install ovos-qdrant-embeddings-plugin

What is EmbeddingsDB?

EmbeddingsDB is the abstract vector-store interface defined by ovos-plugin-manager (opm.embeddings). It provides a uniform API for storing, retrieving, and nearest-neighbour querying of embedding vectors regardless of the backend.

OVOS components that need semantic search (e.g. memory, skills, pipelines) discover the active backend via the OPM entry-point group opm.embeddings. This plugin registers itself as:

opm.embeddings = ovos-qdrant-embeddings-plugin

It pairs naturally with embedding producers such as ovos-gguf-plugin that generate the vectors you store here.

Quickstart: in-memory DB

import numpy as np
from ovos_qdrant_embeddings import QdrantEmbeddingsDB

# In-memory: no host, no path. Use it for development and CI.
db = QdrantEmbeddingsDB(config={"vector_size": 4})

# Store vectors
db.add_embeddings("apple",  np.array([1.0, 0.0, 0.0, 0.0]))
db.add_embeddings("banana", np.array([0.0, 1.0, 0.0, 0.0]))
db.add_embeddings("cherry", np.array([0.0, 0.0, 1.0, 0.0]))

# Nearest-neighbour query, returns [(key, score), ...]
results = db.query(np.array([0.9, 0.1, 0.0, 0.0]), top_k=2)
print(results)  # [('apple', 0.999...), ('banana', 0.099...)]

Configuration

Key Default Description
vector_size required Dimension of the embedding vectors. Must match your embedding model.
distance_metric "cosine" Similarity function: "cosine", "euclidean", or "dot".
default_collection_name "embeddings" Collection created on startup and used when no collection is specified.
host none Remote Qdrant host (activates HTTP client mode).
port 6333 HTTP port for remote client.
grpc_port 6334 gRPC port for remote client.
api_key none API key for Qdrant Cloud or authenticated remote instances.
path none Filesystem path for local persistent storage (activates file-backed mode).

Three client modes

In-memory (development or CI): neither host nor path set.

config = {"vector_size": 384}

Local persistent: data survives restarts.

config = {"path": "/var/lib/ovos/qdrant", "vector_size": 384}

Remote: connects to a running Qdrant server or Qdrant Cloud.

config = {
    "host": "my-qdrant.example.com",
    "port": 6333,
    "api_key": "my-secret-key",
    "vector_size": 384,
}

When to choose Qdrant over ChromaDB

  • You need to run the vector store as a separate network service (microservice / homelab).
  • Your collection grows to millions of vectors. Qdrant's HNSW index scales well at that size.
  • You want Qdrant Cloud managed hosting.
  • You need gRPC for high-throughput batch ingestion.

For a single-device OVOS installation with moderate data, the ChromaDB plugin may be simpler. Both expose the same EmbeddingsDB interface, so switching is a config change.

Further reading

Testing

Tests use an in-memory Qdrant client. No server is required.

pip install ovos-qdrant-embeddings-plugin[test]
pytest test/ -v

Credits

Originally developed by TigreGótico for OpenVoiceOS, sponsored by VisioLab. Modernized under the NGI0 Commons Fund / NLnet.

VisioLab

This work was sponsored by VisioLab, part of Royal Dutch Visio, is the test, education, and research center in the field of (innovative) assistive technology for blind and visually impaired people and professionals. We explore (new) technological developments such as Voice, VR and AI and make the knowledge and expertise we gain available to everyone.

NGI0 Commons Fund

This project was funded through the NGI0 Commons Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme, under the aegis of DG Communications Networks, Content and Technology under grant agreement No 101135429.

Metadata

Release files for ovos-qdrant-embeddings-plugin 0.0.1a9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ovos-qdrant-embeddings-plugin 0.0.1a9
File Size Uploaded
ovos_qdrant_embeddings_plugin-0.0.1a9.tar.gz 16.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ovos-qdrant-embeddings-plugin 0.0.1a9
File Interpreter ABI Platform
ovos_qdrant_embeddings_plugin-0.0.1a9-py3-none-any.whl Python 3 none any Details

Total release size: 28.2 kB

Release files / ovos_qdrant_embeddings_plugin-0.0.1a9.tar.gz

Download URL ovos_qdrant_embeddings_plugin-0.0.1a9.tar.gz
Size 16.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1fb7d7d0cb82b79c87efe2a0c11982f3e53a92b530ab4a4074c742b12bcd8cf4
BLAKE2b-256 checksum
How to use checksums
a614513c14f2123453fe0c27763643e08f77ca78bfc034ea4c7bcd53d928b437
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / ovos_qdrant_embeddings_plugin-0.0.1a9-py3-none-any.whl

Download URL ovos_qdrant_embeddings_plugin-0.0.1a9-py3-none-any.whl
Size 11.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf5d3573a8a31ccfc5b1e1fa909fdb20d066805cabcda584b8486a999b7f1075
BLAKE2b-256 checksum
How to use checksums
27ab00825eff7bc727aa17cc1b32f8e3a0e5c341b42dd3cd6fa3b967b3d6b51d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page