feat: add runner failover rules and cache affinity
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
package runner
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/easyai/easyai-ai-gateway/apps/api/internal/store"
|
||||
)
|
||||
|
||||
func TestAttemptMetricsIncludesCacheAffinityCoefficient(t *testing.T) {
|
||||
metrics := attemptMetrics(store.RuntimeModelCandidate{
|
||||
ModelName: "deepseek-chat",
|
||||
ModelType: "text_generate",
|
||||
PlatformID: "deepseek-platform",
|
||||
PlatformPriority: 100,
|
||||
CacheAffinity: store.RuntimeCandidateCacheAffinity{
|
||||
Key: "conversation:test",
|
||||
RequestCount: 2,
|
||||
CachedInputTokens: 7296,
|
||||
EMAHitRatio: 0.91,
|
||||
LastHitRatio: 0.92,
|
||||
Confidence: 1,
|
||||
Score: 1.74,
|
||||
Boost: 20,
|
||||
AdjustedPriority: 80,
|
||||
Applied: true,
|
||||
},
|
||||
}, 1, false)
|
||||
|
||||
if metrics["cacheAffinityScore"] != 1.74 {
|
||||
t.Fatalf("expected cache affinity score in attempt metrics, got %+v", metrics)
|
||||
}
|
||||
if metrics["cacheAffinityCachedInputTokens"] != 7296 {
|
||||
t.Fatalf("expected cached input tokens in attempt metrics, got %+v", metrics)
|
||||
}
|
||||
if metrics["cacheAffinityHitRatio"] != 0.91 || metrics["cacheAffinityLastHitRatio"] != 0.92 {
|
||||
t.Fatalf("expected hit ratios in attempt metrics, got %+v", metrics)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user