mirror of
https://github.com/katanemo/plano.git
synced 2026-05-06 14:22:51 +02:00
cargo fmt
This commit is contained in:
parent
2ef938ac5f
commit
b12bf74e5c
2 changed files with 13 additions and 15 deletions
|
|
@ -72,8 +72,8 @@ pub fn extract_routing_policy(
|
|||
let top_level_preferences = json_body
|
||||
.as_object_mut()
|
||||
.and_then(|o| o.remove("routing_preferences"))
|
||||
.and_then(|value| {
|
||||
match serde_json::from_value::<Vec<TopLevelRoutingPreference>>(value) {
|
||||
.and_then(
|
||||
|value| match serde_json::from_value::<Vec<TopLevelRoutingPreference>>(value) {
|
||||
Ok(prefs) => {
|
||||
info!(
|
||||
num_routes = prefs.len(),
|
||||
|
|
@ -85,8 +85,8 @@ pub fn extract_routing_policy(
|
|||
warn!(error = %err, "failed to parse routing_preferences");
|
||||
None
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
let bytes = Bytes::from(serde_json::to_vec(&json_body).unwrap());
|
||||
Ok((bytes, legacy_preferences, top_level_preferences))
|
||||
|
|
@ -363,7 +363,10 @@ mod tests {
|
|||
let top_prefs = top_prefs.expect("should have parsed top-level routing_preferences");
|
||||
assert_eq!(top_prefs.len(), 1);
|
||||
assert_eq!(top_prefs[0].name, "code generation");
|
||||
assert_eq!(top_prefs[0].models, vec!["openai/gpt-4o", "openai/gpt-4o-mini"]);
|
||||
assert_eq!(
|
||||
top_prefs[0].models,
|
||||
vec!["openai/gpt-4o", "openai/gpt-4o-mini"]
|
||||
);
|
||||
|
||||
let cleaned_json: serde_json::Value = serde_json::from_slice(&cleaned).unwrap();
|
||||
assert!(cleaned_json.get("routing_preferences").is_none());
|
||||
|
|
|
|||
|
|
@ -50,10 +50,8 @@ impl RouterService {
|
|||
// Build top-level preference map and sentinel llm_routes when v0.4.0 format is used.
|
||||
let (top_level_preferences, llm_routes, llm_usage_defined) =
|
||||
if let Some(top_prefs) = top_level_prefs {
|
||||
let top_level_map: HashMap<String, TopLevelRoutingPreference> = top_prefs
|
||||
.into_iter()
|
||||
.map(|p| (p.name.clone(), p))
|
||||
.collect();
|
||||
let top_level_map: HashMap<String, TopLevelRoutingPreference> =
|
||||
top_prefs.into_iter().map(|p| (p.name.clone(), p)).collect();
|
||||
// Build sentinel routes: route_name → first model (RouterModelV1 needs a model
|
||||
// mapping, but RouterService overrides the selection via metrics_service).
|
||||
let sentinel_routes: HashMap<String, Vec<RoutingPreference>> = top_level_map
|
||||
|
|
@ -125,9 +123,8 @@ impl RouterService {
|
|||
|
||||
// Build inline top-level map from request if present (inline overrides config).
|
||||
let inline_top_map: Option<HashMap<String, TopLevelRoutingPreference>> =
|
||||
inline_routing_preferences.map(|prefs| {
|
||||
prefs.into_iter().map(|p| (p.name.clone(), p)).collect()
|
||||
});
|
||||
inline_routing_preferences
|
||||
.map(|prefs| prefs.into_iter().map(|p| (p.name.clone(), p)).collect());
|
||||
|
||||
// Determine whether any routing is defined.
|
||||
let has_top_level = inline_top_map.is_some() || !self.top_level_preferences.is_empty();
|
||||
|
|
@ -221,9 +218,7 @@ impl RouterService {
|
|||
|
||||
if let Some(pref) = top_pref {
|
||||
let selected_model = match &self.metrics_service {
|
||||
Some(svc) => {
|
||||
svc.select_model(&pref.models, &pref.selection_policy).await
|
||||
}
|
||||
Some(svc) => svc.select_model(&pref.models, &pref.selection_policy).await,
|
||||
None => pref.models.first().cloned().unwrap_or_default(),
|
||||
};
|
||||
Some((route_name, selected_model))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue