diff --git a/src/api/providers/cerebras.ts b/src/api/providers/cerebras.ts index 16dfa282ad..44c405eeb4 100644 --- a/src/api/providers/cerebras.ts +++ b/src/api/providers/cerebras.ts @@ -331,7 +331,7 @@ export class CerebrasHandler extends BaseProvider implements SingleCompletionHan const { info } = this.getModel() // Use actual token usage from the last request const { inputTokens, outputTokens } = this.lastUsage - const { totalCost } = calculateApiCostOpenAI(info, inputTokens, outputTokens) + const totalCost = calculateApiCostOpenAI(info, inputTokens, outputTokens) return totalCost } } diff --git a/src/api/providers/groq.ts b/src/api/providers/groq.ts index c2f2dd19db..b66e42d7f0 100644 --- a/src/api/providers/groq.ts +++ b/src/api/providers/groq.ts @@ -64,7 +64,7 @@ export class GroqHandler extends BaseOpenAiCompatibleProvider { const cacheWriteTokens = 0 // Calculate cost using OpenAI-compatible cost calculation - const { totalCost } = calculateApiCostOpenAI(info, inputTokens, outputTokens, cacheWriteTokens, cacheReadTokens) + const totalCost = calculateApiCostOpenAI(info, inputTokens, outputTokens, cacheWriteTokens, cacheReadTokens) yield { type: "usage", diff --git a/src/api/providers/lite-llm.ts b/src/api/providers/lite-llm.ts index 43bf33c38b..0c6b0dd73e 100644 --- a/src/api/providers/lite-llm.ts +++ b/src/api/providers/lite-llm.ts @@ -165,7 +165,7 @@ export class LiteLLMHandler extends RouterProvider implements SingleCompletionHa (lastUsage as any).prompt_cache_hit_tokens || 0 - const { totalCost } = calculateApiCostOpenAI( + const totalCost = calculateApiCostOpenAI( info, lastUsage.prompt_tokens || 0, lastUsage.completion_tokens || 0, diff --git a/src/api/providers/openai-native.ts b/src/api/providers/openai-native.ts index daf6278822..42173979cc 100644 --- a/src/api/providers/openai-native.ts +++ b/src/api/providers/openai-native.ts @@ -100,7 +100,7 @@ export class OpenAiNativeHandler extends BaseProvider implements SingleCompletio // Pass total input tokens directly to calculateApiCostOpenAI // The function handles subtracting both cache reads and writes internally - const { totalCost } = calculateApiCostOpenAI( + const totalCost = calculateApiCostOpenAI( effectiveInfo, totalInputTokens, totalOutputTokens, diff --git a/src/shared/cost.ts b/src/shared/cost.ts index 657928fa38..fcff3aeaf0 100644 --- a/src/shared/cost.ts +++ b/src/shared/cost.ts @@ -12,20 +12,15 @@ function calculateApiCostInternal( outputTokens: number, cacheCreationInputTokens: number, cacheReadInputTokens: number, - totalInputTokens: number, - totalOutputTokens: number, -): ApiCostResult { + totalInputTokens: number, // kept for potential future use + totalOutputTokens: number, // kept for potential future use +): number { const cacheWritesCost = ((modelInfo.cacheWritesPrice || 0) / 1_000_000) * cacheCreationInputTokens const cacheReadsCost = ((modelInfo.cacheReadsPrice || 0) / 1_000_000) * cacheReadInputTokens const baseInputCost = ((modelInfo.inputPrice || 0) / 1_000_000) * inputTokens const outputCost = ((modelInfo.outputPrice || 0) / 1_000_000) * outputTokens const totalCost = cacheWritesCost + cacheReadsCost + baseInputCost + outputCost - - return { - totalInputTokens, - totalOutputTokens, - totalCost, - } + return totalCost } // For Anthropic compliant usage, the input tokens count does NOT include the @@ -36,7 +31,7 @@ export function calculateApiCostAnthropic( outputTokens: number, cacheCreationInputTokens?: number, cacheReadInputTokens?: number, -): ApiCostResult { +): number { const cacheCreation = cacheCreationInputTokens || 0 const cacheRead = cacheReadInputTokens || 0 @@ -62,7 +57,7 @@ export function calculateApiCostOpenAI( outputTokens: number, cacheCreationInputTokens?: number, cacheReadInputTokens?: number, -): ApiCostResult { +): number { const cacheCreationInputTokensNum = cacheCreationInputTokens || 0 const cacheReadInputTokensNum = cacheReadInputTokens || 0 const nonCachedInputTokens = Math.max(0, inputTokens - cacheCreationInputTokensNum - cacheReadInputTokensNum)