open_ai: Remove redundant serde aliases and add model limits (#32572)
Remove unnecessary alias attributes from Model enum variants and add max_output_tokens limits for all OpenAI models. Also fix supports_system_messages to explicitly handle all model variants. Release Notes: - N/A
This commit is contained in:
parent
c4277681d1
commit
8cc5b04045
1 changed files with 35 additions and 17 deletions
|
@ -56,34 +56,34 @@ impl From<Role> for String {
|
||||||
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
|
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
|
||||||
#[derive(Clone, Debug, Default, Serialize, Deserialize, PartialEq, EnumIter)]
|
#[derive(Clone, Debug, Default, Serialize, Deserialize, PartialEq, EnumIter)]
|
||||||
pub enum Model {
|
pub enum Model {
|
||||||
#[serde(rename = "gpt-3.5-turbo", alias = "gpt-3.5-turbo")]
|
#[serde(rename = "gpt-3.5-turbo")]
|
||||||
ThreePointFiveTurbo,
|
ThreePointFiveTurbo,
|
||||||
#[serde(rename = "gpt-4", alias = "gpt-4")]
|
#[serde(rename = "gpt-4")]
|
||||||
Four,
|
Four,
|
||||||
#[serde(rename = "gpt-4-turbo", alias = "gpt-4-turbo")]
|
#[serde(rename = "gpt-4-turbo")]
|
||||||
FourTurbo,
|
FourTurbo,
|
||||||
#[serde(rename = "gpt-4o", alias = "gpt-4o")]
|
#[serde(rename = "gpt-4o")]
|
||||||
#[default]
|
#[default]
|
||||||
FourOmni,
|
FourOmni,
|
||||||
#[serde(rename = "gpt-4o-mini", alias = "gpt-4o-mini")]
|
#[serde(rename = "gpt-4o-mini")]
|
||||||
FourOmniMini,
|
FourOmniMini,
|
||||||
#[serde(rename = "gpt-4.1", alias = "gpt-4.1")]
|
#[serde(rename = "gpt-4.1")]
|
||||||
FourPointOne,
|
FourPointOne,
|
||||||
#[serde(rename = "gpt-4.1-mini", alias = "gpt-4.1-mini")]
|
#[serde(rename = "gpt-4.1-mini")]
|
||||||
FourPointOneMini,
|
FourPointOneMini,
|
||||||
#[serde(rename = "gpt-4.1-nano", alias = "gpt-4.1-nano")]
|
#[serde(rename = "gpt-4.1-nano")]
|
||||||
FourPointOneNano,
|
FourPointOneNano,
|
||||||
#[serde(rename = "o1", alias = "o1")]
|
#[serde(rename = "o1")]
|
||||||
O1,
|
O1,
|
||||||
#[serde(rename = "o1-preview", alias = "o1-preview")]
|
#[serde(rename = "o1-preview")]
|
||||||
O1Preview,
|
O1Preview,
|
||||||
#[serde(rename = "o1-mini", alias = "o1-mini")]
|
#[serde(rename = "o1-mini")]
|
||||||
O1Mini,
|
O1Mini,
|
||||||
#[serde(rename = "o3-mini", alias = "o3-mini")]
|
#[serde(rename = "o3-mini")]
|
||||||
O3Mini,
|
O3Mini,
|
||||||
#[serde(rename = "o3", alias = "o3")]
|
#[serde(rename = "o3")]
|
||||||
O3,
|
O3,
|
||||||
#[serde(rename = "o4-mini", alias = "o4-mini")]
|
#[serde(rename = "o4-mini")]
|
||||||
O4Mini,
|
O4Mini,
|
||||||
|
|
||||||
#[serde(rename = "custom")]
|
#[serde(rename = "custom")]
|
||||||
|
@ -189,7 +189,20 @@ impl Model {
|
||||||
Self::Custom {
|
Self::Custom {
|
||||||
max_output_tokens, ..
|
max_output_tokens, ..
|
||||||
} => *max_output_tokens,
|
} => *max_output_tokens,
|
||||||
_ => None,
|
Self::ThreePointFiveTurbo => Some(4_096),
|
||||||
|
Self::Four => Some(8_192),
|
||||||
|
Self::FourTurbo => Some(4_096),
|
||||||
|
Self::FourOmni => Some(16_384),
|
||||||
|
Self::FourOmniMini => Some(16_384),
|
||||||
|
Self::FourPointOne => Some(32_768),
|
||||||
|
Self::FourPointOneMini => Some(32_768),
|
||||||
|
Self::FourPointOneNano => Some(32_768),
|
||||||
|
Self::O1 => Some(100_000),
|
||||||
|
Self::O1Preview => Some(32_768),
|
||||||
|
Self::O1Mini => Some(65_536),
|
||||||
|
Self::O3Mini => Some(100_000),
|
||||||
|
Self::O3 => Some(100_000),
|
||||||
|
Self::O4Mini => Some(100_000),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -206,8 +219,13 @@ impl Model {
|
||||||
| Self::FourPointOne
|
| Self::FourPointOne
|
||||||
| Self::FourPointOneMini
|
| Self::FourPointOneMini
|
||||||
| Self::FourPointOneNano => true,
|
| Self::FourPointOneNano => true,
|
||||||
Self::O1 | Self::O1Preview | Self::O1Mini => false,
|
Self::O1
|
||||||
_ => false,
|
| Self::O1Preview
|
||||||
|
| Self::O1Mini
|
||||||
|
| Self::O3
|
||||||
|
| Self::O3Mini
|
||||||
|
| Self::O4Mini
|
||||||
|
| Model::Custom { .. } => false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue