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

Development

pip install -e .
python -m pytest tests/ -v

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.2.tar.gz (4.4 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.2.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_embedding_store-0.1.2.tar.gz
Algorithm Hash digest
SHA256 0dc283bc8401b320bc7ff8a5cf6e08c463c76298417d6459ff92b089e4c256b9
MD5 06546933a3d917af318604923f577a2d
BLAKE2b-256 af53e8d08057cd96cac7d4baafb947f1c959ade8a15090504d97be385884be68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for philiprehberger_embedding_store-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 3cc3afb7de35d3d6f0195bc071b4689848a0e41a9260ddfc4e09036d4255c0c9
MD5 5ae06fdaec3ba27441b9d1e38773a11e
BLAKE2b-256 8c09b3b4a8529db77c35af91e46cbc64fd38673965c1c31e37c160efe121a8bc

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