Add GPT-5 support through OpenAI API
This commit is contained in:
parent
1934e5c23e
commit
bf6f715961
2 changed files with 29 additions and 2 deletions
|
@ -673,7 +673,10 @@ pub fn count_open_ai_tokens(
|
||||||
| Model::O1
|
| Model::O1
|
||||||
| Model::O3
|
| Model::O3
|
||||||
| Model::O3Mini
|
| Model::O3Mini
|
||||||
| Model::O4Mini => tiktoken_rs::num_tokens_from_messages(model.id(), &messages),
|
| Model::O4Mini
|
||||||
|
| Model::Five
|
||||||
|
| Model::FiveMini
|
||||||
|
| Model::FiveNano => tiktoken_rs::num_tokens_from_messages(model.id(), &messages),
|
||||||
}
|
}
|
||||||
.map(|tokens| tokens as u64)
|
.map(|tokens| tokens as u64)
|
||||||
})
|
})
|
||||||
|
|
|
@ -74,6 +74,12 @@ pub enum Model {
|
||||||
O3,
|
O3,
|
||||||
#[serde(rename = "o4-mini")]
|
#[serde(rename = "o4-mini")]
|
||||||
O4Mini,
|
O4Mini,
|
||||||
|
#[serde(rename = "gpt-5")]
|
||||||
|
Five,
|
||||||
|
#[serde(rename = "gpt-5-mini")]
|
||||||
|
FiveMini,
|
||||||
|
#[serde(rename = "gpt-5-nano")]
|
||||||
|
FiveNano,
|
||||||
|
|
||||||
#[serde(rename = "custom")]
|
#[serde(rename = "custom")]
|
||||||
Custom {
|
Custom {
|
||||||
|
@ -105,6 +111,9 @@ impl Model {
|
||||||
"o3-mini" => Ok(Self::O3Mini),
|
"o3-mini" => Ok(Self::O3Mini),
|
||||||
"o3" => Ok(Self::O3),
|
"o3" => Ok(Self::O3),
|
||||||
"o4-mini" => Ok(Self::O4Mini),
|
"o4-mini" => Ok(Self::O4Mini),
|
||||||
|
"gpt-5" => Ok(Self::Five),
|
||||||
|
"gpt-5-mini" => Ok(Self::FiveMini),
|
||||||
|
"gpt-5-nano" => Ok(Self::FiveNano),
|
||||||
invalid_id => anyhow::bail!("invalid model id '{invalid_id}'"),
|
invalid_id => anyhow::bail!("invalid model id '{invalid_id}'"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -123,6 +132,9 @@ impl Model {
|
||||||
Self::O3Mini => "o3-mini",
|
Self::O3Mini => "o3-mini",
|
||||||
Self::O3 => "o3",
|
Self::O3 => "o3",
|
||||||
Self::O4Mini => "o4-mini",
|
Self::O4Mini => "o4-mini",
|
||||||
|
Self::Five => "gpt-5",
|
||||||
|
Self::FiveMini => "gpt-5-mini",
|
||||||
|
Self::FiveNano => "gpt-5-nano",
|
||||||
Self::Custom { name, .. } => name,
|
Self::Custom { name, .. } => name,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -141,6 +153,9 @@ impl Model {
|
||||||
Self::O3Mini => "o3-mini",
|
Self::O3Mini => "o3-mini",
|
||||||
Self::O3 => "o3",
|
Self::O3 => "o3",
|
||||||
Self::O4Mini => "o4-mini",
|
Self::O4Mini => "o4-mini",
|
||||||
|
Self::Five => "gpt-5",
|
||||||
|
Self::FiveMini => "gpt-5-mini",
|
||||||
|
Self::FiveNano => "gpt-5-nano",
|
||||||
Self::Custom {
|
Self::Custom {
|
||||||
name, display_name, ..
|
name, display_name, ..
|
||||||
} => display_name.as_ref().unwrap_or(name),
|
} => display_name.as_ref().unwrap_or(name),
|
||||||
|
@ -161,6 +176,9 @@ impl Model {
|
||||||
Self::O3Mini => 200_000,
|
Self::O3Mini => 200_000,
|
||||||
Self::O3 => 200_000,
|
Self::O3 => 200_000,
|
||||||
Self::O4Mini => 200_000,
|
Self::O4Mini => 200_000,
|
||||||
|
Self::Five => 256_000,
|
||||||
|
Self::FiveMini => 256_000,
|
||||||
|
Self::FiveNano => 256_000,
|
||||||
Self::Custom { max_tokens, .. } => *max_tokens,
|
Self::Custom { max_tokens, .. } => *max_tokens,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -182,6 +200,9 @@ impl Model {
|
||||||
Self::O3Mini => Some(100_000),
|
Self::O3Mini => Some(100_000),
|
||||||
Self::O3 => Some(100_000),
|
Self::O3 => Some(100_000),
|
||||||
Self::O4Mini => Some(100_000),
|
Self::O4Mini => Some(100_000),
|
||||||
|
Self::Five => Some(65_536),
|
||||||
|
Self::FiveMini => Some(65_536),
|
||||||
|
Self::FiveNano => Some(65_536),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -197,7 +218,10 @@ impl Model {
|
||||||
| Self::FourOmniMini
|
| Self::FourOmniMini
|
||||||
| Self::FourPointOne
|
| Self::FourPointOne
|
||||||
| Self::FourPointOneMini
|
| Self::FourPointOneMini
|
||||||
| Self::FourPointOneNano => true,
|
| Self::FourPointOneNano
|
||||||
|
| Self::Five
|
||||||
|
| Self::FiveMini
|
||||||
|
| Self::FiveNano => true,
|
||||||
Self::O1 | Self::O3 | Self::O3Mini | Self::O4Mini | Model::Custom { .. } => false,
|
Self::O1 | Self::O3 | Self::O3Mini | Self::O4Mini | Model::Custom { .. } => false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue