diff --git a/service/aiproxy/middleware/distributor.go b/service/aiproxy/middleware/distributor.go index 2befdd35e34..34ed28b66b3 100644 --- a/service/aiproxy/middleware/distributor.go +++ b/service/aiproxy/middleware/distributor.go @@ -4,6 +4,7 @@ import ( "fmt" "net/http" "slices" + "strconv" "strings" "time" @@ -117,18 +118,19 @@ type GroupBalanceConsumer struct { } func checkGroupBalance(c *gin.Context, group *model.GroupCache) bool { + log := GetLogger(c) groupBalance, consumer, err := balance.Default.GetGroupRemainBalance(c.Request.Context(), group.ID) if err != nil { - GetLogger(c).Errorf("get group (%s) balance error: %v", group.ID, err) + log.Errorf("get group (%s) balance error: %v", group.ID, err) abortWithMessage(c, http.StatusInternalServerError, "get group balance error") return false } + log.Data["balance"] = strconv.FormatFloat(groupBalance, 'f', -1, 64) + if groupBalance <= 0 { abortLogWithMessage(c, http.StatusForbidden, "group balance not enough") return false } - log := GetLogger(c) - log.Data["balance"] = groupBalance c.Set(ctxkey.GroupBalance, &GroupBalanceConsumer{ GroupBalance: groupBalance, Consumer: consumer, diff --git a/service/aiproxy/relay/controller/handle.go b/service/aiproxy/relay/controller/handle.go index 4cf6a5aad93..d2170d5082d 100644 --- a/service/aiproxy/relay/controller/handle.go +++ b/service/aiproxy/relay/controller/handle.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "net/http" + "strconv" "github.com/gin-gonic/gin" "github.com/labring/sealos/service/aiproxy/common" @@ -121,7 +122,7 @@ func Handle(meta *meta.Meta, c *gin.Context, preProcess func() (*PreCheckGroupBa amount := consume.CalculateAmount(usage, preCheckReq.InputPrice, preCheckReq.OutputPrice) if amount > 0 { - log.Data["amount"] = amount + log.Data["amount"] = strconv.FormatFloat(amount, 'f', -1, 64) } // 6. Post consume