copilot: Add support for Gemini 2.0 Flash model to Copilot Chat (#24952)

Co-authored-by: Peter Tripp <peter@zed.dev>
This commit is contained in:
Richard Hao 2025-02-18 03:25:38 +08:00 committed by GitHub
parent 3e9722685b
commit f833a01a7e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 43 additions and 3 deletions

View file

@ -40,13 +40,15 @@ pub enum Model {
O3Mini,
#[serde(alias = "claude-3-5-sonnet", rename = "claude-3.5-sonnet")]
Claude3_5Sonnet,
#[serde(alias = "gemini-2.0-flash", rename = "gemini-2.0-flash-001")]
Gemini20Flash,
}
impl Model {
pub fn uses_streaming(&self) -> bool {
match self {
Self::Gpt4o | Self::Gpt4 | Self::Gpt3_5Turbo | Self::Claude3_5Sonnet => true,
Self::O3Mini | Self::O1 => false,
Self::O3Mini | Self::O1 | Self::Gemini20Flash => false,
}
}
@ -58,6 +60,7 @@ impl Model {
"o1" => Ok(Self::O1),
"o3-mini" => Ok(Self::O3Mini),
"claude-3-5-sonnet" => Ok(Self::Claude3_5Sonnet),
"gemini-2.0-flash-001" => Ok(Self::Gemini20Flash),
_ => Err(anyhow!("Invalid model id: {}", id)),
}
}
@ -70,6 +73,7 @@ impl Model {
Self::O3Mini => "o3-mini",
Self::O1 => "o1",
Self::Claude3_5Sonnet => "claude-3-5-sonnet",
Self::Gemini20Flash => "gemini-2.0-flash-001",
}
}
@ -81,6 +85,7 @@ impl Model {
Self::O3Mini => "o3-mini",
Self::O1 => "o1",
Self::Claude3_5Sonnet => "Claude 3.5 Sonnet",
Self::Gemini20Flash => "Gemini 2.0 Flash",
}
}
@ -92,6 +97,7 @@ impl Model {
Self::O3Mini => 20000,
Self::O1 => 20000,
Self::Claude3_5Sonnet => 200_000,
Model::Gemini20Flash => 128_000,
}
}
}