Skip to main content

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

pyvectordb-0.1.4.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

pyvectordb-0.1.4-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

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

Hashes for pyvectordb-0.1.4.tar.gz
Algorithm Hash digest
SHA256 f0618d8294955fa187b7087b09f3600f299c62c980aefc12021b1744ad7bf71f
MD5 73a45ec6072998a6dc2f87cb02e0f722
BLAKE2b-256 36fd6c451b25717b6f6b99cc9c8c766557fc99bd5c723c81bf7cf94429474c01

See more details on using hashes here.

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

Hashes for pyvectordb-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7a39eb666dc9065251d762097c772f08ae54a477dab9ac4f40dfe663bdb5bebd
MD5 7542188e0aa7e4b2ed7ea53808e30869
BLAKE2b-256 7c530da59106c8e4d433bdba18dbfe923cc230d049c011a6a55cd97a4600a264

See more details on using hashes here.

Supported by

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