barrel_embed_fastembed (barrel_embed v2.3.0)

View Source

FastEmbed embedding provider

Uses FastEmbed (ONNX-based) for lightweight, fast embeddings. Lighter alternative to sentence-transformers with similar quality.

Dependencies (fastembed) are installed automatically in the managed venv on first use.

Configuration

   Config = #{
       model => "BAAI/bge-small-en-v1.5",       %% Model name (default, 384 dims)
       python => "python3",                     %% Python executable (default)
       timeout => 120000                        %% Timeout in ms (default)
   }.

Advantages over sentence-transformers

- Smaller install size (~100MB vs ~2GB+) - No PyTorch dependency - Uses ONNX Runtime for optimized inference - Similar embedding quality

Summary

Functions

Check if provider is available.

Get dimension for this provider.

Generate embedding for a single text.

Generate embeddings for multiple texts.

Initialize the provider. Starts the Python port server.

Provider name.

Functions

available(Config)

-spec available(map()) -> boolean().

Check if provider is available.

dimension(Config)

-spec dimension(map()) -> pos_integer().

Get dimension for this provider.

embed(Text, Config)

-spec embed(binary(), map()) -> {ok, [float()]} | {error, term()}.

Generate embedding for a single text.

embed_batch(Texts, Config)

-spec embed_batch([binary()], map()) -> {ok, [[float()]]} | {error, term()}.

Generate embeddings for multiple texts.

init(Config)

-spec init(map()) -> {ok, map()} | {error, term()}.

Initialize the provider. Starts the Python port server.

name()

-spec name() -> atom().

Provider name.