670abee2f0
Added checks to ensure clipboard functionality is available before attempting to read from it. Improved error handling during clipboard read operations to prevent unhandled exceptions.
76 lines
1.8 KiB
Go
76 lines
1.8 KiB
Go
package controller
|
|
|
|
import (
|
|
"github.com/QuantumNous/new-api/model"
|
|
"github.com/QuantumNous/new-api/service"
|
|
"github.com/QuantumNous/new-api/setting/ratio_setting"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func GetPricing(c *gin.Context) {
|
|
pricing := model.GetPricing()
|
|
userId, exists := c.Get("id")
|
|
usableGroup := map[string]string{}
|
|
groupRatio := map[string]float64{}
|
|
for s, f := range ratio_setting.GetGroupRatioCopy() {
|
|
groupRatio[s] = f
|
|
}
|
|
var group string
|
|
if exists {
|
|
user, err := model.GetUserCache(userId.(int))
|
|
if err == nil {
|
|
group = user.Group
|
|
for g := range groupRatio {
|
|
ratio, ok := ratio_setting.GetGroupGroupRatio(group, g)
|
|
if ok {
|
|
groupRatio[g] = ratio
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
usableGroup = service.GetUserUsableGroups(group)
|
|
// check groupRatio contains usableGroup
|
|
for group := range ratio_setting.GetGroupRatioCopy() {
|
|
if _, ok := usableGroup[group]; !ok {
|
|
delete(groupRatio, group)
|
|
}
|
|
}
|
|
|
|
c.JSON(200, gin.H{
|
|
"success": true,
|
|
"data": pricing,
|
|
"vendors": model.GetVendors(),
|
|
"group_ratio": groupRatio,
|
|
"usable_group": usableGroup,
|
|
"supported_endpoint": model.GetSupportedEndpointMap(),
|
|
"auto_groups": service.GetUserAutoGroup(group),
|
|
"pricing_version": "a42d372ccf0b5dd13ecf71203521f9d2",
|
|
})
|
|
}
|
|
|
|
func ResetModelRatio(c *gin.Context) {
|
|
defaultStr := ratio_setting.DefaultModelRatio2JSONString()
|
|
err := model.UpdateOption("ModelRatio", defaultStr)
|
|
if err != nil {
|
|
c.JSON(200, gin.H{
|
|
"success": false,
|
|
"message": err.Error(),
|
|
})
|
|
return
|
|
}
|
|
err = ratio_setting.UpdateModelRatioByJSONString(defaultStr)
|
|
if err != nil {
|
|
c.JSON(200, gin.H{
|
|
"success": false,
|
|
"message": err.Error(),
|
|
})
|
|
return
|
|
}
|
|
c.JSON(200, gin.H{
|
|
"success": true,
|
|
"message": "重置模型倍率成功",
|
|
})
|
|
}
|