feat: support cached input token billing
This commit is contained in:
@@ -759,7 +759,7 @@ func billingConfigLines(config map[string]any) []string {
|
||||
|
||||
func textPricingResource(config map[string]any) bool {
|
||||
switch strings.ToLower(stringValue(config["resourceType"])) {
|
||||
case "text", "text_total", "text_input", "text_output":
|
||||
case "text", "text_total", "text_input", "text_cached_input", "text_output":
|
||||
return true
|
||||
default:
|
||||
return false
|
||||
@@ -771,6 +771,7 @@ func textPricingLines(config map[string]any) []string {
|
||||
return nil
|
||||
}
|
||||
inputPrice, hasInput := textPriceFromConfig(config, []string{"textInputPer1k", "textInput", "text_input", "inputTokenPrice", "inputPrice"})
|
||||
cachedInputPrice, hasCachedInput := textPriceFromConfig(config, []string{"textCachedInputPer1k", "textCachedInput", "text_cached_input", "cachedInputTokenPrice", "inputCacheHitTokenPrice", "cachedInputPrice"})
|
||||
outputPrice, hasOutput := textPriceFromConfig(config, []string{"textOutputPer1k", "textOutput", "text_output", "outputTokenPrice", "outputPrice"})
|
||||
|
||||
for _, key := range []string{"formulaConfig", "formula_config"} {
|
||||
@@ -778,6 +779,9 @@ func textPricingLines(config map[string]any) []string {
|
||||
if !hasInput {
|
||||
inputPrice, hasInput = textPriceFromConfig(formulaConfig, []string{"inputTokenPrice", "textInputPer1k", "textInput", "text_input", "inputPrice"})
|
||||
}
|
||||
if !hasCachedInput {
|
||||
cachedInputPrice, hasCachedInput = textPriceFromConfig(formulaConfig, []string{"cachedInputTokenPrice", "textCachedInputPer1k", "textCachedInput", "text_cached_input", "inputCacheHitTokenPrice", "cachedInputPrice"})
|
||||
}
|
||||
if !hasOutput {
|
||||
outputPrice, hasOutput = textPriceFromConfig(formulaConfig, []string{"outputTokenPrice", "textOutputPer1k", "textOutput", "text_output", "outputPrice"})
|
||||
}
|
||||
@@ -791,6 +795,9 @@ func textPricingLines(config map[string]any) []string {
|
||||
if !hasInput {
|
||||
inputPrice, hasInput = textPriceFromConfig(nested, []string{"inputTokenPrice", "textInputPer1k", "textInput", "text_input", "inputPrice"})
|
||||
}
|
||||
if !hasCachedInput {
|
||||
cachedInputPrice, hasCachedInput = textPriceFromConfig(nested, []string{"cachedInputTokenPrice", "textCachedInputPer1k", "textCachedInput", "text_cached_input", "inputCacheHitTokenPrice", "cachedInputPrice"})
|
||||
}
|
||||
if !hasOutput {
|
||||
outputPrice, hasOutput = textPriceFromConfig(nested, []string{"outputTokenPrice", "textOutputPer1k", "textOutput", "text_output", "outputPrice"})
|
||||
}
|
||||
@@ -799,6 +806,9 @@ func textPricingLines(config map[string]any) []string {
|
||||
if !hasInput {
|
||||
inputPrice, hasInput = textPriceFromConfig(formulaConfig, []string{"inputTokenPrice", "textInputPer1k", "textInput", "text_input", "inputPrice"})
|
||||
}
|
||||
if !hasCachedInput {
|
||||
cachedInputPrice, hasCachedInput = textPriceFromConfig(formulaConfig, []string{"cachedInputTokenPrice", "textCachedInputPer1k", "textCachedInput", "text_cached_input", "inputCacheHitTokenPrice", "cachedInputPrice"})
|
||||
}
|
||||
if !hasOutput {
|
||||
outputPrice, hasOutput = textPriceFromConfig(formulaConfig, []string{"outputTokenPrice", "textOutputPer1k", "textOutput", "text_output", "outputPrice"})
|
||||
}
|
||||
@@ -824,6 +834,10 @@ func textPricingLines(config map[string]any) []string {
|
||||
if !hasInput {
|
||||
inputPrice, hasInput = basePrice, true
|
||||
}
|
||||
case "text_cached_input":
|
||||
if !hasCachedInput {
|
||||
cachedInputPrice, hasCachedInput = basePrice, true
|
||||
}
|
||||
case "text_output":
|
||||
if !hasOutput {
|
||||
outputPrice, hasOutput = basePrice, true
|
||||
@@ -835,6 +849,9 @@ func textPricingLines(config map[string]any) []string {
|
||||
if hasInput {
|
||||
lines = append(lines, "输入 "+formatNumber(inputPrice)+"/k tokens")
|
||||
}
|
||||
if hasCachedInput {
|
||||
lines = append(lines, "缓存输入 "+formatNumber(cachedInputPrice)+"/k tokens")
|
||||
}
|
||||
if hasOutput {
|
||||
lines = append(lines, "输出 "+formatNumber(outputPrice)+"/k tokens")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user