| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package controller
- import (
- "fmt"
- "strconv"
- "github.com/gin-gonic/gin"
- "github.com/labring/aiproxy/core/model"
- "github.com/labring/aiproxy/core/relay/adaptor/openai"
- )
- func GetImagesEditsRequestPrice(c *gin.Context, mc model.ModelConfig) (model.Price, error) {
- size := c.PostForm("size")
- quality := c.PostForm("quality")
- imageCostPrice, ok := GetImagesOutputPrice(mc, size, quality)
- if !ok {
- return model.Price{}, fmt.Errorf("invalid image size `%s` or quality `%s`", size, quality)
- }
- return model.Price{
- PerRequestPrice: mc.Price.PerRequestPrice,
- InputPrice: mc.Price.InputPrice,
- InputPriceUnit: mc.Price.InputPriceUnit,
- ImageInputPrice: mc.Price.ImageInputPrice,
- ImageInputPriceUnit: mc.Price.ImageInputPriceUnit,
- OutputPrice: model.ZeroNullFloat64(imageCostPrice),
- OutputPriceUnit: mc.Price.OutputPriceUnit,
- }, nil
- }
- func GetImagesEditsRequestUsage(c *gin.Context, mc model.ModelConfig) (model.Usage, error) {
- mutliForms, err := c.MultipartForm()
- if err != nil {
- return model.Usage{}, err
- }
- images := int64(len(mutliForms.File["image"]))
- prompt := c.PostForm("prompt")
- nStr := c.PostForm("n")
- n := 1
- if nStr != "" {
- n, err = strconv.Atoi(nStr)
- if err != nil {
- return model.Usage{}, err
- }
- }
- return model.Usage{
- InputTokens: model.ZeroNullInt64(openai.CountTokenInput(
- prompt,
- mc.Model,
- )),
- ImageInputTokens: model.ZeroNullInt64(images),
- OutputTokens: model.ZeroNullInt64(n),
- }, nil
- }
|