feat: add bucket score global router

This commit is contained in:
2026-04-17 17:55:54 +08:00
parent b5a6fb964c
commit 43ada0cfc0
4 changed files with 311 additions and 23 deletions

View File

@@ -52,7 +52,7 @@ impl BucketedService {
let bucket_views = self
.buckets
.iter()
.map(|bucket| bucket.cluster.bucket_view(bucket.id, &bucket.cfg))
.map(|bucket| bucket.cluster.bucket_view(bucket.id, &bucket.cfg, req, now))
.collect::<Vec<_>>();
let global = self.global_router.route(req, &bucket_views, now)?;
let bucket = &mut self.buckets[global.chosen_bucket as usize];
@@ -213,21 +213,4 @@ mod tests {
assert!(err.to_string().contains("no bucket"));
assert!(err.to_string().contains("input_length=36"));
}
#[test]
fn bucket_score_placeholder_reports_strict_fallback() {
let mut cfg = test_config();
cfg.cluster.global_router.mode = GlobalRouterMode::BucketScore;
let mut service = BucketedService::new(&cfg, &cfg.model);
let stats = service
.route_and_admit(&req(4, 24, &[30, 31]), 0.0)
.unwrap();
assert_eq!(stats.decision.global_mode, "strict_input_length");
assert!(stats
.decision
.global_reason
.contains("bucket_score is not implemented"));
}
}