Skip to main content

Overview

The GeminiEmbedder provides embeddings using Google’s Gemini embedding models, supporting configurable batch sizes and automatic batch processing.

Installation

Basic Usage

Configuration

GeminiEmbedderConfig

str
default:"'text-embedding-001'"
Gemini embedding model to use. Options:
  • text-embedding-001 (default)
  • text-embedding-005
  • gemini-embedding-001
int
default:"1024"
Output embedding dimensionality. Passed to the API via output_dimensionality.
str | None
default:"None"
Google API key. If not provided, uses GOOGLE_API_KEY environment variable.

Constructor

GeminiEmbedderConfig | None
default:"None"
Configuration object. If None, creates default config.
genai.Client | None
default:"None"
Optional pre-configured genai.Client instance. If not provided, creates one from config.
int | None
default:"None"
Batch size for API requests. Defaults:
  • 1 for gemini-embedding-001 (API limitation)
  • 100 for other models

Supported Models

text-embedding-001 (Default)

  • Dimensions: 768 (native)
  • Best for: General purpose embeddings

text-embedding-005

  • Dimensions: 768 (native)
  • Best for: Latest improvements

gemini-embedding-001

  • Dimensions: 768 (native)
  • Best for: Backwards compatibility
  • Limitation: Batch size of 1 only
The gemini-embedding-001 model has a strict API limit of 1 instance per request. The embedder automatically sets batch_size=1 for this model.

Methods

create()

Generate a single embedding vector.
Parameters:
  • input_data (str | list[str] | Iterable[int] | Iterable[Iterable[int]]): Input to embed
Returns: list[float] - Embedding vector Raises:
  • ValueError: If no embeddings returned from API

create_batch()

Generate embeddings for multiple texts with automatic batching.
Parameters:
  • input_data_list (list[str]): List of texts to embed
Returns: list[list[float]] - List of embedding vectors Raises:
  • ValueError: If embeddings are empty or invalid
  • Exception: If batch processing fails

Batch Size Configuration

The embedder intelligently handles batch sizes:
Logic:

Dimension Configuration

The embedder uses Gemini’s output_dimensionality parameter:
This allows flexible dimension sizes:

Batch Processing with Fallback

The embedder implements robust batch processing with automatic fallback:
This ensures reliability even when batch requests fail:

Error Handling

Empty Embeddings

Batch Processing Errors

Validation

The embedder validates API responses:

Example: Large Dataset Processing

Use with Graphiti

Performance Tips

  1. Use appropriate batch size: Balance between efficiency and API limits
  2. Choose text-embedding-001 for general use: Good balance of quality and speed
  3. Set dimensions to native 768: Avoid unnecessary computation
  4. Monitor API quotas: Gemini has rate limits
  5. Use batch processing: Always prefer create_batch() for multiple inputs

Model Comparison

Troubleshooting

Batch Size Too Large

gemini-embedding-001 Batch Errors

Empty Embeddings

API Reference