use crate::types::base_types::{
MessageType, ModelAPI, ModelProviderDescriptor, ModelProviders, ModelUsageCosting,
};
pub static MODELS: &[ModelProviderDescriptor] = &[
ModelProviderDescriptor {
id: "gemini-1.5-flash",
name: "Gemini 1.5 Flash (Vertex)",
reasoning: false,
api: ModelAPI::GoogleVertex,
provider: ModelProviders::GOOGLEVERTEX,
base_url: Some("https://{location}-aiplatform.googleapis.com"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.075,
output: 0.3,
cache_read: 0.01875,
cache_write: 0.0,
},
context_window: 1_000_000,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "gemini-1.5-flash-8b",
name: "Gemini 1.5 Flash-8B (Vertex)",
reasoning: false,
api: ModelAPI::GoogleVertex,
provider: ModelProviders::GOOGLEVERTEX,
base_url: Some("https://{location}-aiplatform.googleapis.com"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.0375,
output: 0.15,
cache_read: 0.01,
cache_write: 0.0,
},
context_window: 1_000_000,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "gemini-1.5-pro",
name: "Gemini 1.5 Pro (Vertex)",
reasoning: false,
api: ModelAPI::GoogleVertex,
provider: ModelProviders::GOOGLEVERTEX,
base_url: Some("https://{location}-aiplatform.googleapis.com"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 5.0,
cache_read: 0.3125,
cache_write: 0.0,
},
context_window: 1_000_000,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "gemini-2.0-flash",
name: "Gemini 2.0 Flash (Vertex)",
reasoning: false,
api: ModelAPI::GoogleVertex,
provider: ModelProviders::GOOGLEVERTEX,
base_url: Some("https://{location}-aiplatform.googleapis.com"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.15,
output: 0.6,
cache_read: 0.0375,
cache_write: 0.0,
},
context_window: 1_048_576,
max_tokens: 8192,
},
ModelProviderDescriptor {
id: "gemini-2.0-flash-lite",
name: "Gemini 2.0 Flash Lite (Vertex)",
reasoning: true,
api: ModelAPI::GoogleVertex,
provider: ModelProviders::GOOGLEVERTEX,
base_url: Some("https://{location}-aiplatform.googleapis.com"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.075,
output: 0.3,
cache_read: 0.01875,
cache_write: 0.0,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "gemini-2.5-flash",
name: "Gemini 2.5 Flash (Vertex)",
reasoning: true,
api: ModelAPI::GoogleVertex,
provider: ModelProviders::GOOGLEVERTEX,
base_url: Some("https://{location}-aiplatform.googleapis.com"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.3,
output: 2.5,
cache_read: 0.03,
cache_write: 0.0,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "gemini-2.5-flash-lite",
name: "Gemini 2.5 Flash Lite (Vertex)",
reasoning: true,
api: ModelAPI::GoogleVertex,
provider: ModelProviders::GOOGLEVERTEX,
base_url: Some("https://{location}-aiplatform.googleapis.com"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.1,
output: 0.4,
cache_read: 0.01,
cache_write: 0.0,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "gemini-2.5-flash-lite-preview-09-2025",
name: "Gemini 2.5 Flash Lite Preview 09-25 (Vertex)",
reasoning: true,
api: ModelAPI::GoogleVertex,
provider: ModelProviders::GOOGLEVERTEX,
base_url: Some("https://{location}-aiplatform.googleapis.com"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.1,
output: 0.4,
cache_read: 0.01,
cache_write: 0.0,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "gemini-2.5-pro",
name: "Gemini 2.5 Pro (Vertex)",
reasoning: true,
api: ModelAPI::GoogleVertex,
provider: ModelProviders::GOOGLEVERTEX,
base_url: Some("https://{location}-aiplatform.googleapis.com"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 1.25,
output: 10.0,
cache_read: 0.125,
cache_write: 0.0,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "gemini-3-flash-preview",
name: "Gemini 3 Flash Preview (Vertex)",
reasoning: true,
api: ModelAPI::GoogleVertex,
provider: ModelProviders::GOOGLEVERTEX,
base_url: Some("https://{location}-aiplatform.googleapis.com"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 0.5,
output: 3.0,
cache_read: 0.05,
cache_write: 0.0,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
ModelProviderDescriptor {
id: "gemini-3-pro-preview",
name: "Gemini 3 Pro Preview (Vertex)",
reasoning: true,
api: ModelAPI::GoogleVertex,
provider: ModelProviders::GOOGLEVERTEX,
base_url: Some("https://{location}-aiplatform.googleapis.com"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 2.0,
output: 12.0,
cache_read: 0.2,
cache_write: 0.0,
},
context_window: 1_000_000,
max_tokens: 64_000,
},
ModelProviderDescriptor {
id: "gemini-3.1-pro-preview",
name: "Gemini 3.1 Pro Preview (Vertex)",
reasoning: true,
api: ModelAPI::GoogleVertex,
provider: ModelProviders::GOOGLEVERTEX,
base_url: Some("https://{location}-aiplatform.googleapis.com"),
inputs: MessageType::TextAndImages,
cost: ModelUsageCosting {
input: 2.0,
output: 12.0,
cache_read: 0.2,
cache_write: 0.0,
},
context_window: 1_048_576,
max_tokens: 65_536,
},
];