Jina Embedder

Generate Jina retrieval embeddings with explicit passage and query tasks.

JinaEmbedder defaults to jina-embeddings-v3 with 1024 dimensions. Pass Jina API fields through request_params.

from agno.knowledge.embedder.jina import JinaEmbedder

passage_embedder = JinaEmbedder(
    request_params={"task": "retrieval.passage"},
)
query_embedder = JinaEmbedder(
    request_params={"task": "retrieval.query"},
)

passage_vector = passage_embedder.get_embedding(
    "The quick brown fox jumps over the lazy dog."
)
query_vector = query_embedder.get_embedding("Which animal jumps?")

print(f"Passage dimensions: {len(passage_vector)}")
print(f"Query dimensions: {len(query_vector)}")

JinaEmbedder applies one request_params dictionary to every call. A single instance used by a vector database therefore applies the same task to document insertion and query search. Jina's asymmetric retrieval tasks distinguish retrieval.passage from retrieval.query.

Run the Example

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Export the API key

export JINA_API_KEY=your_jina_api_key_here

Install dependencies

uv pip install -U agno aiohttp requests

Run the example

python jina_embedder.py

Developer Resources