Add GPT-4o as possible model (#11764)

Resolves: #11766

Release Notes:

- Add GPT-4o support (see: https://openai.com/index/hello-gpt-4o/).
GPT-4o is better and faster than 4-turbo, at half the price.
This commit is contained in:
Toon Willems 2024-05-14 10:43:24 +02:00 committed by GitHub
parent 43da37b0ab
commit 9b74acc4f5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 13 additions and 5 deletions

View file

@ -300,7 +300,8 @@
// 1. "gpt-3.5-turbo" // 1. "gpt-3.5-turbo"
// 2. "gpt-4" // 2. "gpt-4"
// 3. "gpt-4-turbo-preview" // 3. "gpt-4-turbo-preview"
"default_model": "gpt-4-turbo-preview" // 4. "gpt-4o"
"default_model": "gpt-4o"
} }
}, },
// Whether the screen sharing icon is shown in the os status bar. // Whether the screen sharing icon is shown in the os status bar.

View file

@ -771,7 +771,8 @@ impl AssistantPanel {
LanguageModel::OpenAi(model) => LanguageModel::OpenAi(match &model { LanguageModel::OpenAi(model) => LanguageModel::OpenAi(match &model {
open_ai::Model::ThreePointFiveTurbo => open_ai::Model::Four, open_ai::Model::ThreePointFiveTurbo => open_ai::Model::Four,
open_ai::Model::Four => open_ai::Model::FourTurbo, open_ai::Model::Four => open_ai::Model::FourTurbo,
open_ai::Model::FourTurbo => open_ai::Model::ThreePointFiveTurbo, open_ai::Model::FourTurbo => open_ai::Model::FourOmni,
open_ai::Model::FourOmni => open_ai::Model::ThreePointFiveTurbo,
}), }),
LanguageModel::ZedDotDev(model) => LanguageModel::ZedDotDev(match &model { LanguageModel::ZedDotDev(model) => LanguageModel::ZedDotDev(match &model {
ZedDotDevModel::Gpt3Point5Turbo => ZedDotDevModel::Gpt4, ZedDotDevModel::Gpt3Point5Turbo => ZedDotDevModel::Gpt4,

View file

@ -414,7 +414,7 @@ mod tests {
assert_eq!( assert_eq!(
AssistantSettings::get_global(cx).provider, AssistantSettings::get_global(cx).provider,
AssistantProvider::OpenAi { AssistantProvider::OpenAi {
default_model: OpenAiModel::FourTurbo, default_model: OpenAiModel::FourOmni,
api_url: open_ai_url(), api_url: open_ai_url(),
low_speed_timeout_in_seconds: None, low_speed_timeout_in_seconds: None,
} }
@ -436,7 +436,7 @@ mod tests {
assert_eq!( assert_eq!(
AssistantSettings::get_global(cx).provider, AssistantSettings::get_global(cx).provider,
AssistantProvider::OpenAi { AssistantProvider::OpenAi {
default_model: OpenAiModel::FourTurbo, default_model: OpenAiModel::FourOmni,
api_url: "test-url".into(), api_url: "test-url".into(),
low_speed_timeout_in_seconds: None, low_speed_timeout_in_seconds: None,
} }

View file

@ -51,8 +51,10 @@ pub enum Model {
#[serde(rename = "gpt-4", alias = "gpt-4-0613")] #[serde(rename = "gpt-4", alias = "gpt-4-0613")]
Four, Four,
#[serde(rename = "gpt-4-turbo-preview", alias = "gpt-4-1106-preview")] #[serde(rename = "gpt-4-turbo-preview", alias = "gpt-4-1106-preview")]
#[default]
FourTurbo, FourTurbo,
#[serde(rename = "gpt-4o", alias = "gpt-4o-2024-05-13")]
#[default]
FourOmni,
} }
impl Model { impl Model {
@ -61,6 +63,7 @@ impl Model {
"gpt-3.5-turbo" => Ok(Self::ThreePointFiveTurbo), "gpt-3.5-turbo" => Ok(Self::ThreePointFiveTurbo),
"gpt-4" => Ok(Self::Four), "gpt-4" => Ok(Self::Four),
"gpt-4-turbo-preview" => Ok(Self::FourTurbo), "gpt-4-turbo-preview" => Ok(Self::FourTurbo),
"gpt-4o" => Ok(Self::FourOmni),
_ => Err(anyhow!("invalid model id")), _ => Err(anyhow!("invalid model id")),
} }
} }
@ -70,6 +73,7 @@ impl Model {
Self::ThreePointFiveTurbo => "gpt-3.5-turbo", Self::ThreePointFiveTurbo => "gpt-3.5-turbo",
Self::Four => "gpt-4", Self::Four => "gpt-4",
Self::FourTurbo => "gpt-4-turbo-preview", Self::FourTurbo => "gpt-4-turbo-preview",
Self::FourOmni => "gpt-4o",
} }
} }
@ -78,6 +82,7 @@ impl Model {
Self::ThreePointFiveTurbo => "gpt-3.5-turbo", Self::ThreePointFiveTurbo => "gpt-3.5-turbo",
Self::Four => "gpt-4", Self::Four => "gpt-4",
Self::FourTurbo => "gpt-4-turbo", Self::FourTurbo => "gpt-4-turbo",
Self::FourOmni => "gpt-4o",
} }
} }
@ -86,6 +91,7 @@ impl Model {
Model::ThreePointFiveTurbo => 4096, Model::ThreePointFiveTurbo => 4096,
Model::Four => 8192, Model::Four => 8192,
Model::FourTurbo => 128000, Model::FourTurbo => 128000,
Model::FourOmni => 128000,
} }
} }
} }