"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createStats = void 0; exports.printStats = printStats; // Initialize stats object const createStats = () => ({ totalFrames: 0, totalBatches: 0, totalVisionInputCost: 0, totalVisionOutputCost: 0, totalTTSCost: 0, totalCost: 0 }); exports.createStats = createStats; // Pricing constants (as of March 2025) const pricing = { vision: { openai: { 'gpt-4o': { input: 0.0025, output: 0.01 } }, gemini: { 'gemini-pro-vision': { input: 0.0025, output: 0.0025 } } }, tts: { openai: { 'tts-1': 0.015, 'tts-1-hd': 0.030 } } }; /** * Print out statistics * @param stats - Statistics object * @param settings - Configuration settings */ function printStats(stats, settings) { // Get the pricing for the selected providers const visionProvider = settings.visionProvider; const visionModel = settings.visionProviders[visionProvider].model; const ttsProvider = settings.ttsProvider; const ttsModel = settings.ttsProviders[ttsProvider].model; // Check if the pricing data exists const visionPricing = pricing.vision[visionProvider]?.[visionModel]; const ttsPricing = pricing.tts[ttsProvider]?.[ttsModel]; if (!visionPricing) { console.warn(`Warning: No pricing data for vision provider "${visionProvider}" and model "${visionModel}".`); } if (!ttsPricing) { console.warn(`Warning: No pricing data for TTS provider "${ttsProvider}" and model "${ttsModel}".`); } // Calculate prices using available pricing data const visionInputCost = visionPricing ? (stats.totalVisionInputCost * visionPricing.input / 1000) : 0; const visionOutputCost = visionPricing ? (stats.totalVisionOutputCost * visionPricing.output / 1000) : 0; const ttsCost = ttsPricing ? (stats.totalTTSCost * ttsPricing / 1000) : 0; const totalCost = visionInputCost + visionOutputCost + ttsCost; // Print out the stats console.log('\n=== STATISTICS ==='); console.log(`Vision provider: ${visionProvider}, Model: ${visionModel}`); console.log(`TTS provider: ${ttsProvider}, Model: ${ttsModel}`); console.log(`Total vision input cost: ${visionInputCost.toFixed(4)}`); console.log(`Total vision output cost: ${visionOutputCost.toFixed(4)}`); console.log(`Total TTS cost: ${ttsCost.toFixed(4)}`); console.log(`Total cost: ${totalCost.toFixed(4)}`); } //# sourceMappingURL=stats.js.map