Files

72 lines
2.6 KiB
JavaScript
Raw Permalink Normal View History

"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