An easy-to-use vector database.
Project description
Powered by Dipamkara
Bhakti is
-
A light-weight vector database
-
Easy to use
-
Thread safe
-
Portable
-
Reliable
-
Suitable for small-sized datasets
Installation
-
From PYPI
pip install bhakti
-
From Github
Download .whl first then run
pip install ./bhakti-X.X.X-py3-none-any.whl
Quick Start
Before all, make sure you've successfully installed Bhakti :)
-
Run Bhakti Server
-
To begin, create a path for storing data
mkdir -p /path/to/db
-
Start server using shell command
-
Create configuration file (.yaml)
# bhakti.yaml DIMENSION: 1024 DB_PATH: /path/to/db DB_ENGINE: dipamkara # optional, default to dipamkara CACHED: false # optional, default to false HOST: 0.0.0.0 # optional, default to 0.0.0.0 PORT: 23860 # optional, default to 23860 EOF: <eof> # optional, default to <eof> TIMEOUT: 4.0 # optional, default to 4.0 seconds BUFFER_SIZE: 256 # optional, default to 256 bytes VERBOSE: false # optional, default to false
-
Run bhakti in shell
# bash bhakti ./bhakti.yaml
-
-
Start server using Python
# main.py from bhakti import BhaktiServer from bhakti.database import DBEngine if __name__ == '__main__': bhakti_server = BhaktiServer( dimension=1024, # required, only vectors with 1024 dimensions are acceptable db_path='/path/to/db', # required, path where stores data, portable db_engine=DBEngine.DIPAMKARA, # optional, default to dipamkara cached=False, # optional, default to false host='0.0.0.0', # optional, default to 0.0.0.0 port=23860, # optional, default to 23860 eof=b'<eof>', # optional, default to b'<eof>' timeout=4.0, # optional, default to 4.0 seconds buffer_size=256, # optional, default to 256 bytes verbose=False # optional, default to false ) # run server bhakti_server.run()
-
-
Interact With A Bhakti Client
Currently, Python(>=3.10) is supported
# main.py import asyncio import numpy as np from bhakti import BhaktiClient from bhakti.database import Metric from bhakti.database import DBEngine async def main(): client = BhaktiClient( server='127.0.0.1', # optional, default to 127.0.0.1 port=23860, # optional, default to 23860 eof=b'<eof>', # optional, default to b'<eof>' timeout=4.0, # optional, default to 4.0 seconds buffer_size=256, # optional, default to 256 bytes db_engine=DBEngine.DIPAMKARA, # optional, default to dipamkara verbose=False # optional, default to false ) vector = np.random.randn(1024) await client.create(vector=vector, document={'age': 31, 'gender': 'male'}) await client.create_index('age') await client.create_index('gender') results = await client.find_documents_by_vector_indexed( query='age <= 31 && gender != "female"', vector=vector, metric=Metric.EUCLIDEAN_Z_SCORE, top_k=3 ) print(results) if __name__ == '__main__': asyncio.run(main())
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bhakti-0.2.19.tar.gz.
File metadata
- Download URL: bhakti-0.2.19.tar.gz
- Upload date:
- Size: 51.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b5046a13db64bc830905f82cd47d6d1c061782dc2922cfd8001792d0ffec63cd
|
|
| MD5 |
feed079abd48afebc7325588ec9aafb8
|
|
| BLAKE2b-256 |
21b521d25bf14af1699a6408769f9b54a5847312d75a264ce5ae84f01ff28e5d
|
File details
Details for the file bhakti-0.2.19-py3-none-any.whl.
File metadata
- Download URL: bhakti-0.2.19-py3-none-any.whl
- Upload date:
- Size: 46.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b1bb4a2a246b47b6c03ee01efd378ef46ad195035ab34d3e5b4a1f56a8493a6a
|
|
| MD5 |
0828c5c2e366e5af2b6f7e2667239b96
|
|
| BLAKE2b-256 |
b413ac7f62b0c3ad475d8b93ed2b93a51e600099cdd4e74f8db16a89b84506ee
|