Overview
TheGeminiEmbedder 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-005gemini-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:
1forgemini-embedding-001(API limitation)100for 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.input_data(str | list[str] | Iterable[int] | Iterable[Iterable[int]]): Input to embed
list[float] - Embedding vector
Raises:
ValueError: If no embeddings returned from API
create_batch()
Generate embeddings for multiple texts with automatic batching.input_data_list(list[str]): List of texts to embed
list[list[float]] - List of embedding vectors
Raises:
ValueError: If embeddings are empty or invalidException: If batch processing fails
Batch Size Configuration
The embedder intelligently handles batch sizes:Dimension Configuration
The embedder uses Gemini’soutput_dimensionality parameter:
Batch Processing with Fallback
The embedder implements robust batch processing with automatic fallback:Error Handling
Empty Embeddings
Batch Processing Errors
Validation
The embedder validates API responses:Example: Large Dataset Processing
Example: Semantic Search
Use with Graphiti
Performance Tips
- Use appropriate batch size: Balance between efficiency and API limits
- Choose text-embedding-001 for general use: Good balance of quality and speed
- Set dimensions to native 768: Avoid unnecessary computation
- Monitor API quotas: Gemini has rate limits
- Use batch processing: Always prefer
create_batch()for multiple inputs