use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum AssistantSupportedModels {
#[serde(rename = "gpt-5")]
Gpt5,
#[serde(rename = "gpt-5-mini")]
Gpt5Mini,
#[serde(rename = "gpt-5-nano")]
Gpt5Nano,
#[serde(rename = "gpt-5-2025-08-07")]
Gpt520250807,
#[serde(rename = "gpt-5-mini-2025-08-07")]
Gpt5Mini20250807,
#[serde(rename = "gpt-5-nano-2025-08-07")]
Gpt5Nano20250807,
#[serde(rename = "gpt-4.1")]
Gpt41,
#[serde(rename = "gpt-4.1-mini")]
Gpt41Mini,
#[serde(rename = "gpt-4.1-nano")]
Gpt41Nano,
#[serde(rename = "gpt-4.1-2025-04-14")]
Gpt4120250414,
#[serde(rename = "gpt-4.1-mini-2025-04-14")]
Gpt41Mini20250414,
#[serde(rename = "gpt-4.1-nano-2025-04-14")]
Gpt41Nano20250414,
#[serde(rename = "o3-mini")]
O3Mini,
#[serde(rename = "o3-mini-2025-01-31")]
O3Mini20250131,
#[serde(rename = "o1")]
O1,
#[serde(rename = "o1-2024-12-17")]
O120241217,
#[serde(rename = "gpt-4o")]
Gpt4o,
#[serde(rename = "gpt-4o-2024-11-20")]
Gpt4o20241120,
#[serde(rename = "gpt-4o-2024-08-06")]
Gpt4o20240806,
#[serde(rename = "gpt-4o-2024-05-13")]
Gpt4o20240513,
#[serde(rename = "gpt-4o-mini")]
Gpt4oMini,
#[serde(rename = "gpt-4o-mini-2024-07-18")]
Gpt4oMini20240718,
#[serde(rename = "gpt-4.5-preview")]
Gpt45Preview,
#[serde(rename = "gpt-4.5-preview-2025-02-27")]
Gpt45Preview20250227,
#[serde(rename = "gpt-4-turbo")]
Gpt4Turbo,
#[serde(rename = "gpt-4-turbo-2024-04-09")]
Gpt4Turbo20240409,
#[serde(rename = "gpt-4-0125-preview")]
Gpt40125Preview,
#[serde(rename = "gpt-4-turbo-preview")]
Gpt4TurboPreview,
#[serde(rename = "gpt-4-1106-preview")]
Gpt41106Preview,
#[serde(rename = "gpt-4-vision-preview")]
Gpt4VisionPreview,
#[serde(rename = "gpt-4")]
Gpt4,
#[serde(rename = "gpt-4-0314")]
Gpt40314,
#[serde(rename = "gpt-4-0613")]
Gpt40613,
#[serde(rename = "gpt-4-32k")]
Gpt432k,
#[serde(rename = "gpt-4-32k-0314")]
Gpt432k0314,
#[serde(rename = "gpt-4-32k-0613")]
Gpt432k0613,
#[serde(rename = "gpt-3.5-turbo")]
Gpt35Turbo,
#[serde(rename = "gpt-3.5-turbo-16k")]
Gpt35Turbo16k,
#[serde(rename = "gpt-3.5-turbo-0613")]
Gpt35Turbo0613,
#[serde(rename = "gpt-3.5-turbo-1106")]
Gpt35Turbo1106,
#[serde(rename = "gpt-3.5-turbo-0125")]
Gpt35Turbo0125,
#[serde(rename = "gpt-3.5-turbo-16k-0613")]
Gpt35Turbo16k0613,
}
impl std::fmt::Display for AssistantSupportedModels {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Gpt5 => write!(f, "gpt-5"),
Self::Gpt5Mini => write!(f, "gpt-5-mini"),
Self::Gpt5Nano => write!(f, "gpt-5-nano"),
Self::Gpt520250807 => write!(f, "gpt-5-2025-08-07"),
Self::Gpt5Mini20250807 => write!(f, "gpt-5-mini-2025-08-07"),
Self::Gpt5Nano20250807 => write!(f, "gpt-5-nano-2025-08-07"),
Self::Gpt41 => write!(f, "gpt-4.1"),
Self::Gpt41Mini => write!(f, "gpt-4.1-mini"),
Self::Gpt41Nano => write!(f, "gpt-4.1-nano"),
Self::Gpt4120250414 => write!(f, "gpt-4.1-2025-04-14"),
Self::Gpt41Mini20250414 => write!(f, "gpt-4.1-mini-2025-04-14"),
Self::Gpt41Nano20250414 => write!(f, "gpt-4.1-nano-2025-04-14"),
Self::O3Mini => write!(f, "o3-mini"),
Self::O3Mini20250131 => write!(f, "o3-mini-2025-01-31"),
Self::O1 => write!(f, "o1"),
Self::O120241217 => write!(f, "o1-2024-12-17"),
Self::Gpt4o => write!(f, "gpt-4o"),
Self::Gpt4o20241120 => write!(f, "gpt-4o-2024-11-20"),
Self::Gpt4o20240806 => write!(f, "gpt-4o-2024-08-06"),
Self::Gpt4o20240513 => write!(f, "gpt-4o-2024-05-13"),
Self::Gpt4oMini => write!(f, "gpt-4o-mini"),
Self::Gpt4oMini20240718 => write!(f, "gpt-4o-mini-2024-07-18"),
Self::Gpt45Preview => write!(f, "gpt-4.5-preview"),
Self::Gpt45Preview20250227 => write!(f, "gpt-4.5-preview-2025-02-27"),
Self::Gpt4Turbo => write!(f, "gpt-4-turbo"),
Self::Gpt4Turbo20240409 => write!(f, "gpt-4-turbo-2024-04-09"),
Self::Gpt40125Preview => write!(f, "gpt-4-0125-preview"),
Self::Gpt4TurboPreview => write!(f, "gpt-4-turbo-preview"),
Self::Gpt41106Preview => write!(f, "gpt-4-1106-preview"),
Self::Gpt4VisionPreview => write!(f, "gpt-4-vision-preview"),
Self::Gpt4 => write!(f, "gpt-4"),
Self::Gpt40314 => write!(f, "gpt-4-0314"),
Self::Gpt40613 => write!(f, "gpt-4-0613"),
Self::Gpt432k => write!(f, "gpt-4-32k"),
Self::Gpt432k0314 => write!(f, "gpt-4-32k-0314"),
Self::Gpt432k0613 => write!(f, "gpt-4-32k-0613"),
Self::Gpt35Turbo => write!(f, "gpt-3.5-turbo"),
Self::Gpt35Turbo16k => write!(f, "gpt-3.5-turbo-16k"),
Self::Gpt35Turbo0613 => write!(f, "gpt-3.5-turbo-0613"),
Self::Gpt35Turbo1106 => write!(f, "gpt-3.5-turbo-1106"),
Self::Gpt35Turbo0125 => write!(f, "gpt-3.5-turbo-0125"),
Self::Gpt35Turbo16k0613 => write!(f, "gpt-3.5-turbo-16k-0613"),
}
}
}
impl Default for AssistantSupportedModels {
fn default() -> AssistantSupportedModels {
Self::Gpt5
}
}