fix: traduccion con max_tokens 600 + priorizar nemotron-3-ultra-550b (rate de exito 100%)

This commit is contained in:
Renato
2026-08-05 06:19:05 +08:00
parent 636d629034
commit 91ffc714f3
2 changed files with 14 additions and 13 deletions
+9 -9
View File
@@ -23,21 +23,21 @@ Normas:
- Si hay números de capítulo/volumen/año, mantenelos. - Si hay números de capítulo/volumen/año, mantenelos.
- Respondé en UNA línea.`; - Respondé en UNA línea.`;
// Modelos en orden de preferencia (benchmark real 2026-08): // Modelos en orden de preferencia (benchmark + tests reales 2026-08):
// nemotron-3-nano-omni y openrouter/free traducen BIEN (no meta-pensamiento). // nemotron-3-ultra-550b y nemotron-3-nano-omni traducen BIEN con max_tokens>=600.
// Los demas son fallbacks que a veces dan basura (el filtro la descarta). // Los demas son fallbacks (algunos dan basura, el filtro la descarta).
const MODEL_CANDIDATES = [ const MODEL_CANDIDATES = [
"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free", // ⭐ traduce bien, 5.5s "nvidia/nemotron-3-ultra-550b-a55b:free", // ⭐ traduce bien (verificado: "Crónicas de Derrota...")
"openrouter/free", // traduce bien, 2.7s "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free", // traduce bien
"deepseek-v4-flash-free", // bueno cuando no esta cageado "nemotron-3-ultra-free", // alias zen del 550b
"openrouter/free",
"deepseek-v4-flash-free", // bueno cuando no esta cageado
"big-pickle", "big-pickle",
"tencent/hy3:free", "tencent/hy3:free",
"nvidia/nemotron-3-ultra-550b-a55b:free",
"mimo-v2.5-free", "mimo-v2.5-free",
"cohere/north-mini-code:free", "cohere/north-mini-code:free",
"inclusionai/ling-3.0-flash:free", "inclusionai/ling-3.0-flash:free",
"nvidia/nemotron-3-super-120b-a12b:free", "nvidia/nemotron-3-super-120b-a12b:free",
"nemotron-3-ultra-free",
"north-mini-code-free", "north-mini-code-free",
"poolside/laguna-s-2.1:free", "poolside/laguna-s-2.1:free",
"poolside/laguna-xs-2.1:free", "poolside/laguna-xs-2.1:free",
@@ -66,7 +66,7 @@ async function tryModel(model, title) {
{ role: "system", content: SYSTEM_PROMPT }, { role: "system", content: SYSTEM_PROMPT },
{ role: "user", content: title }, { role: "user", content: title },
], ],
max_tokens: 200, max_tokens: 600, // >=500: los reasoning models gastan los primeros tokens en razonamiento
temperature: 0.3, temperature: 0.3,
}), }),
signal: AbortSignal.timeout(60000), signal: AbortSignal.timeout(60000),
+5 -4
View File
@@ -27,15 +27,16 @@ export async function translateTitle(title: string): Promise<string | null> {
// Si ya parece estar en español, no traducir (heurística ligera). // Si ya parece estar en español, no traducir (heurística ligera).
if (isProbablySpanish(clean)) return clean if (isProbablySpanish(clean)) return clean
// Modelos en orden de preferencia (benchmark real 2026-08): // Modelos en orden de preferencia (benchmark + tests reales 2026-08):
// nemotron-3-nano-omni y openrouter/free traducen bien. // nemotron-3-ultra-550b traduce bien con max_tokens>=600.
const models = [ const models = [
"nvidia/nemotron-3-ultra-550b-a55b:free",
"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free", "nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",
"nemotron-3-ultra-free",
"openrouter/free", "openrouter/free",
"deepseek-v4-flash-free", "deepseek-v4-flash-free",
"big-pickle", "big-pickle",
"tencent/hy3:free", "tencent/hy3:free",
"nvidia/nemotron-3-ultra-550b-a55b:free",
"mimo-v2.5-free", "mimo-v2.5-free",
"cohere/north-mini-code:free", "cohere/north-mini-code:free",
"inclusionai/ling-3.0-flash:free", "inclusionai/ling-3.0-flash:free",
@@ -62,7 +63,7 @@ export async function translateTitle(title: string): Promise<string | null> {
{ role: "system", content: SYSTEM_PROMPT }, { role: "system", content: SYSTEM_PROMPT },
{ role: "user", content: clean }, { role: "user", content: clean },
], ],
max_tokens: 200, max_tokens: 600, // >=500: los reasoning models gastan los primeros tokens en razonamiento
temperature: 0.3, temperature: 0.3,
}), }),
signal: AbortSignal.timeout(90000), signal: AbortSignal.timeout(90000),