@@ -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,
@@ -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
@@ -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,