# ChromaEmbeddingsDB Plugin
## Overview
The `ChromaEmbeddingsDB` plugin integrates with the [ChromaDB](https://www.trychroma.com/) database to provide a robust solution for managing and querying embeddings. This plugin extends the abstract `EmbeddingsDB` class, allowing you to store, retrieve, and query embeddings efficiently using ChromaDB’s capabilities.
This plugin is meant to be used by other specialized plugins such as:
- https://github.com/TigreGotico/ovos-face-embeddings-plugin
- https://github.com/TigreGotico/ovos-voice-embeddings-plugin
- https://github.com/TigreGotico/ovos-gguf-embeddings-plugin
## Features
- **Add Embeddings**: Store embeddings with associated keys.
- **Retrieve Embeddings**: Fetch embeddings by their keys.
- **Delete Embeddings**: Remove embeddings by their keys.
- **Query Embeddings**: Find the closest embeddings to a given query, with support for cosine distance.
## Example
Here is a full example demonstrating the basic usage of `ChromaEmbeddingsDB`.
```python
import numpy as np
from chroma_embeddings_db import ChromaEmbeddingsDB
# Initialize the database
db = ChromaEmbeddingsDB(path="path_to_chromadb_storage")
# Add embeddings
embedding1 = np.array([0.1, 0.2, 0.3])
embedding2 = np.array([0.4, 0.5, 0.6])
db.add_embeddings("user1", embedding1)
db.add_embeddings("user2", embedding2)
# Retrieve and print embeddings
print(db.get_embedding("user1"))
print(db.get_embedding("user2"))
# Query embeddings
query_embedding = np.array([0.2, 0.3, 0.4])
results = db.query(query_embedding, top_k=2)
print(results)
# Delete an embedding
db.delete_embedding("user1")
```
> Ensure that the path provided to the `ChromaEmbeddingsDB` constructor is accessible and writable.
## Acknowledgements
- [ChromaDB](https://www.trychroma.com/) for providing the database backend.
- [NumPy](https://numpy.org) for numerical operations.
Raw data
{
"_id": null,
"home_page": "https://github.com/TigreGotico/ovos-chromadb-embeddings-plugin",
"name": "ovos-chromadb-embeddings-plugin",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "OVOS openvoiceos plugin chromadb recognition",
"author": "jarbasai",
"author_email": "jarbasai@mailfence.com",
"download_url": "https://files.pythonhosted.org/packages/45/1e/0fdaa673c39a5c8835ba4b74bf1a7dae53b7ccae9bff3bcff4584256aff4/ovos-chromadb-embeddings-plugin-0.0.0.tar.gz",
"platform": null,
"description": "# ChromaEmbeddingsDB Plugin\n\n## Overview\n\nThe `ChromaEmbeddingsDB` plugin integrates with the [ChromaDB](https://www.trychroma.com/) database to provide a robust solution for managing and querying embeddings. This plugin extends the abstract `EmbeddingsDB` class, allowing you to store, retrieve, and query embeddings efficiently using ChromaDB\u2019s capabilities.\n\nThis plugin is meant to be used by other specialized plugins such as:\n- https://github.com/TigreGotico/ovos-face-embeddings-plugin\n- https://github.com/TigreGotico/ovos-voice-embeddings-plugin\n- https://github.com/TigreGotico/ovos-gguf-embeddings-plugin\n\n## Features\n\n- **Add Embeddings**: Store embeddings with associated keys.\n- **Retrieve Embeddings**: Fetch embeddings by their keys.\n- **Delete Embeddings**: Remove embeddings by their keys.\n- **Query Embeddings**: Find the closest embeddings to a given query, with support for cosine distance.\n\n## Example\n\nHere is a full example demonstrating the basic usage of `ChromaEmbeddingsDB`.\n\n```python\nimport numpy as np\nfrom chroma_embeddings_db import ChromaEmbeddingsDB\n\n# Initialize the database\ndb = ChromaEmbeddingsDB(path=\"path_to_chromadb_storage\")\n\n# Add embeddings\nembedding1 = np.array([0.1, 0.2, 0.3])\nembedding2 = np.array([0.4, 0.5, 0.6])\ndb.add_embeddings(\"user1\", embedding1)\ndb.add_embeddings(\"user2\", embedding2)\n\n# Retrieve and print embeddings\nprint(db.get_embedding(\"user1\"))\nprint(db.get_embedding(\"user2\"))\n\n# Query embeddings\nquery_embedding = np.array([0.2, 0.3, 0.4])\nresults = db.query(query_embedding, top_k=2)\nprint(results)\n\n# Delete an embedding\ndb.delete_embedding(\"user1\")\n```\n\n> Ensure that the path provided to the `ChromaEmbeddingsDB` constructor is accessible and writable.\n\n\n## Acknowledgements\n\n- [ChromaDB](https://www.trychroma.com/) for providing the database backend.\n- [NumPy](https://numpy.org) for numerical operations.\n\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A chromadb embeddings plugin for OVOS",
"version": "0.0.0",
"project_urls": {
"Homepage": "https://github.com/TigreGotico/ovos-chromadb-embeddings-plugin"
},
"split_keywords": [
"ovos",
"openvoiceos",
"plugin",
"chromadb",
"recognition"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3a5bc2836b0962f174ed98a757c54844a3d81b69e8f7993b5dba2ea670af1f1f",
"md5": "88daaec54320b1a139e957fd56a219b1",
"sha256": "210ed1ec21674db02de954390ad0fe6c1512e88abfd6fbb9e248e3cb92ca32b4"
},
"downloads": -1,
"filename": "ovos_chromadb_embeddings_plugin-0.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "88daaec54320b1a139e957fd56a219b1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 4448,
"upload_time": "2024-10-25T22:14:27",
"upload_time_iso_8601": "2024-10-25T22:14:27.453164Z",
"url": "https://files.pythonhosted.org/packages/3a/5b/c2836b0962f174ed98a757c54844a3d81b69e8f7993b5dba2ea670af1f1f/ovos_chromadb_embeddings_plugin-0.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "451e0fdaa673c39a5c8835ba4b74bf1a7dae53b7ccae9bff3bcff4584256aff4",
"md5": "2a0b97c7d855ffce226aa5ea27490a36",
"sha256": "1fbc58a17071e9d62751751189b3310932ccf3c271fc1773ccf098aeba837cb9"
},
"downloads": -1,
"filename": "ovos-chromadb-embeddings-plugin-0.0.0.tar.gz",
"has_sig": false,
"md5_digest": "2a0b97c7d855ffce226aa5ea27490a36",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4059,
"upload_time": "2024-10-25T22:14:28",
"upload_time_iso_8601": "2024-10-25T22:14:28.936046Z",
"url": "https://files.pythonhosted.org/packages/45/1e/0fdaa673c39a5c8835ba4b74bf1a7dae53b7ccae9bff3bcff4584256aff4/ovos-chromadb-embeddings-plugin-0.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-25 22:14:28",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "TigreGotico",
"github_project": "ovos-chromadb-embeddings-plugin",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "ovos-plugin-manager",
"specs": []
},
{
"name": "numpy",
"specs": []
},
{
"name": "chromadb",
"specs": []
}
],
"lcname": "ovos-chromadb-embeddings-plugin"
}