[router] add different policies for p node and d node (#8395)
This commit is contained in:
@@ -17,7 +17,16 @@ impl RouterFactory {
|
||||
RoutingMode::PrefillDecode {
|
||||
prefill_urls,
|
||||
decode_urls,
|
||||
} => Self::create_pd_router(prefill_urls, decode_urls, &config.policy, config),
|
||||
prefill_policy,
|
||||
decode_policy,
|
||||
} => Self::create_pd_router(
|
||||
prefill_urls,
|
||||
decode_urls,
|
||||
prefill_policy.as_ref(),
|
||||
decode_policy.as_ref(),
|
||||
&config.policy,
|
||||
config,
|
||||
),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,18 +54,23 @@ impl RouterFactory {
|
||||
fn create_pd_router(
|
||||
prefill_urls: &[(String, Option<u16>)],
|
||||
decode_urls: &[String],
|
||||
policy_config: &PolicyConfig,
|
||||
prefill_policy_config: Option<&PolicyConfig>,
|
||||
decode_policy_config: Option<&PolicyConfig>,
|
||||
main_policy_config: &PolicyConfig,
|
||||
router_config: &RouterConfig,
|
||||
) -> Result<Box<dyn RouterTrait>, String> {
|
||||
// Create policy directly from PolicyConfig
|
||||
// All policies now support PD mode through the select_worker_pair method
|
||||
let policy = PolicyFactory::create_from_config(policy_config);
|
||||
// Create policies - use specific policies if provided, otherwise fall back to main policy
|
||||
let prefill_policy =
|
||||
PolicyFactory::create_from_config(prefill_policy_config.unwrap_or(main_policy_config));
|
||||
let decode_policy =
|
||||
PolicyFactory::create_from_config(decode_policy_config.unwrap_or(main_policy_config));
|
||||
|
||||
// Create PD router with injected policy
|
||||
// Create PD router with separate policies
|
||||
let router = PDRouter::new(
|
||||
prefill_urls.to_vec(),
|
||||
decode_urls.to_vec(),
|
||||
policy,
|
||||
prefill_policy,
|
||||
decode_policy,
|
||||
router_config.worker_startup_timeout_secs,
|
||||
router_config.worker_startup_check_interval_secs,
|
||||
)?;
|
||||
|
||||
Reference in New Issue
Block a user