mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-03 01:40:21 +08:00
fix: align embedding provider request formats
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
|
use serde_json::Map;
|
||||||
use serde_json::Value;
|
use serde_json::Value;
|
||||||
use serde_json::{json, Map};
|
|
||||||
|
|
||||||
use crate::formats::context::FormatContext;
|
use crate::formats::context::FormatContext;
|
||||||
use crate::formats::openai::embedding::request::mapped_embedding_model;
|
use crate::formats::openai::embedding::request::mapped_embedding_model;
|
||||||
@@ -24,7 +24,7 @@ pub fn to(request: &CanonicalRequest, ctx: &FormatContext) -> Option<Value> {
|
|||||||
Value::Array(
|
Value::Array(
|
||||||
items
|
items
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.map(|text| json!({"type": "text", "text": text}))
|
.map(|text| Value::String(text.to_string()))
|
||||||
.collect(),
|
.collect(),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -239,11 +239,11 @@ mod tests {
|
|||||||
"openai:embedding",
|
"openai:embedding",
|
||||||
"doubao:embedding",
|
"doubao:embedding",
|
||||||
&body,
|
&body,
|
||||||
&FormatContext::default().with_mapped_model("doubao-embedding-vision"),
|
&FormatContext::default().with_mapped_model("doubao-embedding-text-240515"),
|
||||||
)
|
)
|
||||||
.expect("doubao embedding conversion should succeed");
|
.expect("doubao embedding conversion should succeed");
|
||||||
assert_eq!(doubao["model"], "doubao-embedding-vision");
|
assert_eq!(doubao["model"], "doubao-embedding-text-240515");
|
||||||
assert_eq!(doubao["input"][0], json!({"type": "text", "text": "alpha"}));
|
assert_eq!(doubao["input"], json!(["alpha", "beta"]));
|
||||||
assert!(doubao.get("messages").is_none());
|
assert!(doubao.get("messages").is_none());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4758,10 +4758,13 @@ mod tests {
|
|||||||
);
|
);
|
||||||
assert!(gemini.get("messages").is_none());
|
assert!(gemini.get("messages").is_none());
|
||||||
|
|
||||||
let doubao =
|
let doubao = super::canonical_to_embedding_request(
|
||||||
super::canonical_to_embedding_request(&canonical, "doubao-embedding-vision", "doubao")
|
&canonical,
|
||||||
.expect("doubao embedding request");
|
"doubao-embedding-text-240515",
|
||||||
assert_eq!(doubao["input"][0], json!({"type": "text", "text": "alpha"}));
|
"doubao",
|
||||||
|
)
|
||||||
|
.expect("doubao embedding request");
|
||||||
|
assert_eq!(doubao["input"], json!(["alpha", "beta"]));
|
||||||
assert!(doubao.get("messages").is_none());
|
assert!(doubao.get("messages").is_none());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4802,11 +4805,14 @@ mod tests {
|
|||||||
assert_eq!(gemini["content"]["parts"][0]["text"], "alpha");
|
assert_eq!(gemini["content"]["parts"][0]["text"], "alpha");
|
||||||
assert!(gemini.get("requests").is_none());
|
assert!(gemini.get("requests").is_none());
|
||||||
|
|
||||||
let doubao =
|
let doubao = super::canonical_to_embedding_request(
|
||||||
super::canonical_to_embedding_request(&single, "doubao-embedding-vision", "doubao")
|
&single,
|
||||||
.expect("doubao embedding request");
|
"doubao-embedding-text-240515",
|
||||||
assert_eq!(doubao["model"], "doubao-embedding-vision");
|
"doubao",
|
||||||
assert_eq!(doubao["input"], json!([{"type": "text", "text": "alpha"}]));
|
)
|
||||||
|
.expect("doubao embedding request");
|
||||||
|
assert_eq!(doubao["model"], "doubao-embedding-text-240515");
|
||||||
|
assert_eq!(doubao["input"], json!(["alpha"]));
|
||||||
assert_eq!(doubao["dimensions"], 1536);
|
assert_eq!(doubao["dimensions"], 1536);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ pub fn build_transport_request_url(
|
|||||||
),
|
),
|
||||||
"doubao:embedding" => build_passthrough_path_url(
|
"doubao:embedding" => build_passthrough_path_url(
|
||||||
&transport.endpoint.base_url,
|
&transport.endpoint.base_url,
|
||||||
"/embeddings/multimodal",
|
"/embeddings",
|
||||||
params.request_query,
|
params.request_query,
|
||||||
&[],
|
&[],
|
||||||
),
|
),
|
||||||
@@ -818,14 +818,14 @@ mod tests {
|
|||||||
&doubao,
|
&doubao,
|
||||||
TransportRequestUrlParams {
|
TransportRequestUrlParams {
|
||||||
provider_api_format: "doubao:embedding",
|
provider_api_format: "doubao:embedding",
|
||||||
mapped_model: Some("doubao-embedding-vision"),
|
mapped_model: Some("doubao-embedding-text-240515"),
|
||||||
upstream_is_stream: false,
|
upstream_is_stream: false,
|
||||||
request_query: None,
|
request_query: None,
|
||||||
kiro_api_region: None,
|
kiro_api_region: None,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
.as_deref(),
|
.as_deref(),
|
||||||
Some("https://ark.volces.example/api/v3/embeddings/multimodal")
|
Some("https://ark.volces.example/api/v3/embeddings")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -943,14 +943,14 @@ mod tests {
|
|||||||
&doubao_with_query,
|
&doubao_with_query,
|
||||||
TransportRequestUrlParams {
|
TransportRequestUrlParams {
|
||||||
provider_api_format: "doubao:embedding",
|
provider_api_format: "doubao:embedding",
|
||||||
mapped_model: Some("doubao-embedding-vision"),
|
mapped_model: Some("doubao-embedding-text-240515"),
|
||||||
upstream_is_stream: false,
|
upstream_is_stream: false,
|
||||||
request_query: Some("trace=4"),
|
request_query: Some("trace=4"),
|
||||||
kiro_api_region: None,
|
kiro_api_region: None,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
.as_deref(),
|
.as_deref(),
|
||||||
Some("https://ark.volces.example/api/v3/embeddings/multimodal?tenant=base&trace=4")
|
Some("https://ark.volces.example/api/v3/embeddings?tenant=base&trace=4")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user