35 lines
848 B
Go
35 lines
848 B
Go
package model
|
||
|
||
// GetModelEnableGroups 返回指定模型名称可用的用户分组列表。
|
||
// 使用在 updatePricing() 中维护的缓存映射,O(1) 读取,适合高并发场景。
|
||
func GetModelEnableGroups(modelName string) []string {
|
||
// 确保缓存最新
|
||
GetPricing()
|
||
|
||
if modelName == "" {
|
||
return make([]string, 0)
|
||
}
|
||
|
||
modelEnableGroupsLock.RLock()
|
||
groups, ok := modelEnableGroups[modelName]
|
||
modelEnableGroupsLock.RUnlock()
|
||
if !ok {
|
||
return make([]string, 0)
|
||
}
|
||
return groups
|
||
}
|
||
|
||
// GetModelQuotaType 返回指定模型的计费类型(quota_type)。
|
||
// 同样使用缓存映射,避免每次遍历定价切片。
|
||
func GetModelQuotaType(modelName string) int {
|
||
GetPricing()
|
||
|
||
modelEnableGroupsLock.RLock()
|
||
quota, ok := modelQuotaTypeMap[modelName]
|
||
modelEnableGroupsLock.RUnlock()
|
||
if !ok {
|
||
return 0
|
||
}
|
||
return quota
|
||
}
|