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