package credit import "math" var modelArray = []string{ "o1", "gpt-4o", "gpt-4.1", "o3-mini", "moonshot-v1-32k", "deepseek-r1", "moonshot-v1-8k", "gpt-4.1-mini", "gpt-3.5-turbo", "qwen-max", "doubao1.5-pro-256k", "deepseek-v3", "qwq-32b-preview", "gpt-4o-mini", "qwen2.5-14b-instruct-1m", "gpt-4.1-nano", "doubao1.5-pro", "doubao1.5-pro-32k", "chatglm3", "qwen-turbo", "doubao1.5-lite-32k", } var priceArray = []float64{ 0.01, 0.001667, 0.001333, 0.000733, 0.000548, 0.000365, 0.000274, 0.000267, 0.00025, 0.000219, 0.000205, 0.000183, 0.000137, 0.0001, 0.000068, 0.000067, 0.000046, 0.000046, 0.000023, 0.000014, 0.000014, } func getModelName() string { return "gpt-4o" } func GetModelPrice() (model string, price float64) { difyModelName := getModelName() for i, v := range modelArray { if v == difyModelName { return v, priceArray[i] } } return modelArray[0], priceArray[0] } func ComputePrice(price float64, tokens uint64) float64 { scale := float64(1000000) return math.Round(price*float64(tokens)*scale) / scale } // Subtraction 保留小数点后6位的精确减法 func Subtraction(number1, number2 float64) float64 { d1 := number1 * 1000000 d2 := number2 * 1000000 res := math.Floor(d1-d2) / 1000000 return res }