MCPcopy Create free account
hub / github.com/Zoo-Code-Org/Zoo-Code / calculateApiCostOpenAI

Function calculateApiCostOpenAI

src/shared/cost.ts:92–116  ·  view source on GitHub ↗
(
	modelInfo: ModelInfo,
	inputTokens: number,
	outputTokens: number,
	cacheCreationInputTokens?: number,
	cacheReadInputTokens?: number,
	serviceTier?: ServiceTier,
)

Source from the content-addressed store, hash-verified

90
91// For OpenAI compliant usage, the input tokens count INCLUDES the cached tokens.
92export function calculateApiCostOpenAI(
93 modelInfo: ModelInfo,
94 inputTokens: number,
95 outputTokens: number,
96 cacheCreationInputTokens?: number,
97 cacheReadInputTokens?: number,
98 serviceTier?: ServiceTier,
99): ApiCostResult {
100 const cacheCreationInputTokensNum = cacheCreationInputTokens || 0
101 const cacheReadInputTokensNum = cacheReadInputTokens || 0
102 const nonCachedInputTokens = Math.max(0, inputTokens - cacheCreationInputTokensNum - cacheReadInputTokensNum)
103 const effectiveModelInfo = applyLongContextPricing(modelInfo, inputTokens, serviceTier)
104
105 // For OpenAI: inputTokens ALREADY includes all tokens (cached + non-cached)
106 // So we pass the original inputTokens as the total
107 return calculateApiCostInternal(
108 effectiveModelInfo,
109 nonCachedInputTokens,
110 outputTokens,
111 cacheCreationInputTokensNum,
112 cacheReadInputTokensNum,
113 inputTokens,
114 outputTokens,
115 )
116}
117
118export const parseApiPrice = (price: any) => (price ? parseFloat(price) * 1_000_000 : undefined)

Callers 9

cost.spec.tsFile · 0.90
updateApiReqMsgMethod · 0.90
captureUsageDataMethod · 0.90
processUsageMetricsMethod · 0.90
createMessageMethod · 0.90
normalizeUsageMethod · 0.90
processUsageMetricsMethod · 0.90
createMessageMethod · 0.90
processUsageMetricsFunction · 0.90

Calls 2

applyLongContextPricingFunction · 0.85
calculateApiCostInternalFunction · 0.85

Tested by

no test coverage detected