barrel_embed_local (barrel_embed v2.3.0)

View Source

Local Python embedding provider

Uses a Python port with sentence-transformers for CPU-based embeddings. No GPU required, runs entirely on CPU.

Dependencies (sentence-transformers) are installed automatically in the managed venv on first use.

Configuration

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

Supported Models

Any model from sentence-transformers or HuggingFace.

Common models: - "BAAI/bge-base-en-v1.5" - Default, 768 dimensions, good quality/speed - "BAAI/bge-small-en-v1.5" - 384 dimensions, faster - "BAAI/bge-large-en-v1.5" - 1024 dimensions, best quality - "sentence-transformers/all-MiniLM-L6-v2" - 384 dims, fast - "sentence-transformers/all-mpnet-base-v2" - 768 dims, high quality - "nomic-ai/nomic-embed-text-v1.5" - 768 dims, long context

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.