# EmbedFlow

A Python library for migrating a vector index to a new embedding model progressively, serving search from the existing index while target vectors are computed and cached in the background, instead of re-embedding the whole corpus before the new model can serve any traffic.

EmbedFlow lets a vector search system change its embedding model without a period where nothing can be served: queries are still answered from an existing index using the source embedding model, its top candidates are then re-scored under the target model, and the target-model vectors for documents actually being queried are computed and cached by a background materializer so later repeat queries become fully served by the target model over time. This rests on the observation that two different embedding spaces can still preserve useful retrieval neighborhoods even though their raw vectors are not directly comparable.

It integrates with FAISS, Qdrant, pgvector, Pinecone, Milvus and Weaviate as index backends, and includes a command-line tool and a FastAPI service; a migration-analysis command estimates the retrieval gap between a source and target model, or a finite-tail analysis when no native target index exists yet, and a bundled deterministic demo with a browser dashboard needs no paid service or model download.

It is a Python package installable from PyPI with optional per-backend extras.

Website: https://github.com/arnsri33/embedflow
