Skip to main content

memvectordb python client.

Project description

memvectorDB-python client

Getting Started

pip install memvectordb-python

VectorStore

from memvectordb.vectorstore import MemVectorDBVectorStore

Using Sentence Transformers

base_url = "vectordb-url"
embedding_provider = "sentence_transformers"  
embedding_model = "multi-qa-MiniLM-L6-cos-v1"  # Specific embedding model name 

collection_name = "collection_name"
distance = "distance-metric"        # either 'cosine', 'euclidean' or 'dot'

vector_store = MemVectorDBVectorStore(
    base_url=base_url,
    embedding_provider=embedding_provider,
    embedding_model=embedding_model,
)

vector_store.create_collection(collection_name, distance)

embedding_model_client = vector_store.initialize_embedding_model_client()

Using OpenAI Embeddings

base_url = "base-vectordb-url"
embedding_provider = "openai"  
embedding_model = "text-embedding-3-small"  # Specific embedding model name 

collection_name = "collection_name"
distance = "distance-metric"        # either 'cosine', 'euclidean' or 'dot'

vector_store = MemVectorDBVectorStore(
    base_url=base_url,
    embedding_provider=embedding_provider,
    embedding_model=embedding_model,
    api_key= "openai-api-key"
)

vector_store.create_collection(collection_name, distance)

embedding_model_client = vector_store.initialize_embedding_model_client()
# Upserting texts
text = "First text string"
vector_store.add_texts(collection_name, text, embedding_model_client)


# Upserting a text document
def load_doc(file_url):
    pages = []
    file_path = Path(file_url)

    file_extension = file_path.suffix
    if file_extension == ".pdf":
        loader = PyPDFLoader(file_url)
        pages = loader.load_and_split()
    return pages

doc = load_doc("https://arxiv.org/pdf/1706.03762.pdf")
vector_store.add_documents(collection_name, doc, embedding_model_client, streaming=True) 
# Streaming: configures how the pages are upserted into the DB ie batch or stream.

To Query Vectors.

k = "number-of-items-to query"
collection_name = "collection_name"
query_vector = "query_vector"

# example of query_vector: [0.32654, 0.24423, 0.7655] 
# ensure the dimensions match the collection's dimensions
vector_store.query(collection_name, k, query_vector)

Using Requests

pip install memvectordb-python

To Initialize the Client

from memvectordb.collection import Collection

client = MemVectorDB(base_url = "base-url") # default http://127.0.0.1:8000

To Create Collection

# To create a new collection
collection_name = "collection_name"
dimension = "dimension-of-vectors-to-be-stored"
distance = "distance-metric" # either 'cosine', 'euclidean' or 'dot'
collection = client.create_collection(collection_name, dimension, distance)

To Get Collection

collection_name = "collection_name"
collection = client.get_collection(collection_name)

To Delete collection

collection_name = "collection_name"
collection = client.delete_collection(collection_name)

To Insert Vectors(streaming)

collection_name = "collection_name"
embedding = {
    "id": {
        "unique_id": "1"
    },
    "vector": [0.14, 0.316, 0.433],
    "metadata": {
        "key1": "value1",
        "key2": "value2"
    }
}
client.insert_embeddings(
    collection_name=collection_name, 
    vector_id=embedding["id"]['unique_id'], 
    vector=embedding["vector"], 
    metadata=embedding["metadata"]
)

To Insert Vectors(batch)

collection_name = "collection_name"
embeddings = [
    {
        "id": {
            "unique_id": "0"
        },
        "vector": [0.14, 0.316, 0.433],
        "metadata": {
            "key1": "value1",
            "key2": "value2"
        }
    },
    {
        "id": {
            "unique_id": "1"
        },
        "vector": [0.27, 0.531, 0.621],
        "metadata": {
            "key1": "value3",
            "key2": "value4"
        }
    },
    {
        "id": {
            "unique_id": "2"
        },
        "vector": [0.27, 0.531, 0.621],
        "metadata": {
            "key1": "value3",
            "key2": "value4"
        }
    }
]

client.batch_insert_embeddings(
        collection_name=collection_name, 
        embeddings = embeddings
    )

To Query Vectors.

k = "number-of-items-to query"
collection_name = "collection_name"
query_vector = "query_vector"

# example of query_vector: [0.32654, 0.24423, 0.7655] 
# ensure the dimensions match the collection's dimensions
client.query(collection_name, k, query_vector)

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

memvectordb_python-0.0.7.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

memvectordb_python-0.0.7-py2.py3-none-any.whl (6.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file memvectordb_python-0.0.7.tar.gz.

File metadata

  • Download URL: memvectordb_python-0.0.7.tar.gz
  • Upload date:
  • Size: 4.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for memvectordb_python-0.0.7.tar.gz
Algorithm Hash digest
SHA256 5997fa8c1ab089d28122ccbc615a7c395d02b10077a79cc77b8f7a2a8580c45f
MD5 fb18f638f6478ab1b5f4307a1a13b983
BLAKE2b-256 ac8ff39cbdeb001edcc0da8795b09779138afcab7c954c4b5d6304a98bd1b0c2

See more details on using hashes here.

File details

Details for the file memvectordb_python-0.0.7-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for memvectordb_python-0.0.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 523b6c27c20be98a027c3b4191cc1d52b18c2afc95f3d001fbe24c8bb13dc7e2
MD5 ec5217f1839b79a5167c991bd9fea6f4
BLAKE2b-256 805e2dd743261471f86618190927f770253e1c092598d23ee83bbf98c824f2fb

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