feat: publish sanitized custom.97 source
This commit is contained in:
1022 files changed
+69903
-19207
No files matched your search
@@ -0,0 +1,29 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/QuantumNous/new-api/model"
|
||||
"github.com/samber/hot"
|
||||
)
|
||||
|
||||
var groupModelPerformanceCache = hot.NewHotCache[string, model.GroupModelPerformance](hot.LRU, 2000).WithTTL(time.Minute).Build()
|
||||
var groupModelPerformanceMu sync.Mutex
|
||||
|
||||
// Share one snapshot between status display and automatic throughput ranking.
|
||||
func GroupModelPerformance(ctx context.Context, group, modelName string) (model.GroupModelPerformance, error) {
|
||||
key := fmt.Sprintf("%p/%p/%q/%q", model.DB, model.LOG_DB, group, modelName)
|
||||
groupModelPerformanceMu.Lock()
|
||||
defer groupModelPerformanceMu.Unlock()
|
||||
if value, found, err := groupModelPerformanceCache.Get(key); err == nil && found {
|
||||
return value, nil
|
||||
}
|
||||
value, err := model.GetGroupModelPerformance(ctx, group, modelName)
|
||||
if err == nil {
|
||||
groupModelPerformanceCache.Set(key, value)
|
||||
}
|
||||
return value, err
|
||||
}
|
||||
Reference in new issue
Block a user