Repository navigation
[0.9.2] - 2026-08-26
Pre-release
Pre-release
Added
HnswIndexandBruteForceIndex(inpyvisim.image_store): an approximate
HNSW graph and an exhaustive scan, both compiled into the package and built
in cosine space by default.ExternalSearchIndex(inpyvisim.image_store): searches through an index
built elsewhere.ExternalSearchIndex.from_faiss_index(index, vectors=None)
adapts any FAISS index without FAISS being a dependency of this library.InMemoryImageEmbeddingStore.retrieve_top_k_similarranks the gallery against
query images and returnsCandidatematches, both now owned by the store.InMemoryImageEmbeddingStore.save_to_disktakes the galleryvectorsto
write, for an index that hands back an approximation of what it was given.InMemoryImageEmbeddingStore.load_from_diskforwards keyword arguments:
search_index=...restores a store onto a rebuilt external index, and
anything else reaches the embedder.
Changed
⚠️ The store'sindex_typeparameter is nowsearch_index, which takes
"hnsw",Nonefor a brute-force scan, or anExternalSearchIndex. Its
quantizerparameter is nowspace, taking"cosine"(the default),"l2"
or"ip".⚠️ The scores ofCandidateandsearchare distances for the built-in
indexes, so lower is more similar. AnExternalSearchIndexreports whatever
its own metric produces.- The index owns the gallery vectors and the store keeps no second copy, so
store.embeddingsis read-only. Both built-in indexes decode it out of their
own storage, which makes every access a fresh copy. - Store files are written in a new layout; a store saved by an earlier version
cannot be loaded by this one.
Removed
⚠️ pyvisim.retrieval(ImageRetriever,ImageIndexand the FAISS-backed
IVF indexes) andpyvisim.functional. The store now covers both.⚠️ Thesearchextra, along with thefaiss-cpudependency behind it.