From 3bd518ff2041b07a8a9e516bc21928ffbc192d2d Mon Sep 17 00:00:00 2001 From: Russell Ballestrini Date: Sat, 12 Jul 2025 11:26:05 -0400 Subject: [PATCH] adjust progress timing: keep Hermes as default, speed up for Groq only --- src/translation.js | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) 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;