feat(providers): Add support for Gemini 2.5 Flash Preview and Pro Preview models (#2780)

This commit is contained in:
xinbenlv
2025-06-04 10:58:30 -07:00
committed by GitHub
parent 772ce25884
commit 176ab18880
3 changed files with 16 additions and 1 deletions
@@ -20,7 +20,7 @@
"gcp_vertex_ai": { "gcp_vertex_ai": {
"name": "GCP Vertex AI", "name": "GCP Vertex AI",
"description": "Use Vertex AI platform models", "description": "Use Vertex AI platform models",
"models": ["claude-3-5-haiku@20241022", "claude-3-5-sonnet@20240620", "claude-3-5-sonnet-v2@20241022", "claude-3-7-sonnet@20250219", "gemini-1.5-pro-002", "gemini-2.0-flash-001", "gemini-2.0-pro-exp-02-05", "gemini-2.5-pro-exp-03-25"], "models": ["claude-3-5-haiku@20241022", "claude-3-5-sonnet@20240620", "claude-3-5-sonnet-v2@20241022", "claude-3-7-sonnet@20250219", "gemini-1.5-pro-002", "gemini-2.0-flash-001", "gemini-2.0-pro-exp-02-05", "gemini-2.5-pro-exp-03-25", "gemini-2.5-flash-preview-05-20", "gemini-2.5-pro-preview-05-06"],
"required_keys": ["GCP_PROJECT_ID", "GCP_LOCATION"] "required_keys": ["GCP_PROJECT_ID", "GCP_LOCATION"]
}, },
"google": { "google": {
@@ -98,6 +98,10 @@ pub enum GeminiVersion {
Pro20Exp, Pro20Exp,
/// Gemini 2.5 Pro Experimental version /// Gemini 2.5 Pro Experimental version
Pro25Exp, Pro25Exp,
/// Gemini 2.5 Flash Preview version
Flash25Preview,
/// Gemini 2.5 Pro Preview version
Pro25Preview,
/// Generic Gemini model for custom or new versions /// Generic Gemini model for custom or new versions
Generic(String), Generic(String),
} }
@@ -118,6 +122,8 @@ impl fmt::Display for GcpVertexAIModel {
GeminiVersion::Flash20 => "gemini-2.0-flash-001", GeminiVersion::Flash20 => "gemini-2.0-flash-001",
GeminiVersion::Pro20Exp => "gemini-2.0-pro-exp-02-05", GeminiVersion::Pro20Exp => "gemini-2.0-pro-exp-02-05",
GeminiVersion::Pro25Exp => "gemini-2.5-pro-exp-03-25", GeminiVersion::Pro25Exp => "gemini-2.5-pro-exp-03-25",
GeminiVersion::Flash25Preview => "gemini-2.5-flash-preview-05-20",
GeminiVersion::Pro25Preview => "gemini-2.5-pro-preview-05-06",
GeminiVersion::Generic(name) => name, GeminiVersion::Generic(name) => name,
}, },
}; };
@@ -154,6 +160,8 @@ impl TryFrom<&str> for GcpVertexAIModel {
"gemini-2.0-flash-001" => Ok(Self::Gemini(GeminiVersion::Flash20)), "gemini-2.0-flash-001" => Ok(Self::Gemini(GeminiVersion::Flash20)),
"gemini-2.0-pro-exp-02-05" => Ok(Self::Gemini(GeminiVersion::Pro20Exp)), "gemini-2.0-pro-exp-02-05" => Ok(Self::Gemini(GeminiVersion::Pro20Exp)),
"gemini-2.5-pro-exp-03-25" => Ok(Self::Gemini(GeminiVersion::Pro25Exp)), "gemini-2.5-pro-exp-03-25" => Ok(Self::Gemini(GeminiVersion::Pro25Exp)),
"gemini-2.5-flash-preview-05-20" => Ok(Self::Gemini(GeminiVersion::Flash25Preview)),
"gemini-2.5-pro-preview-05-06" => Ok(Self::Gemini(GeminiVersion::Pro25Preview)),
// Generic models based on prefix matching // Generic models based on prefix matching
_ if s.starts_with("claude-") => { _ if s.starts_with("claude-") => {
Ok(Self::Claude(ClaudeVersion::Generic(s.to_string()))) Ok(Self::Claude(ClaudeVersion::Generic(s.to_string())))
@@ -349,6 +357,8 @@ mod tests {
"gemini-2.0-flash-001", "gemini-2.0-flash-001",
"gemini-2.0-pro-exp-02-05", "gemini-2.0-pro-exp-02-05",
"gemini-2.5-pro-exp-03-25", "gemini-2.5-pro-exp-03-25",
"gemini-2.5-flash-preview-05-20",
"gemini-2.5-pro-preview-05-06",
]; ];
for model_id in valid_models { for model_id in valid_models {
@@ -372,6 +382,8 @@ mod tests {
("gemini-2.0-flash-001", GcpLocation::Iowa), ("gemini-2.0-flash-001", GcpLocation::Iowa),
("gemini-2.0-pro-exp-02-05", GcpLocation::Iowa), ("gemini-2.0-pro-exp-02-05", GcpLocation::Iowa),
("gemini-2.5-pro-exp-03-25", GcpLocation::Iowa), ("gemini-2.5-pro-exp-03-25", GcpLocation::Iowa),
("gemini-2.5-flash-preview-05-20", GcpLocation::Iowa),
("gemini-2.5-pro-preview-05-06", GcpLocation::Iowa),
]; ];
for (model_id, expected_location) in test_cases { for (model_id, expected_location) in test_cases {
@@ -434,6 +434,9 @@ impl Provider for GcpVertexAIProvider {
GcpVertexAIModel::Gemini(GeminiVersion::Pro15), GcpVertexAIModel::Gemini(GeminiVersion::Pro15),
GcpVertexAIModel::Gemini(GeminiVersion::Flash20), GcpVertexAIModel::Gemini(GeminiVersion::Flash20),
GcpVertexAIModel::Gemini(GeminiVersion::Pro20Exp), GcpVertexAIModel::Gemini(GeminiVersion::Pro20Exp),
GcpVertexAIModel::Gemini(GeminiVersion::Pro25Exp),
GcpVertexAIModel::Gemini(GeminiVersion::Flash25Preview),
GcpVertexAIModel::Gemini(GeminiVersion::Pro25Preview),
] ]
.iter() .iter()
.map(|model| model.to_string()) .map(|model| model.to_string())