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
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5997fa8c1ab089d28122ccbc615a7c395d02b10077a79cc77b8f7a2a8580c45f |
|
MD5 | fb18f638f6478ab1b5f4307a1a13b983 |
|
BLAKE2b-256 | ac8ff39cbdeb001edcc0da8795b09779138afcab7c954c4b5d6304a98bd1b0c2 |
File details
Details for the file memvectordb_python-0.0.7-py2.py3-none-any.whl
.
File metadata
- Download URL: memvectordb_python-0.0.7-py2.py3-none-any.whl
- Upload date:
- Size: 6.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 523b6c27c20be98a027c3b4191cc1d52b18c2afc95f3d001fbe24c8bb13dc7e2 |
|
MD5 | ec5217f1839b79a5167c991bd9fea6f4 |
|
BLAKE2b-256 | 805e2dd743261471f86618190927f770253e1c092598d23ee83bbf98c824f2fb |