PyVecDB


NamePyVecDB JSON
Version 0.1.2 PyPI version JSON
download
home_pagehttps://github.com/tyronenorth/PyVecDB
SummaryA Python library for efficient similarity search using high-dimensional vectors.
upload_time2023-05-04 12:54:48
maintainer
docs_urlNone
authorYour Name
requires_python
license
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # PyVecDB

PyVecDB is a Python library that provides a simple way to store and search high-dimensional vectors using the Annoy approximate nearest neighbors search library. This library is useful for various applications, such as searching for similar items, clustering, or reducing search spaces in machine learning problems.

## Features

- Store high-dimensional vectors with associated metadata in an SQLite database
- Perform fast, approximate nearest neighbor searches using Annoy
- Easily add, update, and delete entries
- Serialize and deserialize vector data using MessagePack

## Installation

You can install PyVecDB using pip:

```bash
pip install pyvecdb
```

## Usage

Here's a simple example that demonstrates how to use PyVecDB:

```python
from datetime import datetime
from random import random
from pyvecdb import VectorDB, DataObject

# Initialize the database
db = VectorDB(db_path="vector_data.db")

# Create a new entry
entry = DataObject(timestamp=datetime.now(), message="Example message", vector=[random() for _ in range(3)])
db.add_entry(entry)

# Save the Annoy index
db.save_index("vector_index.ann")

# Load the Annoy index
db.load_index("vector_index.ann")

# Search for similar entries
entries = db.search_entries(vector=entry.vector, num_results=10)
```

## Documentation

For detailed documentation and examples, please visit the [official documentation](https://github.com/TyroneNorth/pyvecdb/blob/master/Docs.md).

## Contributing

Contributions are welcome! Please read our [contributing guidelines](CONTRIBUTING.md) to get started.

## License

PyVecDB is released under the [MIT License](LICENSE).

## Support

If you like my work consider buying me a coffee ☕ Support my work on Patreon or PayPal!

[![Support me on Patreon](https://img.shields.io/badge/patreon-support-%23e85b46.svg?logo=patreon&style=for-the-badge)](https://www.patreon.com/SimulatedDev)




            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/tyronenorth/PyVecDB",
    "name": "PyVecDB",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "",
    "author": "Your Name",
    "author_email": "north.tyronejr@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/c4/70/009077dde4a104ddb5c66c399e085c32a923545dcb8e30051e50d970a0cd/PyVecDB-0.1.2.tar.gz",
    "platform": null,
    "description": "# PyVecDB\r\n\r\nPyVecDB is a Python library that provides a simple way to store and search high-dimensional vectors using the Annoy approximate nearest neighbors search library. This library is useful for various applications, such as searching for similar items, clustering, or reducing search spaces in machine learning problems.\r\n\r\n## Features\r\n\r\n- Store high-dimensional vectors with associated metadata in an SQLite database\r\n- Perform fast, approximate nearest neighbor searches using Annoy\r\n- Easily add, update, and delete entries\r\n- Serialize and deserialize vector data using MessagePack\r\n\r\n## Installation\r\n\r\nYou can install PyVecDB using pip:\r\n\r\n```bash\r\npip install pyvecdb\r\n```\r\n\r\n## Usage\r\n\r\nHere's a simple example that demonstrates how to use PyVecDB:\r\n\r\n```python\r\nfrom datetime import datetime\r\nfrom random import random\r\nfrom pyvecdb import VectorDB, DataObject\r\n\r\n# Initialize the database\r\ndb = VectorDB(db_path=\"vector_data.db\")\r\n\r\n# Create a new entry\r\nentry = DataObject(timestamp=datetime.now(), message=\"Example message\", vector=[random() for _ in range(3)])\r\ndb.add_entry(entry)\r\n\r\n# Save the Annoy index\r\ndb.save_index(\"vector_index.ann\")\r\n\r\n# Load the Annoy index\r\ndb.load_index(\"vector_index.ann\")\r\n\r\n# Search for similar entries\r\nentries = db.search_entries(vector=entry.vector, num_results=10)\r\n```\r\n\r\n## Documentation\r\n\r\nFor detailed documentation and examples, please visit the [official documentation](https://github.com/TyroneNorth/pyvecdb/blob/master/Docs.md).\r\n\r\n## Contributing\r\n\r\nContributions are welcome! Please read our [contributing guidelines](CONTRIBUTING.md) to get started.\r\n\r\n## License\r\n\r\nPyVecDB is released under the [MIT License](LICENSE).\r\n\r\n## Support\r\n\r\nIf you like my work consider buying me a coffee \u00e2\u02dc\u2022 Support my work on Patreon or PayPal!\r\n\r\n[![Support me on Patreon](https://img.shields.io/badge/patreon-support-%23e85b46.svg?logo=patreon&style=for-the-badge)](https://www.patreon.com/SimulatedDev)\r\n\r\n\r\n\r\n",
    "bugtrack_url": null,
    "license": "",
    "summary": "A Python library for efficient similarity search using high-dimensional vectors.",
    "version": "0.1.2",
    "project_urls": {
        "Homepage": "https://github.com/tyronenorth/PyVecDB"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c7e62f84b078c6c759bb4da20d7fece9be90bb8718fb5b8b1c0eb9bd4dddc5e8",
                "md5": "61b6c59243a59c291927fca77e02971c",
                "sha256": "7c4a95a84eb7273978e4976d12bef67b7755b94b399777c93eca113a2117792e"
            },
            "downloads": -1,
            "filename": "PyVecDB-0.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "61b6c59243a59c291927fca77e02971c",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 7641,
            "upload_time": "2023-05-04T12:54:45",
            "upload_time_iso_8601": "2023-05-04T12:54:45.103464Z",
            "url": "https://files.pythonhosted.org/packages/c7/e6/2f84b078c6c759bb4da20d7fece9be90bb8718fb5b8b1c0eb9bd4dddc5e8/PyVecDB-0.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c470009077dde4a104ddb5c66c399e085c32a923545dcb8e30051e50d970a0cd",
                "md5": "c87009b638095d2d7f0b184082f12f1d",
                "sha256": "2384cc27d9410375103f5cfd566c3fa7a139d8f587d9f0048410488e16d730bb"
            },
            "downloads": -1,
            "filename": "PyVecDB-0.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "c87009b638095d2d7f0b184082f12f1d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 6296,
            "upload_time": "2023-05-04T12:54:48",
            "upload_time_iso_8601": "2023-05-04T12:54:48.267478Z",
            "url": "https://files.pythonhosted.org/packages/c4/70/009077dde4a104ddb5c66c399e085c32a923545dcb8e30051e50d970a0cd/PyVecDB-0.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-05-04 12:54:48",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "tyronenorth",
    "github_project": "PyVecDB",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pyvecdb"
}
        
Elapsed time: 0.06510s