barrel_embed_ollama (barrel_embed v2.3.0)

View Source

Ollama embedding provider

Uses Ollama's local API for embedding generation. Requires Ollama to be running locally.

Requirements

   # Install Ollama from https://ollama.ai
   # Pull an embedding model:
   ollama pull nomic-embed-text

Configuration

   Config = #{
       url => <<"http://localhost:11434">>,   %% Ollama API URL (default)
       model => <<"nomic-embed-text">>,       %% Model name (default, 768 dims)
       timeout => 30000                       %% Timeout in ms (default)
   }.

Supported Models

Any Ollama embedding model. Popular choices:

- <<"nomic-embed-text">> - Default, 768 dims, general purpose - <<"mxbai-embed-large">> - 1024 dims, high quality - <<"all-minilm">> - 384 dims, fast - <<"snowflake-arctic-embed">> - 1024 dims, multilingual

Summary

Functions

Check if Ollama is available.

Get dimension for this provider.

Generate embedding for a single text.

Generate embeddings for multiple texts. Ollama /api/embed supports batch natively.

Initialize the provider.

Provider name.

Functions

available(Config)

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

Check if Ollama 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. Ollama /api/embed supports batch natively.

init(Config)

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

Initialize the provider.

name()

-spec name() -> atom().

Provider name.