UNPKG

naisys

Version:

NAISYS - Autonomous AI agent runner with built-in context management and cost tracking

37 lines 1.68 kB
export function calculateModelCacheSavings(modelData, model) { const cacheWriteTokens = modelData.cacheWriteTokens || 0; const cacheReadTokens = modelData.cacheReadTokens || 0; const totalCacheTokens = cacheWriteTokens + cacheReadTokens; if (totalCacheTokens === 0 || !model.inputCost) { return null; } // Calculate what these cache tokens would have cost at regular input rate const cacheSavingsAmount = (cacheWriteTokens * (model.inputCost - (model.cacheWriteCost || 0))) / 1_000_000 + (cacheReadTokens * (model.inputCost - (model.cacheReadCost || 0))) / 1_000_000; // Calculate actual cache cost from tokens const actualCacheSpend = (cacheWriteTokens * (model.cacheWriteCost || 0)) / 1_000_000 + (cacheReadTokens * (model.cacheReadCost || 0)) / 1_000_000; // Calculate total cost for this model from tokens const inputTokens = modelData.inputTokens || 0; const outputTokens = modelData.outputTokens || 0; const inputCost = (inputTokens * model.inputCost) / 1_000_000; const outputCost = (outputTokens * model.outputCost) / 1_000_000; const modelTotalCost = inputCost + outputCost + actualCacheSpend; const costWithoutCaching = modelTotalCost + cacheSavingsAmount; const savingsPercent = cacheSavingsAmount > 0 ? (cacheSavingsAmount / costWithoutCaching) * 100 : 0; return { savingsAmount: cacheSavingsAmount, costWithoutCaching, savingsPercent, totalCacheTokens, totalCost: modelTotalCost, inputCost, outputCost, actualCacheSpend, }; } //# sourceMappingURL=cacheSavings.js.map