| | 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) |
| | |
| | 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), |
| | }) |
| | } |
| |
|
| | 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": "้็ฝฎๆจกๅๅ็ๆๅ", |
| | }) |
| | } |
| |
|