Skip to main content

A qdrant embeddings plugin for OVOS

Project description

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 — perfect 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 Remote Qdrant host (activates HTTP client mode).
port 6333 HTTP port for remote client.
grpc_port 6334 gRPC port for remote client.
api_key API key for Qdrant Cloud or authenticated remote instances.
path Filesystem path for local persistent storage (activates file-backed mode).

Three client modes

In-memory (development / 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.
  • 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 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.

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

ovos_qdrant_embeddings_plugin-0.0.1a7.tar.gz (16.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ovos_qdrant_embeddings_plugin-0.0.1a7-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file ovos_qdrant_embeddings_plugin-0.0.1a7.tar.gz.

File metadata

File hashes

Hashes for ovos_qdrant_embeddings_plugin-0.0.1a7.tar.gz
Algorithm Hash digest
SHA256 2a5346ec373b974c56902aecaa1108aa072495300dfd89bec3e86c93e4d2a9b0
MD5 539eea11fea6210333e45ac81f25df92
BLAKE2b-256 4454719a01c63de2ad4d58c1a282078761bcaa81b09e4eafecd9f46db603e479

See more details on using hashes here.

File details

Details for the file ovos_qdrant_embeddings_plugin-0.0.1a7-py3-none-any.whl.

File metadata

File hashes

Hashes for ovos_qdrant_embeddings_plugin-0.0.1a7-py3-none-any.whl
Algorithm Hash digest
SHA256 9bc35a2d66478d3e50d5c01e20fe999ad3b7e09772472ef061f517feffc4f9d2
MD5 847ec76dad616f5162eb4173e71f9187
BLAKE2b-256 ad091eccb7f24198a00e2cf92ef305ad5c176a2caa931e15dad3dcb1ad0998c9

See more details on using hashes here.

Supported by

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