price_data.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package types
  2. import "fmt"
  3. type GroupRatioInfo struct {
  4. GroupRatio float64
  5. GroupSpecialRatio float64
  6. HasSpecialRatio bool
  7. }
  8. type PriceData struct {
  9. FreeModel bool
  10. ModelPrice float64
  11. ModelRatio float64
  12. CompletionRatio float64
  13. CacheRatio float64
  14. CacheCreationRatio float64
  15. CacheCreation5mRatio float64
  16. CacheCreation1hRatio float64
  17. ImageRatio float64
  18. ImageOutputRatio float64
  19. AudioRatio float64
  20. AudioCompletionRatio float64
  21. OtherRatios map[string]float64
  22. UsePrice bool
  23. QuotaToPreConsume int // 预消耗额度
  24. GroupRatioInfo GroupRatioInfo
  25. }
  26. func (p *PriceData) AddOtherRatio(key string, ratio float64) {
  27. if p.OtherRatios == nil {
  28. p.OtherRatios = make(map[string]float64)
  29. }
  30. if ratio <= 0 {
  31. return
  32. }
  33. p.OtherRatios[key] = ratio
  34. }
  35. type PerCallPriceData struct {
  36. ModelPrice float64
  37. Quota int
  38. GroupRatioInfo GroupRatioInfo
  39. }
  40. func (p *PriceData) ToSetting() string {
  41. return fmt.Sprintf("ModelPrice: %f, ModelRatio: %f, CompletionRatio: %f, CacheRatio: %f, GroupRatio: %f, UsePrice: %t, CacheCreationRatio: %f, CacheCreation5mRatio: %f, CacheCreation1hRatio: %f, QuotaToPreConsume: %d, ImageRatio: %f, AudioRatio: %f, AudioCompletionRatio: %f", p.ModelPrice, p.ModelRatio, p.CompletionRatio, p.CacheRatio, p.GroupRatioInfo.GroupRatio, p.UsePrice, p.CacheCreationRatio, p.CacheCreation5mRatio, p.CacheCreation1hRatio, p.QuotaToPreConsume, p.ImageRatio, p.AudioRatio, p.AudioCompletionRatio)
  42. }