Merge remote-tracking branch 'origin/pr/593'

This commit is contained in:
elky
2026-06-02 21:40:59 +08:00
56 changed files with 1605 additions and 42 deletions
+15
View File
@@ -0,0 +1,15 @@
pub(crate) fn normalized_signature(api_format: &str) -> Option<&'static str> {
match crate::ai_serving::normalize_api_format_alias(api_format).as_str() {
"aliyun:multimodal_embedding" => Some("aliyun:multimodal_embedding"),
_ => None,
}
}
pub(crate) fn local_path(api_format: &str) -> Option<&'static str> {
match crate::ai_serving::normalize_api_format_alias(api_format).as_str() {
"aliyun:multimodal_embedding" => {
Some("/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding")
}
_ => None,
}
}
+1
View File
@@ -1,3 +1,4 @@
mod aliyun;
mod claude;
mod doubao;
mod gemini;
+9 -1
View File
@@ -1,7 +1,7 @@
use axum::routing::{any, post};
use axum::Router;
use super::{claude, doubao, gemini, jina, openai};
use super::{aliyun, claude, doubao, gemini, jina, openai};
use crate::{handlers::proxy::proxy_request, state::AppState};
// Router registration patterns live here so AI public ingress has a single mount registry.
@@ -56,6 +56,7 @@ pub(crate) fn public_api_format_local_path(api_format: &str) -> &'static str {
.or_else(|| gemini::local_path(&normalized))
.or_else(|| jina::local_path(&normalized))
.or_else(|| doubao::local_path(&normalized))
.or_else(|| aliyun::local_path(&normalized))
.unwrap_or("/")
}
@@ -66,6 +67,7 @@ pub(crate) fn normalize_admin_endpoint_signature(api_format: &str) -> Option<&'s
.or_else(|| gemini::normalized_signature(&normalized))
.or_else(|| jina::normalized_signature(&normalized))
.or_else(|| doubao::normalized_signature(&normalized))
.or_else(|| aliyun::normalized_signature(&normalized))
}
pub(crate) fn admin_endpoint_signature_parts(
@@ -101,6 +103,12 @@ mod tests {
),
("jina:embedding", "jina", "embedding", "/v1/embeddings"),
("doubao:embedding", "doubao", "embedding", "/v1/embeddings"),
(
"aliyun:multimodal_embedding",
"aliyun",
"multimodal_embedding",
"/api/v1/services/embeddings/multimodal-embedding/multimodal-embedding",
),
("openai:rerank", "openai", "rerank", "/v1/rerank"),
("jina:rerank", "jina", "rerank", "/v1/rerank"),
] {