> ## Documentation Index
> Fetch the complete documentation index at: https://agno-v2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Gemini Embedder

> Generate Gemini embeddings with an explicit retrieval task type and vector dimension.

`GeminiEmbedder` defaults to `gemini-embedding-001`, 1536 dimensions, and the `RETRIEVAL_QUERY` task type.

```python gemini_embedder.py theme={null}
from math import sqrt

from agno.knowledge.embedder.google import GeminiEmbedder


def normalize(vector: list[float]) -> list[float]:
    magnitude = sqrt(sum(value * value for value in vector))
    return [value / magnitude for value in vector] if magnitude else vector


document_embedder = GeminiEmbedder(
    id="gemini-embedding-001",
    dimensions=1536,
    task_type="RETRIEVAL_DOCUMENT",
)
query_embedder = GeminiEmbedder(
    id="gemini-embedding-001",
    dimensions=1536,
    task_type="RETRIEVAL_QUERY",
)

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

print(f"Document dimensions: {len(document_vector)}")
print(f"Query dimensions: {len(query_vector)}")
```

> [!WARNING]
>
> `GeminiEmbedder` currently applies one configured `task_type` to every call. A single instance used by a vector database therefore applies the same task type to document insertion and query search. `gemini-embedding-001` distinguishes `RETRIEVAL_DOCUMENT` from `RETRIEVAL_QUERY`.

> [!NOTE]
>
> Google requires manual L2 normalization for `gemini-embedding-001` vectors shorter than 3072 dimensions. The example normalizes Agno's 1536-dimensional default. `GeminiEmbedder` returns the provider values unchanged.

## Run the Example

<Snippet file="create-venv-step.mdx" />

**1. Export the API key**

```bash theme={null}
export GOOGLE_API_KEY=your_google_api_key_here
```

**2. Install dependencies**

```bash theme={null}
uv pip install -U agno google-genai
```

**3. Run the example**

```bash theme={null}
python gemini_embedder.py
```

## Developer Resources

* [GeminiEmbedder reference](https://agno-v2.mintlify.site/reference/knowledge/embedder/gemini.md)
* [Embedders overview](https://agno-v2.mintlify.site/knowledge/concepts/embedder/overview.md)
* [Gemini embeddings guide](https://ai.google.dev/gemini-api/docs/embeddings)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.