Skip to main content

In-memory vector store with cosine similarity search

Project description

philiprehberger-embedding-store

In-memory vector store with cosine similarity search.

Install

pip install philiprehberger-embedding-store

Usage

from philiprehberger_embedding_store import VectorStore

store = VectorStore(dimensions=1536)

# Add vectors with metadata
store.add("doc1", embedding=[0.1, 0.2, ...], metadata={"title": "First doc"})
store.add("doc2", embedding=[0.3, 0.1, ...], metadata={"title": "Second doc"})

# Search by similarity
results = store.search(query_embedding=[0.15, 0.18, ...], top_k=5)
for result in results:
    print(f"{result.id}: score={result.score:.3f}, {result.metadata}")

# Filter by metadata
results = store.search(query, top_k=10, filter=lambda m: m["category"] == "tech")

# Minimum score threshold
results = store.search(query, min_score=0.7)

# Persistence
store.save("vectors.json")
loaded = VectorStore.load("vectors.json")

# Batch operations
store.add_many([("id1", emb1, meta1), ("id2", emb2, meta2)])

API

Method Description
add(id, embedding, metadata?) Add a vector
add_many(items) Batch add
search(query, top_k?, metric?, filter?, min_score?) Similarity search
get(id) Get entry by ID
delete(id) Delete entry
update_metadata(id, metadata) Update metadata
save(path) Save to JSON
VectorStore.load(path) Load from JSON
clear() Remove all entries
ids() List all IDs

Distance Metrics

  • "cosine" (default) — cosine similarity
  • "dot" — dot product

License

MIT

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

philiprehberger_embedding_store-0.1.1.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file philiprehberger_embedding_store-0.1.1.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_embedding_store-0.1.1.tar.gz
Algorithm Hash digest
SHA256 a02038210df471ec690c9b768423a21d8fa1c144abece9832007d966a7fa9ecf
MD5 ca0688fafdd9a1c7a943f9e203f7ec40
BLAKE2b-256 e77543a9867ed689cc80faa077cdb2016c0c620a8d4340595ddcd8d92717e45c

See more details on using hashes here.

File details

Details for the file philiprehberger_embedding_store-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for philiprehberger_embedding_store-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6a0eb7071d2199653c2ff4761fb4988a48a1eb5274a389e3d03af104ff0c6e37
MD5 5525c79b2561708bd2b8b19320d0abf9
BLAKE2b-256 a00426cda3b00e7b15c46a8c46d1db336104cb1314797e4910a06de4c7ebd5dd

See more details on using hashes here.

Supported by

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