use crate::tokenizers::registry::ModelConfig;
pub fn google_models() -> Vec<ModelConfig> {
vec![
ModelConfig {
name: "gemini-2.5-pro".to_string(),
encoding: "gemini-gemma3".to_string(),
context_window: 1_000_000,
description: "Pro model, 1M context (GA, deprecated June 2026)".to_string(),
aliases: vec![
"gemini-pro".to_string(),
"gemini-2-pro".to_string(),
"gemini-2.5".to_string(),
"google/gemini-pro".to_string(),
],
},
ModelConfig {
name: "gemini-2.5-flash".to_string(),
encoding: "gemini-gemma3".to_string(),
context_window: 1_000_000,
description: "Flash model, 1M context (GA, deprecated June 2026, default)".to_string(),
aliases: vec![
"gemini".to_string(),
"gemini-flash".to_string(),
"gemini-2-flash".to_string(),
"google/gemini".to_string(),
"google/gemini-flash".to_string(),
],
},
ModelConfig {
name: "gemini-2.5-flash-lite".to_string(),
encoding: "gemini-gemma3".to_string(),
context_window: 1_000_000,
description: "Flash Lite model, 1M context (GA, deprecated June 2026, fastest)"
.to_string(),
aliases: vec![
"gemini-lite".to_string(),
"gemini-2-lite".to_string(),
"gemini-2.5-lite".to_string(),
"google/gemini-lite".to_string(),
],
},
ModelConfig {
name: "gemini-3-pro-preview".to_string(),
encoding: "gemini-gemma3".to_string(),
context_window: 1_000_000,
description: "Pro model, 1M context (Preview)".to_string(),
aliases: vec!["gemini-3-pro".to_string(), "gemini-3".to_string()],
},
]
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_google_models_count() {
let models = google_models();
assert_eq!(models.len(), 4, "Should have 4 Gemini models");
}
#[test]
fn test_default_alias() {
let models = google_models();
let flash = models.iter().find(|m| m.name == "gemini-2.5-flash");
assert!(flash.is_some());
assert!(
flash.unwrap().aliases.contains(&"gemini".to_string()),
"gemini alias should point to gemini-2.5-flash"
);
}
#[test]
fn test_all_have_1m_context() {
let models = google_models();
for model in models {
assert_eq!(model.context_window, 1_000_000, "All models should have 1M context");
}
}
#[test]
fn test_all_use_same_encoding() {
let models = google_models();
for model in models {
assert_eq!(
model.encoding, "gemini-gemma3",
"All models should use gemini-gemma3 encoding"
);
}
}
}