coai/auth/usage.go
2023-09-11 14:44:22 +08:00

49 lines
950 B
Go

package auth
import (
"database/sql"
)
// Price Calculation
// 10 nio points = ¥1
// from 2023-9-6, 1 USD = 7.3124 CNY
//
// GPT-4 price (8k-context)
// Input Output
// $0.03 / 1K tokens $0.06 / 1K tokens
// ¥0.21 / 1K tokens ¥0.43 / 1K tokens
// 2.1 nio / 1K tokens 4.3 nio / 1K tokens
// Dalle price (512x512)
// $0.018 / per image
// ¥0.13 / per image
// 1 nio / per image
func CountInputToken(n int) float32 {
return float32(n) / 1000 * 2.1
}
func CountOutputToken(n int) float32 {
return float32(n) / 1000 * 4.3
}
func ReduceDalle(db *sql.DB, user *User) bool {
if user.GetQuota(db) < 1 {
return false
}
return user.UseQuota(db, 1)
}
func CanEnableGPT4(db *sql.DB, user *User) bool {
return user.GetQuota(db) >= 5
}
func BuyQuota(db *sql.DB, user *User, quota int) bool {
money := float32(quota) * 0.1
if Pay(user.Username, money) {
user.IncreaseQuota(db, float32(quota))
return true
}
return false
}