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.3.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.3.tar.gz.

File metadata

File hashes

Hashes for philiprehberger_embedding_store-0.1.3.tar.gz
Algorithm Hash digest
SHA256 db78830a67b14cf89ebae019c3f9ecf86d9bb8a8e4520a774dfe162cddb3ed6f
MD5 f0f3a0c86fe68f28f03c683d9efda130
BLAKE2b-256 8e55903685cfb4abb08f29b18671ef2574a7d2949740e25834ea157b1efb1337

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for philiprehberger_embedding_store-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d9985d54de18f820f9dbf7071cc5e45b1e9ffd48c97667d5101381772e7ebe8a
MD5 cb55becbe366a30cafdd793133230c1b
BLAKE2b-256 f133a69ce5f83c5b7bed91ce333204344abf6830f273550bef9403cb4e871784

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