Jina AI Provider

View Source

Embedding generation using Jina AI's Embeddings API. Jina provides multilingual embeddings with 8K context length.

Requirements

Configuration

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

Options

OptionTypeDefaultDescription
api_keybinaryJINA_API_KEY env varAPI key
modelbinary<<"jina-embeddings-v3">>Model name
urlbinary<<"https://api.jina.ai/v1">>API endpoint

Using Environment Variable

Set JINA_API_KEY instead of passing in config:

export JINA_API_KEY=jina_...
{ok, State} = barrel_embed:init(#{
    embedder => {jina, #{}}  % uses env var
}).

Supported Models

ModelDimensionsNotes
jina-embeddings-v31024Default, 8K context, multilingual
jina-embeddings-v2-base-en768English
jina-embeddings-v2-base-de768German
jina-embeddings-v2-base-es768Spanish
jina-embeddings-v2-base-zh768Chinese
jina-colbert-v2128Late interaction (per token)
jina-clip-v1768Multimodal (text + images)

Language-Specific Models

For single-language use cases, language-specific models may perform better:

%% German documents
{ok, State} = barrel_embed:init(#{
    embedder => {jina, #{model => <<"jina-embeddings-v2-base-de">>}}
}).

%% Chinese documents
{ok, State} = barrel_embed:init(#{
    embedder => {jina, #{model => <<"jina-embeddings-v2-base-zh">>}}
}).

Example

%% Initialize
{ok, State} = barrel_embed:init(#{
    embedder => {jina, #{
        api_key => <<"jina_...">>,
        model => <<"jina-embeddings-v3">>
    }}
}).

%% 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 Jina AI?

  • 8K context length (longest among embedding providers)
  • Free tier available (1M tokens/month)
  • Multilingual support (100+ languages)
  • Language-specific models available
  • OpenAI-compatible API format

Pricing

Jina offers a generous free tier. See jina.ai/api for pricing details.