Google Gemini
Google Gemini is Google's multimodal AI model family, providing powerful text generation and understanding capabilities.
Supported Models
Gemini Pro Series
- gemini-pro - General-purpose text model
- gemini-pro-vision - Multimodal model (supports images and text)
Gemini 1.5 Series
- gemini-1.5-pro - High-performance model
- gemini-1.5-flash - Fast response model
Gemini 1.0 Series
- gemini-1.0-pro - Original Gemini model
Configuration
Basic Configuration
Configure in config.yaml or ~/.bytebuddy/config.yaml:
yaml
models:
- name: "gemini-pro"
provider: "google"
model: "gemini-pro"
apiKey: "${GOOGLE_API_KEY}"
roles: ["chat"]
defaultCompletionOptions:
temperature: 0.7
maxTokens: 8192Multimodal Configuration
yaml
models:
- name: "gemini-vision"
provider: "google"
model: "gemini-pro-vision"
apiKey: "${GOOGLE_API_KEY}"
roles: ["chat"]
capabilities: ["image_input"]Multi-Model Configuration
yaml
models:
- name: "gemini-1.5-pro"
provider: "google"
model: "gemini-1.5-pro"
apiKey: "${GOOGLE_API_KEY}"
roles: ["chat", "edit"]
defaultCompletionOptions:
temperature: 0.7
maxTokens: 8192
- name: "gemini-1.5-flash"
provider: "google"
model: "gemini-1.5-flash"
apiKey: "${GOOGLE_API_KEY}"
roles: ["chat", "autocomplete"]
defaultCompletionOptions:
temperature: 0.5
maxTokens: 4096Configuration Fields
Required Fields
- name: Unique identifier for the model configuration
- provider: Set to
"google"or"gemini" - model: Model name
- apiKey: Google AI API key
Optional Fields
- roles: Model roles [
chat,edit,apply,autocomplete] - capabilities: Model capabilities [
image_input] - defaultCompletionOptions:
temperature: Control randomness (0-2)topP: Nucleus sampling parameter (0-1)topK: Sampling candidates count (1-100)maxTokens: Maximum output tokenscandidateCount: Number of candidates to generate (1-8)
Environment Variables
bash
# ~/.bashrc or ~/.zshrc
export GOOGLE_API_KEY="your-google-api-key"
# or
export GEMINI_API_KEY="your-gemini-api-key"Getting API Key
- Visit Google AI Studio
- Click "Create API Key"
- Select or create a Google Cloud project
- Copy the generated API key
- Save the key to environment variable
Use Case Configurations
Text Generation
yaml
models:
- name: "text-gen"
provider: "google"
model: "gemini-1.5-pro"
apiKey: "${GOOGLE_API_KEY}"
roles: ["chat"]
defaultCompletionOptions:
temperature: 0.7
maxTokens: 8192Code Generation
yaml
models:
- name: "code-gen"
provider: "google"
model: "gemini-1.5-pro"
apiKey: "${GOOGLE_API_KEY}"
roles: ["chat", "edit"]
defaultCompletionOptions:
temperature: 0.3
maxTokens: 4000Quick Response
yaml
models:
- name: "quick-response"
provider: "google"
model: "gemini-1.5-flash"
apiKey: "${GOOGLE_API_KEY}"
roles: ["chat", "autocomplete"]
defaultCompletionOptions:
temperature: 0.5
maxTokens: 2000Image Understanding
yaml
models:
- name: "vision"
provider: "google"
model: "gemini-pro-vision"
apiKey: "${GOOGLE_API_KEY}"
roles: ["chat"]
capabilities: ["image_input"]Troubleshooting
Common Errors
- API_KEY_INVALID: Check if API key is correct
- QUOTA_EXCEEDED: Quota limit reached, wait or upgrade quota
- MODEL_NOT_FOUND: Check if model name is correct
- SAFETY_ERROR: Input blocked by safety filters
- RATE_LIMIT_EXCEEDED: Rate limit reached
Debugging Steps
- Verify API key format and validity
- Check request format and parameters
- Monitor quota usage
- View error logs
- Confirm model availability
Rate Limits
Free Tier
- 15 requests per minute
- 1500 requests per day
- Input tokens: Depends on model
- Output tokens: Up to 8192
Paid Tier
- 60 requests per minute
- 15000 requests per day
- Higher concurrency limits
Best Practices
1. Security
- Use environment variables to store API keys
- Avoid hardcoding keys in code
- Rotate API keys regularly
- Monitor unusual usage
2. Performance Optimization
- Choose appropriate model for the task
- Use Flash model for faster responses
- Set reasonable maxTokens limits
- Implement request caching
3. Cost Control
- Monitor API usage
- Use free quota for development and testing
- Use Flash model for simple tasks
- Set quota alerts
4. Content Safety
- Gemini has built-in safety filtering
- Handle filtered responses
- Implement appropriate content moderation
Multilingual Support
Gemini supports multiple languages:
- Chinese (Simplified/Traditional)
- English
- Japanese
- Korean
- French
- German
- Spanish
- Many more...
No special configuration needed for multilingual input.
Model Comparison
| Feature | Gemini 1.5 Pro | Gemini 1.5 Flash | Gemini Pro Vision |
|---|---|---|---|
| Text Generation | Excellent | Good | Good |
| Response Speed | Medium | Fast | Medium |
| Context Length | Long | Medium | Medium |
| Image Understanding | ✅ | ❌ | ✅ |
| Cost | Medium | Low | Medium |