Normalize canonical API formats

This commit is contained in:
fawney19
2026-04-29 09:25:19 +08:00
parent 02ad67fe33
commit 07a319259b
171 changed files with 2460 additions and 1962 deletions

View File

@@ -12,13 +12,13 @@ pub(crate) fn models_api_format(request_context: &GatewayPublicRequestContext) -
.and_then(|decision| decision.auth_endpoint_signature.as_deref())
.map(str::trim)
.filter(|signature| !signature.is_empty())?;
match crate::ai_pipeline::normalize_legacy_openai_format_alias(signature).as_str() {
match crate::ai_pipeline::normalize_api_format_alias(signature).as_str() {
"openai:chat" => Some("openai:chat"),
"openai:responses" => Some("openai:responses"),
"openai:responses:compact" => Some("openai:responses:compact"),
"openai:image" => Some("openai:image"),
"claude:chat" => Some("claude:chat"),
"gemini:chat" => Some("gemini:chat"),
"claude:messages" => Some("claude:messages"),
"gemini:generate_content" => Some("gemini:generate_content"),
_ => None,
}
}
@@ -27,22 +27,18 @@ const MODELS_CROSS_FORMAT_QUERY_API_FORMATS: &[&str] = &[
"openai:chat",
"openai:responses",
"openai:responses:compact",
"openai:cli",
"openai:compact",
"openai:image",
"claude:chat",
"claude:cli",
"gemini:chat",
"gemini:cli",
"claude:messages",
"gemini:generate_content",
];
pub(super) fn models_query_api_formats(api_format: &str) -> &'static [&'static str] {
match crate::ai_pipeline::normalize_legacy_openai_format_alias(api_format).as_str() {
match crate::ai_pipeline::normalize_api_format_alias(api_format).as_str() {
"openai:chat"
| "openai:responses"
| "openai:responses:compact"
| "claude:chat"
| "gemini:chat" => MODELS_CROSS_FORMAT_QUERY_API_FORMATS,
| "claude:messages"
| "gemini:generate_content" => MODELS_CROSS_FORMAT_QUERY_API_FORMATS,
"openai:image" => &["openai:image"],
_ => &[],
}