Skip to content

Commit 6245d4e

Browse files
committed
fix: eliminate empty tier labels in selection metrics recording
Signed-off-by: Senan Zedan <szedan@redhat.com>
1 parent 015396a commit 6245d4e

19 files changed

Lines changed: 633 additions & 2219 deletions

docs/superpowers/plans/2026-03-29-algorithm-tier-classification.md

Lines changed: 0 additions & 1300 deletions
This file was deleted.

docs/superpowers/specs/2026-03-29-algorithm-tier-classification-design.md

Lines changed: 0 additions & 218 deletions
This file was deleted.

ml-binding/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ license = "Apache-2.0"
77

88
[lib]
99
name = "ml_semantic_router"
10-
crate-type = ["cdylib", "rlib"]
10+
crate-type = ["staticlib", "cdylib", "rlib"]
1111

1212
[dependencies]
1313
# Linfa ML framework - inference only (training done in Python)

src/semantic-router/pkg/extproc/req_filter_classification.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,7 @@ func (r *OpenAIRouter) selectModelFromCandidates(modelRefs []config.ModelRef, de
116116
modelRefs[i].LoRAName == result.SelectedModel {
117117
logging.Infof("[ModelSelection] Selected %s (method=%s, score=%.4f, confidence=%.2f): %s",
118118
result.SelectedModel, method, result.Score, result.Confidence, result.Reasoning)
119-
// Record selection metrics
120-
selection.RecordSelection(string(method), decisionName, result.SelectedModel, result.Score)
119+
selection.RecordSelection(string(method), decisionName, result.SelectedModel, result.Tier, result.Score)
121120
return &modelRefs[i], string(method)
122121
}
123122
}

src/semantic-router/pkg/extproc/router_selection.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ func collectConfiguredAlgorithmMethods(cfg *config.RouterConfig) []selection.Sel
4646
seen := make(map[string]bool)
4747
var methods []selection.SelectionMethod
4848

49-
for _, decision := range cfg.IntelligentRouting.Decisions {
49+
for _, decision := range cfg.Decisions {
5050
if decision.Algorithm == nil || decision.Algorithm.Type == "" {
5151
continue
5252
}

src/semantic-router/pkg/selection/automix.go

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -391,26 +391,6 @@ func (a *AutoMixSelector) UpdateFeedback(ctx context.Context, feedback *Feedback
391391
return nil
392392
}
393393

394-
// Tier returns the production readiness tier
395-
func (a *AutoMixSelector) Tier() AlgorithmTier {
396-
return TierExperimental
397-
}
398-
399-
// ExternalDependencies returns external dependencies for AutoMix
400-
func (a *AutoMixSelector) ExternalDependencies() []Dependency {
401-
deps := []Dependency{}
402-
if a.config.EnableSelfVerification && a.config.VerifierServerURL != "" {
403-
deps = append(deps, Dependency{
404-
Name: "AutoMix Verifier Server",
405-
Type: DependencyExternalService,
406-
Description: "LLM-based entailment verification for self-verification (arXiv:2310.12963)",
407-
HealthURL: a.config.VerifierServerURL + "/health",
408-
Required: true,
409-
})
410-
}
411-
return deps
412-
}
413-
414394
// computeExpectedValue calculates the expected value of using a model
415395
// V(model) = R(model) + γ * E[V(s') | escalation possible]
416396
func (a *AutoMixSelector) computeExpectedValue(model string, selCtx *SelectionContext) float64 {

src/semantic-router/pkg/selection/elo.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -767,13 +767,3 @@ func (e *EloSelector) GetLeaderboard(category string) []*ModelRating {
767767

768768
return ratings
769769
}
770-
771-
// Tier returns the production readiness tier
772-
func (e *EloSelector) Tier() AlgorithmTier {
773-
return TierSupported
774-
}
775-
776-
// ExternalDependencies returns external dependencies (none for Elo)
777-
func (e *EloSelector) ExternalDependencies() []Dependency {
778-
return []Dependency{}
779-
}

src/semantic-router/pkg/selection/gmtrouter.go

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -389,25 +389,6 @@ func (g *GMTRouterSelector) UpdateFeedback(ctx context.Context, feedback *Feedba
389389
return nil
390390
}
391391

392-
// Tier returns the production readiness tier
393-
func (g *GMTRouterSelector) Tier() AlgorithmTier {
394-
return TierExperimental
395-
}
396-
397-
// ExternalDependencies returns external dependencies for GMTRouter
398-
func (g *GMTRouterSelector) ExternalDependencies() []Dependency {
399-
deps := []Dependency{}
400-
if g.config.StoragePath != "" {
401-
deps = append(deps, Dependency{
402-
Name: "Pre-trained graph model",
403-
Type: DependencyPretrainedModel,
404-
Description: "Heterogeneous graph model weights (arXiv:2511.08590)",
405-
Required: false,
406-
})
407-
}
408-
return deps
409-
}
410-
411392
// addInteraction adds an interaction record to user state
412393
func (g *GMTRouterSelector) addInteraction(userID string, record InteractionRecord) {
413394
g.userMu.Lock()

src/semantic-router/pkg/selection/hybrid.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -478,13 +478,3 @@ func (h *HybridSelector) InitializeFromConfig(modelConfig map[string]config.Mode
478478
"model_count": len(modelConfig),
479479
})
480480
}
481-
482-
// Tier returns the production readiness tier
483-
func (h *HybridSelector) Tier() AlgorithmTier {
484-
return TierSupported
485-
}
486-
487-
// ExternalDependencies returns external dependencies (none for hybrid)
488-
func (h *HybridSelector) ExternalDependencies() []Dependency {
489-
return []Dependency{}
490-
}

src/semantic-router/pkg/selection/latency_aware.go

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -228,13 +228,3 @@ func (s *LatencyAwareSelector) UpdateFeedback(ctx context.Context, feedback *Fee
228228
_ = feedback
229229
return nil
230230
}
231-
232-
// Tier returns the production readiness tier
233-
func (l *LatencyAwareSelector) Tier() AlgorithmTier {
234-
return TierSupported
235-
}
236-
237-
// ExternalDependencies returns external dependencies (none for latency-aware)
238-
func (l *LatencyAwareSelector) ExternalDependencies() []Dependency {
239-
return []Dependency{}
240-
}

0 commit comments

Comments
 (0)