feat(providers): Add support for Gemini 2.5 Flash Preview and Pro Preview models (#2780)
This commit is contained in:
@@ -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())
|
||||||
|
|||||||
Reference in New Issue
Block a user