Python client for Lantern
Project description
Python Client for Lantern
Install
pip install lantern-client
Basic usage
from lantern import SyncClient
DB_URL="postgresql://postgres@localhost:5432/lantern"
client = SyncClient(url=DB_URL, table_name="small_world", dimensions=3, distance_type="l2sq", m=12, ef=64, ef_construction=64)
try:
client.drop()
except:
pass
client.create_table()
client.bulk_insert([
("1", [0,0,0], { "name": "a" }),
("2", [0,1,0], { "name": "b" }),
("3", [0,0,1], { "name": "c" })
])
client.create_index()
# Select specific fields
vec_by_id = client.get_by_id(id="1", select_fields=["id", "metadata"])
assert(vec_by_id.embedding == None)
# Get by id
vec_by_id = client.get_by_id("1")
assert(vec_by_id.id == "1")
# Get by ids
vectors_by_ids = client.get_by_ids(["1", "3"])
assert(len(vectors_by_ids) == 2)
assert(vectors_by_ids[0].id == "1")
assert(vectors_by_ids[1].id == "3")
# Insert one
client.upsert(("4", [1,0,0], { "name": "d" }))
# Update
client.update_by_id(id="4", metadata={ "name": "4" })
# Get row count
row_count = client.count()
assert(row_count == 4)
vec_by_id = client.get_by_id(id="4", select_fields=["id", "embedding", "metadata"])
assert(vec_by_id.metadata.name == "4")
vectors = client.search(query_id="4")
assert(len(vectors) == row_count)
assert(vectors[0].id == "4")
assert(vectors[0].distance == 0)
vectors = client.search(query_embedding=vec_by_id.embedding, limit=2, filter={"name": "a"}, select_fields=["id"])
assert(len(vectors) == 1)
assert(vectors[0].id == "1")
assert(vectors[0].metadata == None)
assert(vectors[0].embedding == None)
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
lantern-client-0.0.5.tar.gz
(9.1 kB
view details)
Built Distribution
File details
Details for the file lantern-client-0.0.5.tar.gz
.
File metadata
- Download URL: lantern-client-0.0.5.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e29a3bb0c439d273d2587dc07d0941e562cd1c8de02a543e955c0b19fe835cc |
|
MD5 | 87d7650d6db697e4c703300a00c4c0c3 |
|
BLAKE2b-256 | 8de440c5caa754fcac6e57b6ebdc75fe8033f431cad81a47709d9eafc3575895 |
File details
Details for the file lantern_client-0.0.5-py3-none-any.whl
.
File metadata
- Download URL: lantern_client-0.0.5-py3-none-any.whl
- Upload date:
- Size: 9.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cd9b65e1da179befd82537baacbc7a0781c1c9388269a0faccfc86994e6ce20 |
|
MD5 | 82d8fb4a2c1bdb6ef2d7a391589efe16 |
|
BLAKE2b-256 | 87a3d0e8b606250a9e899c9f5295f58e4aa9ca7df409b9f51467d37275f64ed0 |