Mistral Provider

View Source

Embedding generation using Mistral AI's Embeddings API. Mistral provides high-quality embeddings with EU data residency.

Requirements

Configuration

{ok, State} = barrel_embed:init(#{
    embedder => {mistral, #{
        api_key => <<"...">>,                    % or use env var
        model => <<"mistral-embed">>             % default
    }}
}).

Options

OptionTypeDefaultDescription
api_keybinaryMISTRAL_API_KEY env varAPI key
modelbinary<<"mistral-embed">>Model name
urlbinary<<"https://api.mistral.ai/v1">>API endpoint

Using Environment Variable

Set MISTRAL_API_KEY instead of passing in config:

export MISTRAL_API_KEY=your-api-key
{ok, State} = barrel_embed:init(#{
    embedder => {mistral, #{}}  % uses env var
}).

Supported Models

ModelDimensionsNotes
mistral-embed1024Default, multilingual

Example

%% Initialize
{ok, State} = barrel_embed:init(#{
    embedder => {mistral, #{
        api_key => <<"your-api-key">>,
        model => <<"mistral-embed">>
    }}
}).

%% Generate embeddings
{ok, Vec} = barrel_embed:embed(<<"Machine learning is fascinating">>, State).

%% Batch (more efficient for multiple texts)
{ok, Vecs} = barrel_embed:embed_batch([
    <<"Document about AI">>,
    <<"Document about databases">>,
    <<"Document about networking">>
], State).

Why Mistral?

  • EU-based company (data residency compliance)
  • OpenAI-compatible API format
  • Competitive pricing
  • Strong multilingual support

Pricing

See mistral.ai/pricing for current rates.