Add support for OpenAI GPT-4.1 models (#28708)

Release Notes:

- Add support for OpenAI GPT-4.1 via Copilot Chat and OpenAI API

---------

Co-authored-by: Danilo Leal <daniloleal09@gmail.com>
Co-authored-by: Bennet Bo Fenner <bennetbo@gmx.de>
This commit is contained in:
Umesh Yadav 2025-04-15 00:45:59 +05:30 committed by GitHub
parent 6db29eb90a
commit 84aa480344
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 32 additions and 0 deletions

View file

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

View file

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

View file

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

View file

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