Add manual routing policy for router (#15586)

This commit is contained in:
fzyzcjy
2025-12-25 11:27:36 +08:00
committed by GitHub
parent 1ba897f330
commit 45adad37d0
35 changed files with 1128 additions and 65 deletions
@@ -44,6 +44,7 @@ fn test_backward_compatibility_with_empty_model_id() {
&workers,
&SelectWorkerInfo {
request_text: Some("test request"),
..Default::default()
},
);
assert!(selected.is_some(), "Should select a worker");
@@ -102,15 +103,24 @@ fn test_mixed_model_ids() {
let default_workers: Vec<Arc<dyn Worker>> =
vec![Arc::new(worker1.clone()), Arc::new(worker3.clone())];
let info = SelectWorkerInfo {
request_text: Some("test request"),
};
let selected = policy.select_worker(&default_workers, &info);
let selected = policy.select_worker(
&default_workers,
&SelectWorkerInfo {
request_text: Some("test request"),
..Default::default()
},
);
assert!(selected.is_some(), "Should select from default workers");
let llama_workers: Vec<Arc<dyn Worker>> =
vec![Arc::new(worker2.clone()), Arc::new(worker4.clone())];
let selected = policy.select_worker(&llama_workers, &info);
let selected = policy.select_worker(
&llama_workers,
&SelectWorkerInfo {
request_text: Some("test request"),
..Default::default()
},
);
assert!(selected.is_some(), "Should select from llama-3 workers");
let all_workers: Vec<Arc<dyn Worker>> = vec![
@@ -119,7 +129,13 @@ fn test_mixed_model_ids() {
Arc::new(worker3.clone()),
Arc::new(worker4.clone()),
];
let selected = policy.select_worker(&all_workers, &info);
let selected = policy.select_worker(
&all_workers,
&SelectWorkerInfo {
request_text: Some("test request"),
..Default::default()
},
);
assert!(selected.is_some(), "Should select from all workers");
}
@@ -156,6 +172,7 @@ fn test_remove_worker_by_url_backward_compat() {
&workers,
&SelectWorkerInfo {
request_text: Some("test"),
..Default::default()
},
);
assert_eq!(selected, Some(0), "Should only have worker2 left");