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.
- Respondé en UNA línea.`;
// Modelos en orden de preferencia (benchmark real 2026-08):
// nemotron-3-nano-omni y openrouter/free traducen BIEN (no meta-pensamiento).
// Los demas son fallbacks que a veces dan basura (el filtro la descarta).
// Modelos en orden de preferencia (benchmark + tests reales 2026-08):
// nemotron-3-ultra-550b y nemotron-3-nano-omni traducen BIEN con max_tokens>=600.
// Los demas son fallbacks (algunos dan basura, el filtro la descarta).
const MODEL_CANDIDATES = [
"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free", // ⭐ traduce bien, 5.5s
"openrouter/free", // traduce bien, 2.7s
"deepseek-v4-flash-free", // bueno cuando no esta cageado
"nvidia/nemotron-3-ultra-550b-a55b:free", // ⭐ traduce bien (verificado: "Crónicas de Derrota...")
"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free", // traduce bien
"nemotron-3-ultra-free", // alias zen del 550b
"openrouter/free",
"deepseek-v4-flash-free", // bueno cuando no esta cageado
"big-pickle",
"tencent/hy3:free",
"nvidia/nemotron-3-ultra-550b-a55b:free",
"mimo-v2.5-free",
"cohere/north-mini-code:free",
"inclusionai/ling-3.0-flash:free",
"nvidia/nemotron-3-super-120b-a12b:free",
"nemotron-3-ultra-free",
"north-mini-code-free",
"poolside/laguna-s-2.1:free",
"poolside/laguna-xs-2.1:free",
@@ -66,7 +66,7 @@ async function tryModel(model, title) {
{ role: "system", content: SYSTEM_PROMPT },
{ role: "user", content: title },
],
max_tokens: 200,
max_tokens: 600, // >=500: los reasoning models gastan los primeros tokens en razonamiento
temperature: 0.3,
}),
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).
if (isProbablySpanish(clean)) return clean
// Modelos en orden de preferencia (benchmark real 2026-08):
// nemotron-3-nano-omni y openrouter/free traducen bien.
// Modelos en orden de preferencia (benchmark + tests reales 2026-08):
// nemotron-3-ultra-550b traduce bien con max_tokens>=600.
const models = [
"nvidia/nemotron-3-ultra-550b-a55b:free",
"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free",
"nemotron-3-ultra-free",
"openrouter/free",
"deepseek-v4-flash-free",
"big-pickle",
"tencent/hy3:free",
"nvidia/nemotron-3-ultra-550b-a55b:free",
"mimo-v2.5-free",
"cohere/north-mini-code: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: "user", content: clean },
],
max_tokens: 200,
max_tokens: 600, // >=500: los reasoning models gastan los primeros tokens en razonamiento
temperature: 0.3,
}),
signal: AbortSignal.timeout(90000),