[model-gateway] Consolidate "unknown" model id usage (#17186)

This commit is contained in:
Chang Su
2026-01-15 21:02:40 -08:00
committed by GitHub
parent 21ee597e4a
commit 669d309a8b
5 changed files with 17 additions and 17 deletions
@@ -70,7 +70,7 @@ use super::{
CacheAwareConfig, LoadBalancingPolicy, SelectWorkerInfo, CacheAwareConfig, LoadBalancingPolicy, SelectWorkerInfo,
}; };
use crate::{ use crate::{
core::Worker, core::{Worker, UNKNOWN_MODEL_ID},
mesh::{tree_ops::TreeOperation, OptionalMeshSyncManager}, mesh::{tree_ops::TreeOperation, OptionalMeshSyncManager},
}; };
@@ -234,10 +234,10 @@ impl CacheAwarePolicy {
} }
/// Normalize model_id for mesh synchronization /// Normalize model_id for mesh synchronization
/// Converts "unknown" or empty to "default" for consistency /// Converts empty model_id to UNKNOWN_MODEL_ID for consistency
fn normalize_mesh_model_id(model_id: &str) -> &str { fn normalize_mesh_model_id(model_id: &str) -> &str {
if model_id.is_empty() || model_id == "unknown" { if model_id.is_empty() {
"default" UNKNOWN_MODEL_ID
} else { } else {
model_id model_id
} }
@@ -698,8 +698,8 @@ mod tests {
) )
.unwrap(); .unwrap();
// Verify tree operation was synced to mesh // Verify tree operation was synced to mesh (under UNKNOWN_MODEL_ID since no model was specified)
let tree_state = mesh_sync.get_tree_state("default"); let tree_state = mesh_sync.get_tree_state(UNKNOWN_MODEL_ID);
assert!(tree_state.is_some()); assert!(tree_state.is_some());
let tree = tree_state.unwrap(); let tree = tree_state.unwrap();
assert!(!tree.operations.is_empty()); assert!(!tree.operations.is_empty());
@@ -181,7 +181,7 @@ impl WorkerSelectionStage {
Metrics::record_worker_selection( Metrics::record_worker_selection(
metrics_labels::WORKER_REGULAR, metrics_labels::WORKER_REGULAR,
metrics_labels::CONNECTION_GRPC, metrics_labels::CONNECTION_GRPC,
model_id.unwrap_or("default"), model_id.unwrap_or(UNKNOWN_MODEL_ID),
policy.name(), policy.name(),
); );
@@ -247,7 +247,7 @@ impl WorkerSelectionStage {
let prefill_idx = policy.select_worker(&available_prefill, &info)?; let prefill_idx = policy.select_worker(&available_prefill, &info)?;
let decode_idx = policy.select_worker(&available_decode, &info)?; let decode_idx = policy.select_worker(&available_decode, &info)?;
let model = model_id.unwrap_or("default"); let model = model_id.unwrap_or(UNKNOWN_MODEL_ID);
let policy_name = policy.name(); let policy_name = policy.name();
// Record worker selection metrics for both prefill and decode // Record worker selection metrics for both prefill and decode
@@ -281,7 +281,7 @@ impl PDRouter {
let start_time = Instant::now(); let start_time = Instant::now();
let route = context.route; let route = context.route;
let model = context.model_id.unwrap_or("default"); let model = context.model_id.unwrap_or(UNKNOWN_MODEL_ID);
let endpoint = route_to_endpoint(route); let endpoint = route_to_endpoint(route);
// Record request start (Layer 2) // Record request start (Layer 2)
@@ -759,7 +759,7 @@ impl PDRouter {
)?; )?;
// Record worker selection metrics (Layer 3) // Record worker selection metrics (Layer 3)
let model = model_id.unwrap_or("default"); let model = model_id.unwrap_or(UNKNOWN_MODEL_ID);
Metrics::record_worker_selection( Metrics::record_worker_selection(
metrics_labels::WORKER_PREFILL, metrics_labels::WORKER_PREFILL,
metrics_labels::CONNECTION_HTTP, metrics_labels::CONNECTION_HTTP,
+2 -2
View File
@@ -181,7 +181,7 @@ impl Router {
Metrics::record_worker_selection( Metrics::record_worker_selection(
metrics_labels::WORKER_REGULAR, metrics_labels::WORKER_REGULAR,
metrics_labels::CONNECTION_HTTP, metrics_labels::CONNECTION_HTTP,
model_id.unwrap_or("default"), model_id.unwrap_or(UNKNOWN_MODEL_ID),
policy.name(), policy.name(),
); );
@@ -198,7 +198,7 @@ impl Router {
let start = Instant::now(); let start = Instant::now();
let is_stream = typed_req.is_stream(); let is_stream = typed_req.is_stream();
let text = typed_req.extract_text_for_routing(); let text = typed_req.extract_text_for_routing();
let model = model_id.unwrap_or("default"); let model = model_id.unwrap_or(UNKNOWN_MODEL_ID);
let endpoint = route_to_endpoint(route); let endpoint = route_to_endpoint(route);
// Record request start (Layer 2) // Record request start (Layer 2)
@@ -14,7 +14,7 @@ use tracing::{debug, error, warn};
use crate::{ use crate::{
app_context::AppContext, app_context::AppContext,
core::{steps::TokenizerConfigRequest, Job}, core::{steps::TokenizerConfigRequest, Job, UNKNOWN_MODEL_ID},
protocols::tokenize::{ protocols::tokenize::{
AddTokenizerRequest, AddTokenizerResponse, CountResult, DetokenizeRequest, AddTokenizerRequest, AddTokenizerResponse, CountResult, DetokenizeRequest,
DetokenizeResponse, ListTokenizersResponse, RemoveTokenizerResponse, TextResult, DetokenizeResponse, ListTokenizersResponse, RemoveTokenizerResponse, TextResult,
@@ -45,8 +45,8 @@ fn get_tokenizer(registry: &TokenizerRegistry, model: &str) -> Result<Arc<dyn To
return Ok(tokenizer); return Ok(tokenizer);
} }
// Try "default" if model is "default" or empty // Try UNKNOWN_MODEL_ID if model is "unknown" or empty
if model == "default" || model.is_empty() { if model == UNKNOWN_MODEL_ID || model.is_empty() {
// Try to find any tokenizer as fallback // Try to find any tokenizer as fallback
let entries = registry.list(); let entries = registry.list();
if let Some(first) = entries.first() { if let Some(first) = entries.first() {
@@ -414,9 +414,9 @@ mod tests {
} }
#[test] #[test]
fn test_get_tokenizer_default_fallback() { fn test_get_tokenizer_unknown_model_fallback() {
let registry = create_test_registry(); let registry = create_test_registry();
let result = get_tokenizer(&registry, "default"); let result = get_tokenizer(&registry, UNKNOWN_MODEL_ID);
assert!(result.is_ok()); assert!(result.is_ok());
} }