models.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. package credit
  2. import "math"
  3. var modelArray = []string{
  4. "o1",
  5. "gpt-4o",
  6. "gpt-4.1",
  7. "o3-mini",
  8. "moonshot-v1-32k",
  9. "deepseek-r1",
  10. "moonshot-v1-8k",
  11. "gpt-4.1-mini",
  12. "gpt-3.5-turbo",
  13. "qwen-max",
  14. "doubao1.5-pro-256k",
  15. "deepseek-v3",
  16. "qwq-32b-preview",
  17. "gpt-4o-mini",
  18. "qwen2.5-14b-instruct-1m",
  19. "gpt-4.1-nano",
  20. "doubao1.5-pro",
  21. "doubao1.5-pro-32k",
  22. "chatglm3",
  23. "qwen-turbo",
  24. "doubao1.5-lite-32k",
  25. }
  26. var priceArray = []float64{
  27. 0.0001,
  28. 0.00001667,
  29. 0.00001333,
  30. 0.00000733,
  31. 0.00000548,
  32. 0.00000365,
  33. 0.00000274,
  34. 0.00000267,
  35. 0.0000025,
  36. 0.00000219,
  37. 0.00000205,
  38. 0.00000183,
  39. 0.00000137,
  40. 0.000001,
  41. 0.00000068,
  42. 0.00000067,
  43. 0.00000046,
  44. 0.00000046,
  45. 0.00000023,
  46. 0.00000014,
  47. 0.00000014,
  48. }
  49. func getModelName() string {
  50. return "gpt-4o"
  51. }
  52. func GetModelPrice() (model string, price float64) {
  53. difyModelName := getModelName()
  54. for i, v := range modelArray {
  55. if v == difyModelName {
  56. return v, priceArray[i]
  57. }
  58. }
  59. return modelArray[0], priceArray[0]
  60. }
  61. func ComputePrice(price float64, tokens uint64) float64 {
  62. scale := float64(1000000)
  63. return math.Round(price*float64(tokens)*scale) / scale
  64. }
  65. // Subtraction() 保留小数点后6位的精确减法
  66. func Subtraction(number1, number2 float64) float64 {
  67. d1 := number1 * 1000000
  68. d2 := number2 * 1000000
  69. res := math.Floor(d1-d2) / 1000000
  70. return res
  71. }