Jina AI Provider
View SourceEmbedding generation using Jina AI's Embeddings API. Jina provides multilingual embeddings with 8K context length.
Requirements
- Jina AI API key from jina.ai/api (free tier available)
Configuration
{ok, State} = barrel_embed:init(#{
embedder => {jina, #{
api_key => <<"...">>, % or use env var
model => <<"jina-embeddings-v3">> % default
}}
}).Options
| Option | Type | Default | Description |
|---|---|---|---|
api_key | binary | JINA_API_KEY env var | API key |
model | binary | <<"jina-embeddings-v3">> | Model name |
url | binary | <<"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
| Model | Dimensions | Notes |
|---|---|---|
jina-embeddings-v3 | 1024 | Default, 8K context, multilingual |
jina-embeddings-v2-base-en | 768 | English |
jina-embeddings-v2-base-de | 768 | German |
jina-embeddings-v2-base-es | 768 | Spanish |
jina-embeddings-v2-base-zh | 768 | Chinese |
jina-colbert-v2 | 128 | Late interaction (per token) |
jina-clip-v1 | 768 | Multimodal (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.