Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 

50 строки
1.7 KiB

  1. package model
  2. import (
  3. "testing"
  4. "github.com/QuantumNous/new-api/setting/ratio_setting"
  5. "github.com/stretchr/testify/require"
  6. )
  7. const testPricingModel = "test-pricing-model-apply"
  8. const testPricingCallModel = "test-pricing-call-model"
  9. func resetPricingRatios(t *testing.T) {
  10. t.Helper()
  11. require.NoError(t, ratio_setting.UpdateModelRatioByJSONString(`{}`))
  12. require.NoError(t, ratio_setting.UpdateCompletionRatioByJSONString(`{}`))
  13. require.NoError(t, ratio_setting.UpdateCacheRatioByJSONString(`{}`))
  14. require.NoError(t, ratio_setting.UpdateCreateCacheRatioByJSONString(`{}`))
  15. require.NoError(t, ratio_setting.UpdateModelPriceByJSONString(`{}`))
  16. }
  17. func TestApplyGlobalDefault_PerTokenModel(t *testing.T) {
  18. resetPricingRatios(t)
  19. require.NoError(t, ratio_setting.UpdateModelRatioByJSONString(`{"`+testPricingModel+`":10}`))
  20. require.NoError(t, ratio_setting.UpdateCompletionRatioByJSONString(`{"`+testPricingModel+`":3}`))
  21. require.NoError(t, ratio_setting.UpdateCacheRatioByJSONString(`{"`+testPricingModel+`":0.5}`))
  22. require.NoError(t, ratio_setting.UpdateCreateCacheRatioByJSONString(`{"`+testPricingModel+`":0.75}`))
  23. p := &Pricing{}
  24. applyGlobalDefault(p, testPricingModel)
  25. require.Equal(t, QuotaTypeByTokens, p.QuotaType)
  26. require.Equal(t, 10.0, p.ModelRatio)
  27. require.Equal(t, 3.0, p.CompletionRatio)
  28. require.Equal(t, 0.5, p.CacheRatio)
  29. require.Equal(t, 0.75, p.CacheCreationRatio)
  30. }
  31. func TestApplyGlobalDefault_PerCallModel(t *testing.T) {
  32. resetPricingRatios(t)
  33. require.NoError(t, ratio_setting.UpdateModelPriceByJSONString(`{"`+testPricingCallModel+`":0.3}`))
  34. p := &Pricing{}
  35. applyGlobalDefault(p, testPricingCallModel)
  36. require.Equal(t, QuotaTypeByCall, p.QuotaType)
  37. require.Equal(t, 0.3, p.ModelPrice)
  38. require.Equal(t, 0.0, p.ModelRatio)
  39. }