use crate::core::capabilities::*;
use crate::model_capabilities;
use crate::providers::google::Google;
model_capabilities! {
provider: Google,
models: {
Gemini15Flash {
model_name: "gemini-1.5-flash",
constructor_name: gemini_1_5_flash,
display_name: "Gemini 1.5 Flash",
capabilities: [AudioInputSupport, ImageInputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini15Flash8b {
model_name: "gemini-1.5-flash-8b",
constructor_name: gemini_1_5_flash_8b,
display_name: "Gemini 1.5 Flash-8B",
capabilities: [AudioInputSupport, ImageInputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini15Pro {
model_name: "gemini-1.5-pro",
constructor_name: gemini_1_5_pro,
display_name: "Gemini 1.5 Pro",
capabilities: [AudioInputSupport, ImageInputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini20Flash {
model_name: "gemini-2.0-flash",
constructor_name: gemini_2_0_flash,
display_name: "Gemini 2.0 Flash",
capabilities: [AudioInputSupport, ImageInputSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini20FlashLite {
model_name: "gemini-2.0-flash-lite",
constructor_name: gemini_2_0_flash_lite,
display_name: "Gemini 2.0 Flash Lite",
capabilities: [AudioInputSupport, ImageInputSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini25Flash {
model_name: "gemini-2.5-flash",
constructor_name: gemini_2_5_flash,
display_name: "Gemini 2.5 Flash",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini25FlashImage {
model_name: "gemini-2.5-flash-image",
constructor_name: gemini_2_5_flash_image,
display_name: "Gemini 2.5 Flash Image",
capabilities: [ImageInputSupport, ImageOutputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport]
},
Gemini25FlashImagePreview {
model_name: "gemini-2.5-flash-image-preview",
constructor_name: gemini_2_5_flash_image_preview,
display_name: "Gemini 2.5 Flash Image (Preview)",
capabilities: [ImageInputSupport, ImageOutputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport]
},
Gemini25FlashLite {
model_name: "gemini-2.5-flash-lite",
constructor_name: gemini_2_5_flash_lite,
display_name: "Gemini 2.5 Flash Lite",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini25FlashLitePreview0617 {
model_name: "gemini-2.5-flash-lite-preview-06-17",
constructor_name: gemini_2_5_flash_lite_preview_06_17,
display_name: "Gemini 2.5 Flash Lite Preview 06-17",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini25FlashLitePreview092025 {
model_name: "gemini-2.5-flash-lite-preview-09-2025",
constructor_name: gemini_2_5_flash_lite_preview_09_2025,
display_name: "Gemini 2.5 Flash Lite Preview 09-25",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini25FlashPreview0417 {
model_name: "gemini-2.5-flash-preview-04-17",
constructor_name: gemini_2_5_flash_preview_04_17,
display_name: "Gemini 2.5 Flash Preview 04-17",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini25FlashPreview0520 {
model_name: "gemini-2.5-flash-preview-05-20",
constructor_name: gemini_2_5_flash_preview_05_20,
display_name: "Gemini 2.5 Flash Preview 05-20",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini25FlashPreview092025 {
model_name: "gemini-2.5-flash-preview-09-2025",
constructor_name: gemini_2_5_flash_preview_09_2025,
display_name: "Gemini 2.5 Flash Preview 09-25",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini25FlashPreviewTts {
model_name: "gemini-2.5-flash-preview-tts",
constructor_name: gemini_2_5_flash_preview_tts,
display_name: "Gemini 2.5 Flash Preview TTS",
capabilities: [AudioOutputSupport, TextInputSupport]
},
Gemini25Pro {
model_name: "gemini-2.5-pro",
constructor_name: gemini_2_5_pro,
display_name: "Gemini 2.5 Pro",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini25ProPreview0506 {
model_name: "gemini-2.5-pro-preview-05-06",
constructor_name: gemini_2_5_pro_preview_05_06,
display_name: "Gemini 2.5 Pro Preview 05-06",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini25ProPreview0605 {
model_name: "gemini-2.5-pro-preview-06-05",
constructor_name: gemini_2_5_pro_preview_06_05,
display_name: "Gemini 2.5 Pro Preview 06-05",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini25ProPreviewTts {
model_name: "gemini-2.5-pro-preview-tts",
constructor_name: gemini_2_5_pro_preview_tts,
display_name: "Gemini 2.5 Pro Preview TTS",
capabilities: [AudioOutputSupport, TextInputSupport]
},
Gemini3FlashPreview {
model_name: "gemini-3-flash-preview",
constructor_name: gemini_3_flash_preview,
display_name: "Gemini 3 Flash Preview",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
Gemini3ProPreview {
model_name: "gemini-3-pro-preview",
constructor_name: gemini_3_pro_preview,
display_name: "Gemini 3 Pro Preview",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
GeminiEmbedding001 {
model_name: "gemini-embedding-001",
constructor_name: gemini_embedding_001,
display_name: "Gemini Embedding 001",
capabilities: [TextInputSupport, TextOutputSupport]
},
GeminiFlashLatest {
model_name: "gemini-flash-latest",
constructor_name: gemini_flash_latest,
display_name: "Gemini Flash Latest",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
GeminiFlashLiteLatest {
model_name: "gemini-flash-lite-latest",
constructor_name: gemini_flash_lite_latest,
display_name: "Gemini Flash-Lite Latest",
capabilities: [AudioInputSupport, ImageInputSupport, ReasoningSupport, StructuredOutputSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
GeminiLive25Flash {
model_name: "gemini-live-2.5-flash",
constructor_name: gemini_live_2_5_flash,
display_name: "Gemini Live 2.5 Flash",
capabilities: [AudioInputSupport, AudioOutputSupport, ImageInputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
GeminiLive25FlashPreviewNativeAudio {
model_name: "gemini-live-2.5-flash-preview-native-audio",
constructor_name: gemini_live_2_5_flash_preview_native_audio,
display_name: "Gemini Live 2.5 Flash Preview Native Audio",
capabilities: [AudioInputSupport, AudioOutputSupport, ReasoningSupport, TextInputSupport, TextOutputSupport, ToolCallSupport, VideoInputSupport]
},
}
}