diff --git a/src/translation.js b/src/translation.js index fd7a3cf..58efa0b 100644 --- a/src/translation.js +++ b/src/translation.js @@ -250,16 +250,22 @@ export function restoreSpecialContent(translatedText, preservations) { return restoredText; } -// Calculate processing time estimate based on real vLLM metrics +// Calculate processing time estimate based on real Hermes/vLLM metrics (our default) export function estimateProcessingTime(tokenCount) { - // Real vLLM performance metrics from production: - // - Prompt processing: ~3,144 tokens/second - // - Generation: ~121 tokens/second - // - Translation typically generates 1-2x input tokens + // Default: Real vLLM Hermes performance metrics from production + let promptTokensPerSec = 3144; // Hermes prompt processing speed + let generationTokensPerSec = 121; // Hermes generation speed + + // Adjust for faster Groq endpoints + const endpoint = getSelectedModelEndpoint(); + if (endpoint.includes('groq.com')) { + promptTokensPerSec = 15000; // Groq processes prompts very quickly + generationTokensPerSec = 800; // Groq generation is also much faster + } - const promptProcessingTime = tokenCount / 3144; // seconds for input processing + const promptProcessingTime = tokenCount / promptTokensPerSec; // seconds for input processing const estimatedOutputTokens = tokenCount * 1.2; // Translation usually 1.2x input length - const generationTime = estimatedOutputTokens / 121; // seconds for generation + const generationTime = estimatedOutputTokens / generationTokensPerSec; // seconds for generation // Add some buffer for network latency and processing overhead const totalTime = (promptProcessingTime + generationTime) * 1.3;