Merge branch 'ZhangYichi-ZYc-alpha' into alpha

This commit is contained in:
creamlike1024
2025-07-22 13:23:49 +08:00

View File

@@ -4,12 +4,8 @@ import "strings"
const ( const (
// Web search // Web search
WebSearchHighTierModelPriceLow = 30.00 WebSearchPriceHigh = 25.00
WebSearchHighTierModelPriceMedium = 35.00 WebSearchPrice = 10.00
WebSearchHighTierModelPriceHigh = 50.00
WebSearchPriceLow = 25.00
WebSearchPriceMedium = 27.50
WebSearchPriceHigh = 30.00
// File search // File search
FileSearchPrice = 2.5 FileSearchPrice = 2.5
) )
@@ -34,38 +30,18 @@ func GetClaudeWebSearchPricePerThousand() float64 {
func GetWebSearchPricePerThousand(modelName string, contextSize string) float64 { func GetWebSearchPricePerThousand(modelName string, contextSize string) float64 {
// 确定模型类型 // 确定模型类型
// https://platform.openai.com/docs/pricing Web search 价格按模型类型和 search context size 收费 // https://platform.openai.com/docs/pricing Web search 价格按模型类型收费
// gpt-4.1, gpt-4o, or gpt-4o-search-preview 更贵gpt-4.1-mini, gpt-4o-mini, gpt-4o-mini-search-preview 更便宜 // 新版计费规则不再关联 search context size故在const区域将各size的价格设为一致。
isHighTierModel := (strings.HasPrefix(modelName, "gpt-4.1") || strings.HasPrefix(modelName, "gpt-4o")) && // gpt-4o and gpt-4.1 models (including mini models) 等模型更贵o3, o4-mini, o3-pro, and deep research models 等模型更便宜
!strings.Contains(modelName, "mini") isNormalPriceModel :=
// 确定 search context size 对应的价格 strings.HasPrefix(modelName, "o3") ||
strings.HasPrefix(modelName, "o4") ||
strings.Contains(modelName, "deep-research")
var priceWebSearchPerThousandCalls float64 var priceWebSearchPerThousandCalls float64
switch contextSize { if isNormalPriceModel {
case "low": priceWebSearchPerThousandCalls = WebSearchPrice
if isHighTierModel { } else {
priceWebSearchPerThousandCalls = WebSearchHighTierModelPriceLow priceWebSearchPerThousandCalls = WebSearchPriceHigh
} else {
priceWebSearchPerThousandCalls = WebSearchPriceLow
}
case "medium":
if isHighTierModel {
priceWebSearchPerThousandCalls = WebSearchHighTierModelPriceMedium
} else {
priceWebSearchPerThousandCalls = WebSearchPriceMedium
}
case "high":
if isHighTierModel {
priceWebSearchPerThousandCalls = WebSearchHighTierModelPriceHigh
} else {
priceWebSearchPerThousandCalls = WebSearchPriceHigh
}
default:
// search context size 默认为 medium
if isHighTierModel {
priceWebSearchPerThousandCalls = WebSearchHighTierModelPriceMedium
} else {
priceWebSearchPerThousandCalls = WebSearchPriceMedium
}
} }
return priceWebSearchPerThousandCalls return priceWebSearchPerThousandCalls
} }