Simple Wrapper for vector database in Python with minimal support for CRUD and retrieve.
Project description
PyVectorDB
Simple Wrapper for vector database in Python with minimal support for CRUD and retrieve.
Installation
pip install pyvectordb
Usage Example
PGVector
PGvector is an extension for PostgreSQL that allows the storage, indexing, and querying of vector embeddings. It is designed to support vector similarity search, which is useful in machine learning applications like natural language processing, image recognition, and recommendation systems. By storing vector embeddings as a data type, PGvector enables efficient similarity searches using distance metrics such as cosine similarity, Euclidean distance, inner product, etc.
import os
from pyvectordb import PgvectorDB, Vector
from pyvectordb.distance_function import DistanceFunction
v = Vector(
embedding=[2., 2., 1.]
)
print("VECTOR", v)
pgv = PgvectorDB(
db_user=os.getenv("PG_USER"),
db_password=os.getenv("PG_PASSWORD"),
db_host=os.getenv("PG_HOST"),
db_port=os.getenv("PG_PORT"),
db_name=os.getenv("PG_NAME"),
collection=os.getenv("PG_COLLECTION"),
distance_function=DistanceFunction.L2,
)
new_v = pgv.create_vector(v)
print("CREATE_VECTOR", new_v)
new_v = pgv.read_vector(new_v.id)
print("READ_VECTOR", new_v)
new_v = pgv.update_vector(new_v)
print("UPDATE_VECTOR", new_v)
for x in pgv.get_neighbor_vectors(v, 5):
print(f"{x}")
pgv.delete_vector(new_v.id)
print("DELETE_VECTOR")
Qdrant
Qdrant “is a vector similarity search engine that provides a production-ready service with a convenient API to store, search, and manage points (i.e. vectors) with an additional payload.” You can think of the payloads as additional pieces of information that can help you hone in on your search and also receive useful information that you can give to your users.
Using Qdrant in pyvectordb is simple, you only need to change the client to QdrantDB
from pyvectordb import QdrantDB
qv = QdrantDB(
host=os.getenv("Q_HOST"),
api_key=os.getenv("Q_API_KEY"),
port=os.getenv("Q_PORT"),
collection=os.getenv("Q_COLLECTION"),
vector_size=int(os.getenv("Q_SIZE")),
distance_function=DistanceFunction.COSINE,
)
Chroma DB
Chroma is the AI-native open-source vector database. Chroma makes it easy to build LLM apps by making knowledge, facts, and skills pluggable for LLMs.
from pyvectordb import ChromaDB
ch = ChromaDB(
host=os.getenv("CH_HOST"),
port=os.getenv("CH_PORT"),
auth_provider=os.getenv("CH_AUTH_PROVIDER"),
auth_credentials=os.getenv("CH_AUTH_CREDENTIALS"),
collection_name=os.getenv("CH_COLLECTION_NAME"),
distance_function=DistanceFunction.L2,
)
Support or Anything
Reach me out on email razifrizqullah@gmail.com
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
File details
Details for the file pyvectordb-0.1.4.tar.gz
.
File metadata
- Download URL: pyvectordb-0.1.4.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.6 Linux/5.15.153.1-microsoft-standard-WSL2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f0618d8294955fa187b7087b09f3600f299c62c980aefc12021b1744ad7bf71f |
|
MD5 | 73a45ec6072998a6dc2f87cb02e0f722 |
|
BLAKE2b-256 | 36fd6c451b25717b6f6b99cc9c8c766557fc99bd5c723c81bf7cf94429474c01 |
File details
Details for the file pyvectordb-0.1.4-py3-none-any.whl
.
File metadata
- Download URL: pyvectordb-0.1.4-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.6 Linux/5.15.153.1-microsoft-standard-WSL2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a39eb666dc9065251d762097c772f08ae54a477dab9ac4f40dfe663bdb5bebd |
|
MD5 | 7542188e0aa7e4b2ed7ea53808e30869 |
|
BLAKE2b-256 | 7c530da59106c8e4d433bdba18dbfe923cc230d049c011a6a55cd97a4600a264 |