fix(routing): 对齐缓存亲和力硬规则与审计
This commit is contained in:
@@ -120,7 +120,7 @@ func TestRuntimeCandidateSortingPrefersCacheAffinityWithinAvailableCandidates(t
|
||||
},
|
||||
{
|
||||
PlatformID: "cache-affinity",
|
||||
PlatformPriority: 20,
|
||||
PlatformPriority: 10,
|
||||
},
|
||||
}
|
||||
applyRuntimeCandidateCacheAffinity(&candidates[0], ListModelCandidatesOptions{
|
||||
@@ -148,7 +148,7 @@ func TestRuntimeCandidateSortingPrefersCacheAffinityWithinAvailableCandidates(t
|
||||
}
|
||||
}
|
||||
|
||||
func TestRuntimeCandidateSortingPromotesObservedCacheHitAbovePriority(t *testing.T) {
|
||||
func TestRuntimeCandidateSortingKeepsEffectivePriorityAheadOfCacheAffinity(t *testing.T) {
|
||||
candidates := []RuntimeModelCandidate{
|
||||
{
|
||||
PlatformID: "volces-priority",
|
||||
@@ -177,14 +177,17 @@ func TestRuntimeCandidateSortingPromotesObservedCacheHitAbovePriority(t *testing
|
||||
|
||||
sortRuntimeModelCandidates(candidates)
|
||||
|
||||
if candidates[0].PlatformID != "deepseek-cache-hit" || !candidates[0].CacheAffinity.Applied {
|
||||
t.Fatalf("expected observed cache hit to outrank platform priority, got %+v", candidates)
|
||||
if candidates[0].PlatformID != "volces-priority" || candidates[0].CacheAffinity.Applied {
|
||||
t.Fatalf("expected effective priority tier to remain first, got %+v", candidates)
|
||||
}
|
||||
if candidates[0].CacheAffinity.Score <= 0 || candidates[0].CacheAffinity.Boost <= 0 {
|
||||
t.Fatalf("expected observed cache hit to carry score and boost, got %+v", candidates[0].CacheAffinity)
|
||||
if candidates[0].CacheAffinity.OverrideReason != "different_effective_priority_tier" {
|
||||
t.Fatalf("expected priority override reason on selected candidate, got %+v", candidates[0].CacheAffinity)
|
||||
}
|
||||
if candidates[1].PlatformID != "volces-priority" || candidates[1].CacheAffinity.Applied {
|
||||
t.Fatalf("expected priority-only candidate second, got %+v", candidates)
|
||||
if candidates[1].PlatformID != "deepseek-cache-hit" || !candidates[1].CacheAffinity.Applied {
|
||||
t.Fatalf("expected cache affinity candidate to remain visible as fallback, got %+v", candidates)
|
||||
}
|
||||
if candidates[1].CacheAffinity.Score <= 0 || candidates[1].CacheAffinity.Boost <= 0 {
|
||||
t.Fatalf("expected observed cache hit to retain score and boost diagnostics, got %+v", candidates[1].CacheAffinity)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -196,7 +199,7 @@ func TestRuntimeCandidateSortingOrdersMultipleCacheAffinityCandidatesByScore(t *
|
||||
},
|
||||
{
|
||||
PlatformID: "higher-cache-score",
|
||||
PlatformPriority: 50,
|
||||
PlatformPriority: 1,
|
||||
},
|
||||
}
|
||||
policy := map[string]any{"enabled": true, "minSamples": 1, "maxPriorityBoost": 20, "modelTypes": []any{"text_generate"}}
|
||||
@@ -260,6 +263,29 @@ func TestRuntimeCandidateSortingKeepsFullCacheAffinityCandidateAvoided(t *testin
|
||||
if candidates[1].PlatformID != "cache-affinity-full" || !candidates[1].LoadAvoided {
|
||||
t.Fatalf("expected full cache-affinity candidate to remain avoided fallback, got %+v", candidates)
|
||||
}
|
||||
if candidates[0].CacheAffinity.OverrideReason != "capacity_tier_unavailable" {
|
||||
t.Fatalf("expected capacity override reason on selected candidate, got %+v", candidates[0].CacheAffinity)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCacheAffinityMatchedPrefixDepthIgnoresLegacyCompatibilityKeys(t *testing.T) {
|
||||
lookup := []string{
|
||||
"prompt_lcp_v2:depth-four",
|
||||
"prompt_lcp_v2:depth-three",
|
||||
"prompt_lcp_v2:depth-two",
|
||||
"prompt_lcp:depth-four",
|
||||
"prompt_lcp:depth-three",
|
||||
"prompt_lcp:depth-two",
|
||||
}
|
||||
if depth := cacheAffinityMatchedPrefixDepth("prompt_lcp_v2:depth-three", lookup); depth != 3 {
|
||||
t.Fatalf("V2 matched prefix depth=%d want=3", depth)
|
||||
}
|
||||
if depth := cacheAffinityMatchedPrefixDepth("prompt_lcp:depth-two", lookup); depth != 2 {
|
||||
t.Fatalf("legacy matched prefix depth=%d want=2", depth)
|
||||
}
|
||||
if depth := cacheAffinityMatchedPrefixDepth("explicit:key", lookup); depth != 0 {
|
||||
t.Fatalf("explicit key prefix depth=%d want=0", depth)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDefaultRunnerPriorityDemotePolicyUsesAutoMode(t *testing.T) {
|
||||
|
||||
Reference in New Issue
Block a user