VecEmbedStore
This is a thin wrapper around LanceDb (VectorDb) meant to provide a means to create/store/query embeddings in a LanceDb without the need to grok the lower level Arrow/ColumnarDb tech.
Usage example
Add VecEmbedStore to dependencies
# If you want to select a Embedding engine other than the default, you currently need to add fastembed
# This is an issue open to remove this requirement: https://github.com/samkeen/vec-embed-store/issues/9
# [optional]
use PathBuf;
use ;
use BGESmallENV15;
async
Architecture
EmbedStore encapsulates the Embedding engine and the VectorDb, providing a simple interface to store and query text blocks. Currently, FastEmbed-rs is used for embeddings and LanceDb is used for the vector Db
+----------------------------------------------------------+
| VecEmbedStore |
| |
| +-------------------+ +--------------+ |
| | EmbeddingEngine | | VectorDB | |
| +-------------------+ +--------------+ |
| |
+----------------------------------------------------------+
^ |
| store | similarity search
| v
+--------------+ +-----------------------+
| TextBlock | | ComparedTextBlock |
+--------------+ +-----------------------+