price_data.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  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. AudioRatio float64
  19. AudioCompletionRatio float64
  20. OtherRatios map[string]float64
  21. UsePrice bool
  22. QuotaToPreConsume int // 预消耗额度
  23. GroupRatioInfo GroupRatioInfo
  24. }
  25. type PerCallPriceData struct {
  26. ModelPrice float64
  27. Quota int
  28. GroupRatioInfo GroupRatioInfo
  29. }
  30. func (p PriceData) ToSetting() string {
  31. 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)
  32. }