| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- package operation_setting
- import (
- "encoding/json"
- "one-api/common"
- "sync"
- )
- var defaultCacheRatio = map[string]float64{
- "gpt-4": 0.5,
- "o1-2024-12-17": 0.5,
- "o1-preview-2024-09-12": 0.5,
- "o1-mini-2024-09-12": 0.5,
- "gpt-4o-2024-11-20": 0.5,
- "gpt-4o-2024-08-06": 0.5,
- "gpt-4o-mini-2024-07-18": 0.5,
- "gpt-4o-realtime-preview": 0.5,
- "gpt-4o-mini-realtime-preview": 0.5,
- "deepseek-chat": 0.5,
- "deepseek-reasoner": 0.5,
- "deepseek-coder": 0.5,
- }
- var cacheRatioMap map[string]float64
- var cacheRatioMapMutex sync.RWMutex
- // GetCacheRatioMap returns the cache ratio map
- func GetCacheRatioMap() map[string]float64 {
- cacheRatioMapMutex.Lock()
- defer cacheRatioMapMutex.Unlock()
- if cacheRatioMap == nil {
- cacheRatioMap = defaultCacheRatio
- }
- return cacheRatioMap
- }
- // CacheRatio2JSONString converts the cache ratio map to a JSON string
- func CacheRatio2JSONString() string {
- GetCacheRatioMap()
- jsonBytes, err := json.Marshal(cacheRatioMap)
- if err != nil {
- common.SysError("error marshalling cache ratio: " + err.Error())
- }
- return string(jsonBytes)
- }
- // UpdateCacheRatioByJSONString updates the cache ratio map from a JSON string
- func UpdateCacheRatioByJSONString(jsonStr string) error {
- cacheRatioMapMutex.Lock()
- defer cacheRatioMapMutex.Unlock()
- cacheRatioMap = make(map[string]float64)
- return json.Unmarshal([]byte(jsonStr), &cacheRatioMap)
- }
- // GetCacheRatio returns the cache ratio for a model
- func GetCacheRatio(name string) (float64, bool) {
- GetCacheRatioMap()
- ratio, ok := cacheRatioMap[name]
- if !ok {
- return 0.5, false // Default to 0.5 if not found
- }
- return ratio, true
- }
- // DefaultCacheRatio2JSONString converts the default cache ratio map to a JSON string
- func DefaultCacheRatio2JSONString() string {
- jsonBytes, err := json.Marshal(defaultCacheRatio)
- if err != nil {
- common.SysError("error marshalling default cache ratio: " + err.Error())
- }
- return string(jsonBytes)
- }
- // GetDefaultCacheRatioMap returns the default cache ratio map
- func GetDefaultCacheRatioMap() map[string]float64 {
- return defaultCacheRatio
- }
|