Overview
TheGeminiClient provides integration with Google’s Gemini language models, including Gemini 3.0 Flash/Pro and Gemini 2.5 series with support for thinking configurations.
Installation
Basic Usage
Constructor
LLMConfig | None
default:"None"
Configuration object. If
None, creates default config.bool
default:"False"
Enable response caching (stored in
./llm_cache)int | None
default:"None"
Maximum output tokens. If not set, uses model-specific defaults (see table below).
types.ThinkingConfig | None
default:"None"
Optional thinking configuration for Gemini 2.5+ models that support enhanced reasoning.
genai.Client | None
default:"None"
Optional pre-configured
genai.Client instance. If not provided, creates one from config.Supported Models
The client supports all Gemini models with model-specific max token limits:Gemini 3 (Preview) - 64K output
gemini-3-pro-previewgemini-3-flash-preview(default)
Gemini 2.5 - 64K output
gemini-2.5-progemini-2.5-flashgemini-2.5-flash-lite(64K)
Gemini 2.0 - 8K output
gemini-2.0-flashgemini-2.0-flash-lite
Gemini 1.5 - 8K output
gemini-1.5-progemini-1.5-flashgemini-1.5-flash-8b
Max Tokens Resolution
Similar to AnthropicClient, max tokens are resolved with the following precedence:- Explicit parameter to
generate_response() - Instance max_tokens set during initialization
- Model-specific maximum from the mapping above
- Default fallback: 8192 tokens
Thinking Configuration
Gemini 2.5+ models support enhanced reasoning modes:Only use
thinking_config with Gemini 2.5+ models. Earlier models do not support this feature.Structured Output via Schema
Gemini uses JSON schema for structured outputs:Model Size Selection
Usemodel_size parameter to automatically select between models:
Error Handling
Safety Blocks
Gemini may block content for safety reasons:Rate Limits
- “rate limit” in error message
- “quota” in error message
- “resource_exhausted” in error message
- HTTP 429 status code
Automatic Retries
The client retries up to 2 times for:- JSON parsing errors
- Validation errors
- Transient API failures
JSON Salvage
If output is truncated or malformed, the client attempts to salvage partial JSON:Token Usage Tracking
The client extracts token counts from Gemini’s response:System Instructions
System messages and schema instructions are combined:Example: Batch Processing
Performance Tips
- Use Flash variants for speed:
gemini-3-flash-previewis much faster than Pro - Set appropriate max_tokens: Don’t request 64K if you only need 2K
- Use model_size=ModelSize.small for simple tasks
- Enable caching for repeated queries
- Monitor safety blocks: Adjust prompts if frequently blocked
Prompt Feedback
Check if your prompt was blocked:SAFETY: Content policy violationOTHER: Other blocking reason