diff --git a/crates/copilot/src/copilot_chat.rs b/crates/copilot/src/copilot_chat.rs index e2c1499838..2df2ff8ca0 100644 --- a/crates/copilot/src/copilot_chat.rs +++ b/crates/copilot/src/copilot_chat.rs @@ -33,6 +33,8 @@ pub enum Model { Gpt4o, #[serde(alias = "gpt-4", rename = "gpt-4")] Gpt4, + #[serde(alias = "gpt-4.1", rename = "gpt-4.1")] + Gpt4_1, #[serde(alias = "gpt-3.5-turbo", rename = "gpt-3.5-turbo")] Gpt3_5Turbo, #[serde(alias = "o1", rename = "o1")] @@ -57,6 +59,7 @@ impl Model { match self { Self::Gpt4o | Self::Gpt4 + | Self::Gpt4_1 | Self::Gpt3_5Turbo | Self::Claude3_5Sonnet | Self::Claude3_7Sonnet @@ -69,6 +72,7 @@ impl Model { match id { "gpt-4o" => Ok(Self::Gpt4o), "gpt-4" => Ok(Self::Gpt4), + "gpt-4.1" => Ok(Self::Gpt4_1), "gpt-3.5-turbo" => Ok(Self::Gpt3_5Turbo), "o1" => Ok(Self::O1), "o3-mini" => Ok(Self::O3Mini), @@ -84,6 +88,7 @@ impl Model { match self { Self::Gpt3_5Turbo => "gpt-3.5-turbo", Self::Gpt4 => "gpt-4", + Self::Gpt4_1 => "gpt-4.1", Self::Gpt4o => "gpt-4o", Self::O3Mini => "o3-mini", Self::O1 => "o1", @@ -98,6 +103,7 @@ impl Model { match self { Self::Gpt3_5Turbo => "GPT-3.5", Self::Gpt4 => "GPT-4", + Self::Gpt4_1 => "GPT-4.1", Self::Gpt4o => "GPT-4o", Self::O3Mini => "o3-mini", Self::O1 => "o1", @@ -112,6 +118,7 @@ impl Model { match self { Self::Gpt4o => 64_000, Self::Gpt4 => 32_768, + Self::Gpt4_1 => 1_047_576, Self::Gpt3_5Turbo => 12_288, Self::O3Mini => 64_000, Self::O1 => 20_000, diff --git a/crates/language_model/src/model/cloud_model.rs b/crates/language_model/src/model/cloud_model.rs index cc15ce3364..3c12cb1bd5 100644 --- a/crates/language_model/src/model/cloud_model.rs +++ b/crates/language_model/src/model/cloud_model.rs @@ -83,6 +83,9 @@ impl CloudModel { | open_ai::Model::FourTurbo | open_ai::Model::FourOmni | open_ai::Model::FourOmniMini + | open_ai::Model::FourPointOne + | open_ai::Model::FourPointOneMini + | open_ai::Model::FourPointOneNano | open_ai::Model::O1Mini | open_ai::Model::O1Preview | open_ai::Model::O1 diff --git a/crates/language_models/src/provider/copilot_chat.rs b/crates/language_models/src/provider/copilot_chat.rs index 827ca3f190..81aac43f33 100644 --- a/crates/language_models/src/provider/copilot_chat.rs +++ b/crates/language_models/src/provider/copilot_chat.rs @@ -215,6 +215,7 @@ impl LanguageModel for CopilotChatLanguageModel { let model = match self.model { CopilotChatModel::Gpt4o => open_ai::Model::FourOmni, CopilotChatModel::Gpt4 => open_ai::Model::Four, + CopilotChatModel::Gpt4_1 => open_ai::Model::FourPointOne, CopilotChatModel::Gpt3_5Turbo => open_ai::Model::ThreePointFiveTurbo, CopilotChatModel::O1 | CopilotChatModel::O3Mini => open_ai::Model::Four, CopilotChatModel::Claude3_5Sonnet diff --git a/crates/open_ai/src/open_ai.rs b/crates/open_ai/src/open_ai.rs index b9aa2ce7f0..0aee8f4345 100644 --- a/crates/open_ai/src/open_ai.rs +++ b/crates/open_ai/src/open_ai.rs @@ -71,6 +71,12 @@ pub enum Model { FourOmni, #[serde(rename = "gpt-4o-mini", alias = "gpt-4o-mini")] FourOmniMini, + #[serde(rename = "gpt-4.1", alias = "gpt-4.1")] + FourPointOne, + #[serde(rename = "gpt-4.1-mini", alias = "gpt-4.1-mini")] + FourPointOneMini, + #[serde(rename = "gpt-4.1-nano", alias = "gpt-4.1-nano")] + FourPointOneNano, #[serde(rename = "o1", alias = "o1")] O1, #[serde(rename = "o1-preview", alias = "o1-preview")] @@ -99,6 +105,9 @@ impl Model { "gpt-4-turbo-preview" => Ok(Self::FourTurbo), "gpt-4o" => Ok(Self::FourOmni), "gpt-4o-mini" => Ok(Self::FourOmniMini), + "gpt-4.1" => Ok(Self::FourPointOne), + "gpt-4.1-mini" => Ok(Self::FourPointOneMini), + "gpt-4.1-nano" => Ok(Self::FourPointOneNano), "o1" => Ok(Self::O1), "o1-preview" => Ok(Self::O1Preview), "o1-mini" => Ok(Self::O1Mini), @@ -114,6 +123,9 @@ impl Model { Self::FourTurbo => "gpt-4-turbo", Self::FourOmni => "gpt-4o", Self::FourOmniMini => "gpt-4o-mini", + Self::FourPointOne => "gpt-4.1", + Self::FourPointOneMini => "gpt-4.1-mini", + Self::FourPointOneNano => "gpt-4.1-nano", Self::O1 => "o1", Self::O1Preview => "o1-preview", Self::O1Mini => "o1-mini", @@ -129,6 +141,9 @@ impl Model { Self::FourTurbo => "gpt-4-turbo", Self::FourOmni => "gpt-4o", Self::FourOmniMini => "gpt-4o-mini", + Self::FourPointOne => "gpt-4.1", + Self::FourPointOneMini => "gpt-4.1-mini", + Self::FourPointOneNano => "gpt-4.1-nano", Self::O1 => "o1", Self::O1Preview => "o1-preview", Self::O1Mini => "o1-mini", @@ -146,6 +161,9 @@ impl Model { Self::FourTurbo => 128_000, Self::FourOmni => 128_000, Self::FourOmniMini => 128_000, + Self::FourPointOne => 1_047_576, + Self::FourPointOneMini => 1_047_576, + Self::FourPointOneNano => 1_047_576, Self::O1 => 200_000, Self::O1Preview => 128_000, Self::O1Mini => 128_000, @@ -173,6 +191,9 @@ impl Model { | Self::FourTurbo | Self::FourOmni | Self::FourOmniMini + | Self::FourPointOne + | Self::FourPointOneMini + | Self::FourPointOneNano | Self::O1 | Self::O1Preview | Self::O1Mini => true,